检查与列表中多次输入的类似描述符关联的不同值

时间:2015-06-04 02:52:57

标签: excel excel-vba excel-formula vba

我在工作簿中有两张纸,一张"摘要"另一张"注册"。在"注册"我有一个单独的条目列表,概述了学生注册的课程,所有课程都由他们的身份证号码和课程代码标识,例如:

     A           B

 1. ID          Course Code
 2. 123456      225.885
 3. 123456      887.112 
 4. 123456      778.560
 5. 901201      887.112
 6. 902101      555.123
 7. 987654      225.885
 8. 100001      887.112

In"摘要"我有一张表格显示学生编号和一张显示每门课程的表格。像这样:

          A        B       C           D          E



 1. .............225.885......887.112.....778.560....555.123

 2. 123456
 3. 901201
 4. 987654
 5. 100001

我希望能够做的是编写一个脚本或公式来搜索"摘要"中的学生ID。列表,然后检查并查看学生在"注册"中注册的课程,然后检查学生注册的每个方框,在"摘要"片。

我尝试使用嵌套的IF和VLOOKUP来检查注册,以及IF INDEX / MATCH嵌套公式,例如将此公式放在课程的每个单元格中(即B2:D5):

=IF(INDEX(Enrolments!$A$2:$H$10,MATCH(Summary!$A2,Enrolments!$A$2:$A$10,0))=B$1,"X"," ")

但是我尝试的每一个,只查看列表中ID号的第一个实例,而不是后续条目。所以我觉得函数不是要走的路...有没有办法使用VBA脚本强制公式重复所有条目的功能?还是我没试过的另一个功能?

3 个答案:

答案 0 :(得分:1)

你想要做的是MULTICOLUMN-LookUp。要执行MultiCOLUMN LookUp,您必须首先构建searchKey列。enter image description here

<强>入学

  • 创建实际连接StudentID和CourseCode的ColumnB(SearchKey)。公式为C3 & "x" & D3。我们的想法是为每个学生和学生创建一个唯一ID。他/她的课程。

<强>概要

  • 在“勾选部分”中,您使用SearchKey(学生ID +课程ID)对注册中的SearchKey执行VLookup。
  • 如果SearchKey已找到,则表示该学生已注册该课程。
  • 如果未找到SearchKey,则表示该学生未参加该课程。

**请注意公式中的$,它决定了单元格的静态部分。

**具有基于公式的查找对于数据透视表具有优势,因为它具有更大的灵活性,并允许根据结果进行进一步计算。

答案 1 :(得分:0)

我喜欢Joseph的回答,但是因为我已经完成了这项工作,并且如果数据透视表(也可以放在单独的工作表上),是可以接受的:

  • 1)在字段列表中,将ID号拖到行标签
  • 2)将课程代码拖到列标签

  • 3)将ID号或课程代码拖到值

  • 4)[可选]关闭Grand Totals,并将Layout Report设置为 表格形式
  • 5)将“字段值”设置更改为“计数”,
  • 6)选择数据透视表中的整个值范围,
  • 7)使用&#34;选择仅包含&#34;的单元格格式化单元格。 选项,
  • 8)确保方框显示&#34; Cell Value&#34;,&#34; Equal to&#34;,&#34; 1&#34;,
  • 9)对于格式选择&#34;自定义&#34;并在标有Type type的框中 信&#34; x&#34;,
  • 10)选择&#34;确定&#34;,&#34;确定&#34;和&#34;确定&#34;。

enter image description here

答案 2 :(得分:0)

谢谢你们两位,非常好的答案,我知道你们会得到答案。如果你长时间处理一个问题,你会被一种方法所困扰,谢谢你让我摆脱困境。这两个答案都很完美,我最后使用了数据透视表,因为它需要大约4次点击。再次感谢。