Excel中一组可用string中的随机string,但排除特定的“单元格值”

我正在使用Excel 2010.我正在使用INDEX和RANDBETWEEN函数来查找可用string的列表并返回其中的一个。 但是,我有一个特定的值,D3,(在这种情况下,但会随着每行D4,D5等),我需要从随机结果中排除 – 什么是实现这一目标的最好方法? 这是我目前的公式:

=IFERROR(INDEX($A:$D,MATCH($B3&"|"&LEFT($C3,SEARCH("-",$C3))&L3,$A:$A,0)+RANDBETWEEN(0,S3-1),4),"") 

谢谢

请删除与您的问题无关的代码部分,并将所有问题都解决为您实际需要解决的问题。 IFERROR(),MATCH(),LEFT()和SEARCH()调用与您的问题无关,但使其难以理解您的代码。 为了简化,我假设:

  • 范围D1:D199填充(可能重复)string
  • E1列中的每个单元格:E199应该从整个D1:D199中绘制一个随机的string,除了那些与其左侧的单元格相同的单元格(在D中)

将以下代码复制+粘贴到E1中,然后使用Ctrl + Shift + Enter将其input为数组公式。

 =INDEX(D:D,LARGE(IF((D1:D200<>"")*(D1:D200<>D1),ROW(D1:D200),-1),RANDBETWEEN(1,SUM((D1:D200<>"")*(D1:D200<>D1))))) 

然后,您可以将单元格E1复制到E2:E199

Dirk Reichel的build议更新了代码。