【问题标题】:Find and count matches between two arrays in excel在excel中查找和计算两个数组之间的匹配项
【发布时间】:2016-03-30 03:41:02
【问题描述】:

我正在尝试制作一个跟踪学生进度的表格。入学后,学生将获得所有科目的预测成绩。在今年晚些时候,他们的老师会给他们一个考试(有一个成绩),然后给出一组新的预测成绩。

这给了我两张桌子(每张都在不同的纸上)......

-------------------------------------
-Entry   -          Subject         -
-------------------------------------
-Student - Art  -  Maths  -  French -
-------------------------------------
- Jane   -   U  -   U     -  n      -
-------------------------------------
- Alice  -   E  -   A+     - n      -
-------------------------------------
- Tom    -   D  -   A     -  c      -
-------------------------------------

----------------------------------------------------------------------
-Later   -                         Subject                           -
----------------------------------------------------------------------
-Student - Art Exam -  Art New Grade - Maths Exam - Maths New Grade  -
----------------------------------------------------------------------
- Jane   -   U      -   U            -  E         -    E             -
----------------------------------------------------------------------
- Alice  -   D      -   D            -  A+         -   A+            -
----------------------------------------------------------------------
- Tom    -   C      -   B            -  A         -    A+            -
----------------------------------------------------------------------

我创建了一个仪表板,它有两个下拉菜单,用户可以在其中选择主题,然后进行比较(考试成绩、新成绩、最佳成绩……)。使用 SUMPRODUCT,我可以获取该输入并轻松计算匹配列中的成绩。

我想要做的是创建一个类似于下面的表格,可以显示学生在两个跟踪周期之间的变化...

--------------------------------------------
- Subject -          New Grade             -
-   Art   - n - U - E - D - C - B - A - A+ -
--------------------------------------------
- E    n  -   -   -   -   -   -   -   -    -
-- -----------------------------------------
- n    U  -   - 1 -   -   -   -   -   -    -
-- -----------------------------------------
- t    E  -   -   -   - 1 -   -   -   -    -
-- -----------------------------------------
- r    D  -   -   -   -   -   - 1 -   -    -
-- -----------------------------------------
- y    C  -   -   -   -   -   -   -   -    -
--------------------------------------------
-      B  -   -   -   -   -   -   -   -    -
--------------------------------------------
-      A  -   -   -   -   -   -   -   -    -
--------------------------------------------
-     A+  -   -   -   -   -   -   -   -    -
--------------------------------------------

每个单元格计算在两个数组之间找到匹配值的次数,其中主题 = 所选值(在本例中为艺术)和比较 = 所选值(在本例中为新成绩)。我不介意空值为零或空白。我需要计算匹配的数量,这样我才能查看有多少学生取得了进步(在字母表中比建议的入学测试更早地得到一个字母)。

理想情况下,我最终还可以选择行和列,以便教师可以将考试结果与新的预测成绩进行比较。

在我的两个数组中,学生以相同的顺序出现(少一个需要担心的标准),但科目和比较者却没有。 (注意 - 我一直在使用连接来合并主题和比较器)

到目前为止,我看到的所有帮助都希望数据只有两行,但我有 20 个受试者,然后每个受试者可以进行 5 次左右的比较!

感谢您的建议!

【问题讨论】:

    标签: excel excel-formula excel-2010 vba


    【解决方案1】:

    试试这个:

    =IF(SUMPRODUCT(($B3=INDEX(Sheet1!$B$3:$D$5,0,MATCH($A$2,Sheet1!$B$2:$D$2,0)))*(C$2=INDEX(Sheet2!$B$3:$E$5,0,MATCH($A$2 & " New Grade",Sheet2!$B$2:$E$2,0))))=0,"",SUMPRODUCT(($B3=INDEX(Sheet1!$B$3:$D$5,0,MATCH($A$2,Sheet1!$B$2:$D$2,0)))*(C$2=INDEX(Sheet2!$B$3:$E$5,0,MATCH($A$2 & " New Grade",Sheet2!$B$2:$E$2,0)))))
    

    如果您不介意0s,那么上述 if 语句的正确部分将起作用:

    =SUMPRODUCT(($B3=INDEX(Sheet1!$B$3:$D$5,0,MATCH($A$2,Sheet1!$B$2:$D$2,0)))*(C$2=INDEX(Sheet2!$B$3:$E$5,0,MATCH($A$2 & " New Grade",Sheet2!$B$2:$E$2,0))))
    

    供参考:

    参赛表(Sheet1):

    新成绩单(Sheet2)

    需要注意的是,学生的顺序必须相同。

    【讨论】:

    • 亲爱的斯科特,谢谢!这绝对是一种享受,也感谢您提供如此有用的插图!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-01
    相关资源
    最近更新 更多