Excel 2010 公式根据值删除重复内容

Excel 2010 公式根据值删除重复内容

我有一张包含两列的电子表格,一个名称和一个值。名称重复多次,但值不同,例如:

姓名 - 1
姓名 - 2
姓名 - 3

ETC。

我正在寻找一个公式,该公式将遍历电子表格并删除名称列的所有重复实例,并保存具有第二高值的实例。因此,如果我输入像上面这样的电子表格,它将保存行“名称 - 2”并删除其他行。这可能吗?

编辑:电子表格有 6000 多个值,所以我更喜欢尽可能自动化的解决方案。我在想类似的事情:

  1. 按名称对值进行排序,然后按值对值进行排序。
  2. 删除具有最低值的重复行的公式。
  3. 公式删除除最低值以外的所有行。

答案1

您可以使用辅助列和过滤器来获得您想要的内容。

步骤 1:辅助列

使用以下公式向您的表中添加一列,其中名称在 中A2:A18,值在 中B2:B18

=OR(COUNTIF($A$2:$A$18,A2)=1,SUMPRODUCT(1*(B2<$B$2:$B$18),1*(A2=$A$2:$A$18))=1)

此公式将返回TRUE您想要保留的行,即具有重复名称的第二高值以及任何非重复名称(如d下面的示例所示)。如果您碰巧不想保留非重复的行,则可以使用以下公式。

=SUMPRODUCT(1*(B2<$B$2:$B$18),1*(A2=$A$2:$A$18))=1

辅助列示例

第 2 步:过滤

只需对整个表进行过滤,找出TRUE辅助列中的行即可。

筛选

如果过滤还不够,而您确实需要删除其他数据,您可以将过滤结果复制并粘贴到另一个表中,然后在删除原始表后粘贴干净的副本。

答案2

我同意您应该按名称和值排序;我同意 Excellll 的方法很好。但是,如果您的数据包含名称最高值的并列,他的答案将失败;我在此改编(建立在该答案之上):

定义辅助列:

  • C2-=(A2<>A3)
  • D2-=IF(A1=A2, B1, B2)

Column C标识名称最后一次出现的行,Column D获取第二高的值(如果仅出现一次,则获取唯一的值)。然后筛选出 Column 包含 的行 CFALSE并将 Column 中的名称 A与 Column 中的值 配对D。请注意,以下示例使用的数据与 Excellll 的答案相同,只是前两个b都是 17。我使用了条件格式来突出显示A和 的 D数据。CTRUE

                               

答案3

另一种选择是,创建一个具有唯一名称值的列表此选项然后使用LARGE公式作为数组公式,如下所示:

=LARGE(IF($A$2:$A$20=D2;$B$2:$B$20);2)

..IF($A$2:$A$20=D2;$B$2:$B$20)...

If match condition, then give me the values. In my examples it could be 
something like {1,2,...,6,FALSE,...FALSE} and the formula omits FALSE 
values.

=LARGE(..., ??) [??] Rank Value you want in this case 2

转换为数组公式,写入后,单击F2编辑,Ctrl+Shift+Enter然后公式将得到如下内容:{=LARGE(...)}

这张表可能像

相关内容