Excel返回多个唯一值

时间:2017-07-14 14:36:37

标签: excel-formula

我正在使用这个公式:

INDEX($A:$A;RANDBETWEEN(1;COUNTA($A:$A));1)

将值从列返回到单元格。它工作正常,但我需要总共返回4个值,我需要它们都是唯一的。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用这样的公式:

=INDEX(A:A,AGGREGATE(15,6,ROW($A$1:$A$26)/(COUNTIF($C$1:C1,$A$1:$A$26)=0),RANDBETWEEN(1,ROWS(A1:A26)-ROW(1:1)+1)))

使用您的本地设置:

=INDEX(A:A;AGGREGATE(15;6;ROW($A$1:$A$26)/(COUNTIF($C$1:C1;$A$1:$A$26)=0);RANDBETWEEN(1;ROWS(A1:A26)-ROW(1:1)+1)))

由于这确实是指公式上方的单元格,因此必须将其放在第二行或下一行中,$C$1:C1必须引用公式第一个实例正上方的单元格。

然后拖了4次。

enter image description here

Aggregate是一种数组公式类型。引用应仅包括数据集的引用。应该避免使用完整列引用,因为它会强制Aggregate进行比需要更多的计算,并且在这种特定情况下将返回空白。

要根据A列中的数据自动仅包含数据集,增长或缩小,请使用:

=INDEX(A:A;AGGREGATE(15;6;ROW($A$1:INDEX(A:A;MATCH("zzz";A:A)))/(COUNTIF($C$1:C1;$A$1:INDEX(A:A;MATCH("zzz";A:A)))=0),RANDBETWEEN(1;ROWS($A$1:INDEX(A:A;MATCH("zzz";A:A)))-ROW(1:1)+1)))

编辑#1

要向右拖动,请使用:

=INDEX($A:$A;AGGREGATE(15;6;ROW($A$1:INDEX($A:$A;MATCH("zzz",$A:$A)))/(COUNTIF($B$2:B2;$A$1:INDEX($A:$A;MATCH("zzz";$A:$A)))=0);RANDBETWEEN(1;ROWS($A$1:INDEX($A:$A;MATCH("zzz";$A:$A)))-COLUMN(A:A)+1)))

并将$B$2:B2更改为公式第一个展示位置左侧的单元格。

enter image description here

相关问题