baskar Asked: 2020-11-21 21:38:09 +0800 CST2020-11-21 21:38:09 +0800 CST 2020-11-21 21:38:09 +0800 CST 在每个数据子集中查找重复项 772 我对比较两列有疑问。 B列必须在A列中具有唯一数据重复范围(范围以不同颜色突出显示)。 A列有重复数据>需要设置为比较列B的范围(不均匀数量) 例子: 设置 1 19A19 - 19A19 N0025R0 第 2 组 A057 021-21---- A057 021-22---- =IF(A2=A:A,IF(COUNTIF(A:A,A2),B2=B3,""),"") 目前我尝试了这个公式(它只能一一比较 MAT 列) 我需要正确的结果,因为红色突出显示任何人都可以帮助我。 microsoft-excel worksheet-function 2 个回答 Voted Best Answer ExcelEverything 2020-11-22T02:08:22+08:002020-11-22T02:08:22+08:00 问题的改写: A 列包含类别列表。B 列包含子类别列表。我们需要在 A 中的每个类别中检测和标记重复的子类别。 例如: Fruit Banana Duplicate! Fruit Apple Fruit Banana Duplicate! Veg Tomato Veg Potato Duplicate! Veg Potato Duplicate! 假设: 数据按类别/A 列排序。 解决方案: 首先定义一些名称。将 col A 中的数据定义为data1,将 col B 中的数据定义为data2。 然后在 C2 中: =IF(COUNTIF( grouprange ,B2)>1,"Duplicate","") 其中grouprange为 =INDEX(data2,MATCH(A2,data1,0)):INDEX(data2,MATCH(A2,data1,0)+COUNTIF(data1,A2)-1) 如果您想花哨,实际上将grouprange定义为 Excel 中的命名范围。将光标放在 C2 中,单击公式 > 定义名称,然后将上面的公式添加到“引用”文本框。现在,grouprange被称为动态命名范围(即根据所使用的单元格的位置而改变的命名范围)。它将返回当前所选类别的整个子类别范围。例如,如果子类别是一个数字,您可以将其放入列 c =SUM(grouprange)。 ExcelEverything 2020-11-27T06:39:47+08:002020-11-27T06:39:47+08:00 =IF(COUNTIFS(data1, A2, data2, B2)>1,"Duplicate","") 这容易多了! 解释 让我们快速看一下这个公式中发生了什么。首先,它有助于考虑数据的大小(向量维度)。data1 和 data2 是每个 nx 1 的列向量。A2 是一个标量 (1 x 1),当像这样比较时 (data1 = A2) 会生成另一个 nx 1 向量,例如 (true ; true ; false ...)。 COUNTIF(data1, A2) 基本上会计算比较向量中真值的数量,并生成一个与 A2 在 data1 中出现的次数相等的单个标量值(总和)。COUNTIF S执行相同的操作,但针对多组标准。所以计算组合比较向量 AND(data1 = A2, data2 = B) 中真值的数量。
问题的改写:
A 列包含类别列表。B 列包含子类别列表。我们需要在 A 中的每个类别中检测和标记重复的子类别。
例如:
假设:
数据按类别/A 列排序。
解决方案:
首先定义一些名称。将 col A 中的数据定义为data1,将 col B 中的数据定义为data2。
然后在 C2 中: =IF(COUNTIF( grouprange ,B2)>1,"Duplicate","")
其中grouprange为 =INDEX(data2,MATCH(A2,data1,0)):INDEX(data2,MATCH(A2,data1,0)+COUNTIF(data1,A2)-1)
如果您想花哨,实际上将grouprange定义为 Excel 中的命名范围。将光标放在 C2 中,单击公式 > 定义名称,然后将上面的公式添加到“引用”文本框。现在,grouprange被称为动态命名范围(即根据所使用的单元格的位置而改变的命名范围)。它将返回当前所选类别的整个子类别范围。例如,如果子类别是一个数字,您可以将其放入列 c =SUM(grouprange)。
这容易多了!
解释
让我们快速看一下这个公式中发生了什么。首先,它有助于考虑数据的大小(向量维度)。data1 和 data2 是每个 nx 1 的列向量。A2 是一个标量 (1 x 1),当像这样比较时 (data1 = A2) 会生成另一个 nx 1 向量,例如 (true ; true ; false ...)。
COUNTIF(data1, A2) 基本上会计算比较向量中真值的数量,并生成一个与 A2 在 data1 中出现的次数相等的单个标量值(总和)。COUNTIF S执行相同的操作,但针对多组标准。所以计算组合比较向量 AND(data1 = A2, data2 = B) 中真值的数量。