【问题标题】:Using VLOOKUP or INDEX/MATCH to run a Lottery使用 VLOOKUP 或 INDEX/MATCH 运行彩票
【发布时间】:2026-01-14 08:05:02
【问题描述】:

我正在使用 Excel 运行一种彩票。

电子表格的列是这样设置的:

COL1:人名; COL2:选择编号 A; COL3:选择编号 B; COL4:选择的数字 C

然后有一组数据,使用 RAND() 和 ROUND 生成,给出 3 个中奖号码,每个号码在 0 到 10 之间。

我要做的是识别获胜者,通过使用 VLOOKUP 或 INDEX/MATCH 或某种组合或其他函数来识别获胜者,以便有一个单元格返回名称赢家。

增加的复杂性在于,通过按列单独查找每个数字,单独选择 1、4、8 与随机选择 4、8、1 相比并不是获胜选择.

想法?

【问题讨论】:

    标签: excel indexing match vlookup


    【解决方案1】:

    您可以将数字连接到附加列,使其包含字符串“1,4,8”,然后执行 VLOOKUP 以以相同方式连接中奖号码。 顺便说一句,这个解决方案只会显示第一人称,但不是有可能几个人猜相同的数字并获胜吗?

    【讨论】:

    • 这是一个很好的解决方案,也是一个关于多个获胜者可能性的极好问题。
    【解决方案2】:

    如果你想生成一个 3 位数的数字,到目前为止最简单的方法就是使用公式

    =RANDBETWEEN(0,999)
    

    您可以选择单元格,然后输入(通过右键单击可访问的格式对话框)自定义格式 000,如果您希望它显示为 3 位数字,例如7 显示为 007。这将允许您直接在单个值上使用 VLOOKUP。 @kipar 就潜在的多个获胜者提出了一个很好的问题。

    【讨论】:

      【解决方案3】:

      我实现了上述解决方案,这很容易。在 4 列之后,添加一列

      =TEXT(B1;0)&TEXT(C1;0)&TEXT(D1;0)

      将数字组合成一个字符串。然后你把你的中奖号码放在我的偏好单元格中,我的偏好是 M28,值是 123。在你的前五列之后,你使用以下公式。

      =IF.ERROR(INDEX(A$1:A$4;SMALL(IF(E$1:E$4=TEXT($M$28;0);ROW(E$1:E$4));RI-OW() );1);"")

      IF.ERROR 用于在没有多个获胜者时放置空白。该索引用于从您的第一列中选​​出获胜者,这就是为什么最后会有一个。小用于查找获胜者的第一次出现。您还必须将其作为数组公式输入,因此在公式完成时按 ctrl+shift+enter 而不是仅输入。我希望这个答案是令人满意的。

      附言。有关使用此功能的更多信息,请访问此处:http://chandoo.org/wp/2014/12/09/multiple-occurrences-lookup-and-extraction/

      【讨论】: