我正在尝试在 Excel 中使用 Randbetween 生成 IF 语句,=IF(K3:K34=TRUE RANDBETWEEN(L3,L34))
我想要表达的是,如果 K3-K34 列为真,则取出该列旁边的列中的名称,随机化这些名称并将其插入我突出显示的任何位置。
我可能错了,但有人能帮我重写这个语句吗?
答案1
RandBetween 返回两个数字之间的数字而不是两个单元格之间的单元格值。
这将返回一个随机组织的唯一列表:
=INDEX(L:L,AGGREGATE(15,6,ROW($K$3:$K$34)/(($K$3:$K$34)*(COUNTIF($N$2:N2,$L$3:$L$34)=0)),RANDBETWEEN(1,COUNTIF($K$3:$K$34,TRUE)-ROW(1:1)+1)))
输入 N3 并向下复制。公式必须放在一个至少有一个单元格在其上方的单元格中,只要该单元格中的值不包含在 J3:J34 中,该单元格中的值就无关紧要。引用 $N$2:N2 必须引用公式首先所在的上方单元格。特别注意绝对/相对引用,因为范围向下拖动时增长很重要。
它将遍历该范围并创建一个行号数组,这些行号在 K3:K34 中为真,并且 L3:L34 中的值尚未使用。然后它将随机选择其中一个行号并将其返回给索引。然后索引将返回该行中的值。