如何使用Excel公式获取一列中的唯一值

18
我有以下的Excel数据。

I have Excel Data like below

       JID     Val

       1001    22
       1030    6
       1031    14          
       1041    8
       1001    3
       2344    8
       1030    8
       2344    6
       1041    8

如何使用公式获取类似下面的唯一JID值?

UJID   

1001
1030
1031
1041    
2344
3个回答

15

这里有一个解决方案,可以从您的表格中获取唯一项的列表。

该解决方案分为两个部分。

第一部分)唯一计数

{=SUM(IF(FREQUENCY(IF($A$2:$A$10<>"",MATCH($A$2:$A$10,$A$2:$A$10,0)),ROW($A$2:$A$10)-ROW($A$2)+1),1))}

这将计算数据表中唯一项的数量,并忽略任何空白单元格。

*请注意,这是一个数组公式,您需要使用“Ctrl”+“Shift”+“Enter”来使用。

第二部分)唯一列表

此公式将为您提供表格中唯一项的列表。

={IF(ROWS($E$5:E5)>$E$2,"",INDEX($A$2:$A$10,SMALL(IF(FREQUENCY(IF($A$2:$A$10<>"",MATCH($A$2:$A$10,$A$2:$A$10,0)),ROW($A$2:$A$10)-ROW($A$2)+1),ROW($A$2:$A$10)-ROW($A$2)+1),ROWS($E$5:E5))))}

同样,这也是一个数组公式。然后,您可以拖动此公式以获取所有唯一项。

此公式是动态公式,这意味着您可以将数据范围设置为超出当前数据范围,并且列表将随着您输入新值而更新。

*以下是一个很好的视频,可以帮助您进一步了解此内容。

https://www.youtube.com/watch?v=3u8VHTvSNE4

enter image description here


不确定为什么这被投票否决了,它似乎完美地回答了问题。 - jamesmstone

14

您可以使用“去重”功能。

选择列范围。

转到 Data 选项卡,

然后单击 Remove Duplicates


7
这个答案是否正确?标题说“使用公式”,而这个答案并没有这样做。 - Kit Johnson

9

Select distinct values

我认为我已经找到了更加优雅的解决方法,无需使用数组函数或内置函数:

  • 第1列(ID):
    这是我们想要选择不同值的数组

  • 第2列(criteria): 检查这是否是第一个出现的
    =IF((ROW()-1)=MATCH(A2,$A$2:$A$500,0),1,0)

  • 第3列(cumulative):
    =SUM($B$2:B2)

  • 第4列(count):
    这是常数1

  • 第5列(unique ID):
    =OFFSET($A$2,MATCH(ROW()-1,$C$2:$C$501,0)-1,)

  • 第6列(count):
    =SUMIF(A2:A21,F2,D2:D21)


1
不错!非常合乎逻辑。 - Kit Johnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接