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

Checking for different values associated with a similar descriptor entered multiple times in a list

我的工作簿中有 2 个 sheet,一个 "Summary",另一个 "Enrolments"。在 "Enrolments" 中,我有一个单独的条目列表,概述了 类 学生注册的内容,所有条目均由他们的 ID 号和课程代码标识,例如:

     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

在 "Summary" 中,我有一个显示学号的 table 和一个显示每门课程的 table。像这样:

          A        B       C           D          E



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

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

我想做的是编写一个脚本或公式来搜索 "Summary" 列表中的学号,然后查看 类 该学生在哪个学校注册"Enrolments",然后在 "Summary" sheet 上的 table 学生注册的每个方框中打勾。

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

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

但我尝试过的每一个都只查看列表中 ID 号的第一个实例,而不查看后续条目。所以我想函数不是可行的方法......有没有办法使用 VBA 脚本强制公式为所有条目重复函数?或者其他我没试过的功能?

您要做的是多列查找。要执行 MultiCOLUMN LookUp,您必须首先构建一个 searchKey 列。

注册人数

  • 创建实际上将 StudentID 和 CourseCode 连接在一起的 ColumnB (SearchKey)。公式为C3 & "x" & D3。这个想法是为 s/he 参加的每个学生和课程创建一个唯一的 ID。

摘要

  • 在 "Tick Section" 中,您使用 SearchKey(StudentID + CourseID)针对 Enrolments 中的 SearchKey 执行 VLookup。
  • 如果找到该 SearchKey,则表示该学生已注册该课程。
  • 如果找不到该 SearchKey,则表示该学生未注册该课程。

**请注意公式中的 $,它指示单元格的静态部分。

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

我喜欢约瑟夫的回答,但是因为我已经解决了这个问题,并且如果数据透视表(也可以放在单独的 sheet 上)是可以接受的:

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

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

  • 4) [可选] 关闭总计,并将布局报告设置为 表格形式
  • 5) 将字段值设置更改为计数,
  • 6) Select 数据透视表中的整个值范围,
  • 7) 使用 "Select only cells that contain" 格式化单元格 选项,
  • 8) 确保方框显示 "Cell Value"、"Equal to"、“1”、
  • 9) 对于格式 select "Custom" 并在标记为类型的框中键入 字母 "x",
  • 10) Select "OK"、"OK" 和 "OK".

谢谢两位,很好的答案,我就知道你们会有答案。如果你长时间研究一个问题,你就会专注于一种方法,谢谢你让我摆脱了恐惧。这两个答案都很完美,我最后使用了枢轴 table 因为它需要大约 4 次点击。再次感谢。