这是一个复杂的措辞问题,但我为宿舍的校内团队创建了一个注册表,并且回复列在Excel表格中:
工作表1,单元格B:全名
工作表1,单元格C:电子邮件地址
第1页,单元格E:他们希望进行的运动(有四种)
在表2中,我想组织每个团队想要参与的人数和人数。所以我为每项运动都有一个专栏,其中有两列(全名和电子邮件地址)。
我想要做的是为每个注册的人解析表1,单元格E ,如果他们有列出的四项运动之一(足球,躲避球,排球)的实例或保龄球),在表2的正确栏目下添加他们的全名和电子邮件地址。
这是表2的图像。
有没有办法/公式能够做到这一点?此外,如果该人报名参加多项运动,则应在每项运动下列出。他们想要参加的所有运动将列在一个单元格下(表1,单元格E)。
答案 0 :(得分:1)
有一种方法,使用数组公式(使用 Ctrl + Shift + Enter 输入)...在单元格A3中:< / p>
=IFERROR(INDEX(Sheet1!$B$1:$B$500,SMALL(IF(ISERROR(SEARCH(A$1,Sheet1!$E$1:$E$500)),9999,ROW(Sheet1!$A$1:$A$500)),ROW()-2)),"")
让我从内到外解释......
ISERROR(SEARCH(A$1,Sheet1!E10))
),则{li> FALSE
会向我们A$1
,TRUE
Sheet1!$E$1:$E$500
(可以根据需要进行扩展),而不仅仅是给出一个值 - 所以这给了我们一个TRUE
和{{1值} FALSE
意味着如果没有这项运动,我们将得到值9999,否则我们得到数组中单元格的行号 - 所以这给了我们一个{{1}混合的数组和行号IF(ISERROR(...),9999,ROW(...))
让我们从数组中选出其中一个值 - 在这种情况下是大小顺序的项目,我们使用9999
作为我们的计数器(即在Sheet2!A3 - {{ 1}}是1,我们从数组中得到最小的值)... SMALL(...,ROW()-2)
处理标题行...实际上,我们通过Sheet1中符合条件的行号的排序列表进行索引< / LI>
ROW()-2
将向我们提供Sheet1中B列中与我们在匹配行列表中的位置相关的值 - 即名称ROW()-2
排序到列表的末尾),因此-2
会给我们一个错误......指数超出范围。所以我们可以用空白替换它。在单元格B3中,我们也会这样做,但是INDEX(Sheet1!$B$1:$B$500,...)
以便我们收到电子邮件...我们仍需要引用SMALL
作为运动名称。然后可以跨越和向下复制这两个单元格......
希望这有一定道理!祝好运!并记得使用 Ctrl + Shift + 输入 ...
输入数组公式