Excel 基于两个标准的索引匹配

Excel 基于两个标准的索引匹配,excel,match,Excel,Match,我有一个ID列表和相应的计划 ID Plan 123456 Ca1 456789 Ca2 456789 Ca3 34567 Ca1 67899 Ca1 67899 Ca5 我需要编写一个查找,检查ID是否存在,如果存在,检查计划是否等于列标题,即计划(Ca1、Ca2等)。如果是,则查找返回1,否则返回0 所以,我的最终结果看起来像 ID

我有一个ID列表和相应的计划

ID              Plan
123456          Ca1
456789          Ca2
456789          Ca3
34567           Ca1
67899           Ca1
67899           Ca5
我需要编写一个查找,检查ID是否存在,如果存在,检查计划是否等于列标题,即计划(Ca1、Ca2等)。如果是,则查找返回1,否则返回0

所以,我的最终结果看起来像

ID          Ca1     Ca2   Ca3   Ca5
123456      1       0      0     0
456789      0       1      1     0
34567       1       0      0     0
67899       1       0      0     1
下面是我当前的查找,其中
$B$1
是列名。但是,它仅适用于列表中的最后一个ID,并为具有该特定计划的其他ID返回0

=IF(INDEX([Combined.xlsx]IDs!$A:$C,MATCH($B2,[Combined.xlsx]IDs!$A:$A,0),MATCH("Plan",[Combined.xlsx]IDs!$A$1:$N$1,0))=$B$1,1,0)

如何调整公式,使所有具有指定计划的ID返回1?建议的公式不适用于我想要的解决方案。

SUMPRODUCT
是最简单的解决方案

或者更好地使用列表对象:


SUMPRODUCT
是最简单的解决方案

或者更好地使用列表对象:


您也可以使用
Countifs()
公式

=COUNTIFS($A$2:$A$7,$D2,$B$2:$B$7,E$1)

您也可以使用
Countifs()
公式

=COUNTIFS($A$2:$A$7,$D2,$B$2:$B$7,E$1)

可能重复使用数据透视表而不是公式。@ScottCraner,好主意。下次我会试试。可能重复使用数据透视表而不是公式。@ScottCraner,好主意。下次我会试试的。这很好用,谢谢。我对SUMPRODUCT不太熟悉,你能解释一下这个特定的实现是如何工作的吗?@n8_-它比较两个矩阵,当两个矩阵中的值都由变量指定时,它们返回TRUE,并转换为1并显示为TRUE。你应该可以在谷歌上搜索更多的例子。谢谢@Michal Rosa。谷歌搜索不是问题,但要找一个足够熟练的人来解释它是如何工作的。谢谢你的帮助,这很有效,谢谢。我对SUMPRODUCT不太熟悉,你能解释一下这个特定的实现是如何工作的吗?@n8_-它比较两个矩阵,当两个矩阵中的值都由变量指定时,它们返回TRUE,并转换为1并显示为TRUE。你应该可以在谷歌上搜索更多的例子。谢谢@Michal Rosa。谷歌搜索不是问题,但要找一个足够熟练的人来解释它是如何工作的。我感谢你的帮助。