Excel formula Excel返回多个唯一值

Excel formula Excel返回多个唯一值,excel-formula,Excel Formula,我用这个公式: INDEX($A:$A;RANDBETWEEN(1;COUNTA($A:$A));1) 将值从列返回到单元格。它工作得很好,但我需要返回总共4个值,并且我需要所有值都是唯一的。有什么想法吗?使用如下公式: =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;A

我用这个公式:

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

将值从列返回到单元格。它工作得很好,但我需要返回总共4个值,并且我需要所有值都是唯一的。有什么想法吗?

使用如下公式:

=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次


聚合是一种数组公式类型。引用应仅包括数据集的引用。应避免使用全列引用,因为它将强制聚合进行超出需要的计算,并且在这种特定情况下将返回空白

要仅自动包含数据集,请根据列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)))
=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)))

编辑#1

要向右拖动,请使用以下命令:

=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)))
=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
更改为公式第一个位置正左侧的单元格


使用如下公式:

=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次


聚合是一种数组公式类型。引用应仅包括数据集的引用。应避免使用全列引用,因为它将强制聚合进行超出需要的计算,并且在这种特定情况下将返回空白

要仅自动包含数据集,请根据列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)))
=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)))

编辑#1

要向右拖动,请使用以下命令:

=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)))
=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
更改为公式第一个位置正左侧的单元格


我可以将其向下拖动4次而不是4次吗?源数据在一列中,但结果数据需要在不同(相邻)列中。我将公式翻译为土耳其语,但在第一个单元格后出现(#NUM!)错误。试着弄清楚。你在用什么Excel?你在用什么版本的Excel:201020072013,Office 365?注意什么是绝对的,什么不是绝对的。确保
$
与我的匹配。我可以将其向下拖动4次而不是4次吗?源数据在一列中,但结果数据需要在不同(相邻)列中。我将公式翻译为土耳其语,但在第一个单元格后出现(#NUM!)错误。试着弄清楚。你在用什么Excel?你在用什么版本的Excel:201020072013,Office 365?注意什么是绝对的,什么不是绝对的。确保
$
与我的匹配。