比较列中的excel单元格对以查找另一列中的匹配或差异

时间:2016-09-03 09:46:34

标签: excel if-statement for-loop

我的数据包含两个感兴趣的专栏,A& B.

每个唯一的单元格应该具有相同的序列号,即KR0146U09A3的每个条目应该具有与B150501388相同的序列号,我很高兴放弃A08和{ {1}}字符串的一部分。同样,A09条目的序列号均为KR0146U21A1

我很乐意在excel中构造if语句以进行字符串匹配,但我无法理解如何构造for循环以循环遍历列表中的每个单元格对。

我猜这个任务的伪代码是:对于A列中的每个唯一单元格,检查B中相应的单元格是否相同。

有人可以为我提供一个关于如何编写函数在excel中执行此操作的开始吗?

以下是我的数据示例:

0000a000K2008438a

2 个答案:

答案 0 :(得分:2)

复制Serial Number列并使用Text to Columns解析复制的列,并将-解析为分隔符。然后在数据模型中使用Cell为ROWS和序列号2的不同计数转换所有数据。 1以外的任何内容都表示CellSerial NumberCell

如果您没有Distinct Count,则无论如何都要插入数据透视表,其中Cell高于序列号2(ROWS),序列号2(对于VALUES)。选择以表格形式显示报表布局,不要小计。在字段设置...中Cells不要检查重复项标签。 Cell列中的空白应指明相关序列号在Mur=np.array([200,246,372])*pq.kN*pq.m Mumax=np.array([1400,600,700])*pq.kN*pq.m Mu=np.array([100,500,2000])*pq.kN*pq.m Acreq=np.where(Mu<Mur,0,"zero") Acreq=np.where(((Mur<Mu)&(Mu<Mumax)),45,Acreq) Acreq=np.where(Mu>Mumax,60,Acreq) Print(Acreq) ['0' '45' '60'] 值中不唯一的位置。

答案 1 :(得分:1)

扩展我的评论:添加带有截断序列号的帮助列,然后使用COUNTIFS获取单元格和截断序列号匹配的位置计数,并将其与COUNTIF类型的单元格数进行比较。如果计数是相同的,它们都匹配,如果不匹配,它们不匹配。

公式:

=COUNTIF(Cell,A2)=COUNTIFS(Cell,A2,TruncatedSN,D2)

编辑: 您可以将此公式用于截断

=IFERROR(LEFT(B2,FIND("-",B2)),B2)

其中CellTruncatedSN指的是下面这么标注的列。

您可以在B8中查看我更改条目的位置,以便导致不匹配:

enter image description here