在 COUNTIFS 中使用 VLOOKUP 作为条件

Use VLOOKUP as criteria inside COUNTIFS

使用这个社区多年后,我有一个问题找不到答案。希望大家帮帮忙!

我正在尝试计算每个人逾期未交的“禁飞”物品的数量。我的屏幕截图 (Count Tracker) 显示了我正在使用的内容的一个非常浓缩的版本。 A-C 列是我从外部源导入的大型(15,000 行)数据字段。在 G-H 列中,我列出了每个可能的任务(大约 100 行)和类型(接地和非接地以及许多其他任务)。 F 列是我试图获取计数的地方。

我在 F9 中的公式目前使用 COUNTIFS 来计算大数组中等于 E9(本例中为“Smith”)且大数组中的截止日期小于或等于F8 中的当前日期。我无法弄清楚的是如何添加以计算大型数组中的任务,其中 H 列中的任务类型等于“接地”。我尝试了 VLOOKUP,但它似乎不喜欢它并告诉我公式有问题。它不起作用,但这是我所追求的总体思路:

=COUNTIFS($A:$A,$E9,$C:$C,"<="&$F,VLOOKUP($B:$B,$G:$H,2,FALSE),"=Grounded")

根据当前数据的显示方式,Smith 的计数应该为 1,Jones 的计数应该为 0。我觉得这比我想象的要简单,但我可以弄清楚。我正在使用 Excel 2016.

希望我把问题解释得足够好。感谢您的协助。

对于 Excel 2016 我会说 MMULT() 是一个不错的选择:

CSE-Formula 在 F9:

=SUM((A:A=E9)*(MMULT((TRANSPOSE(G:G)=B:B)*(TRANSPOSE(H:H)="Grounding"),ROW(G:G)^0))*(C:C<=F))

您可以添加第四列来存储该任务是否已接地

D2 的公式为:

=INDEX($H:$H,MATCH(B2,$G:$G,0))

修改您的 CountIfs 公式以使用此新列作为条件

=COUNTIFS($A:$A,$E9,$C:$C,"<="&$F,$D:$D, "Grounded")

试试这个没有辅助解的 Sumproduct+Vlookup 公式,它可以为你的 Excel 2016

工作

F9中,公式复制下来:

=SUMPRODUCT((A:A=E9)*(VLOOKUP(T(IF({1},$B:$B)),G:H,2,0)="Grounded")*($C:$C<=$F))