sam*_*sam 18 excel-formula excel-2010
我有如下的Excel数据
JID Val
1001 22
1030 6
1031 14
1041 8
1001 3
2344 8
1030 8
2344 6
1041 8
Run Code Online (Sandbox Code Playgroud)
如何使用公式获得如下所示的唯一JID值?
UJID
1001
1030
1031
1041
2344
Run Code Online (Sandbox Code Playgroud)
小智 15
这是一个从表中获取唯一项列表的解决方案
该解决方案分为两部分.
第1部分)唯一计数
{= SUM(IF(频率(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"来使用
第2部分)唯一列表
此公式将为您提供表格中的唯一项目列表
= {IF(ROWS($ E $ 5:E5)> $ E $ 2 "",INDEX($ A $ 2:$ A $ 10,SMALL(IF(频率(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),行($ E $ 5:E5))))}
再次这是一个数组公式.然后,您可以向下拖动此公式以获取所有唯一项目.
此公式是动态公式,这意味着您可以将数据范围设置为超出当前数据范围,并且列表将在您输入新值时更新.
*这是一个很棒的视频,可以进一步了解这一点
https://www.youtube.com/watch?v=3u8VHTvSNE4

我想我找到了一个没有数组函数或内置函数的更优雅的解决方法:
1个第一栏(ID):
this is the array from we'd like to select distinct values
2 次柱(条件):检查是否是第一次出现
=IF((ROW()-1)=MATCH(A2,$A$2:$A$500,0),1,0)
3 RD柱(累计):
=SUM($B$2:B2)
第 4 列(计数):
this is constant 1
第 5 列(唯一ID):
=OFFSET($A$2,MATCH(ROW()-1,$C$2:$C$501,0)-1,)
第 6 列(计数):
=SUMIF(A2:A21,F2,D2:D21)