IF数组中的Excel计数

ct3nt3jp  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(117)

我有两个表,其中包含通过/失败变量的姓名数据。我试图计算有多少人最初失败,但后来通过了。
| 名称名称名称|通过|
| - -|- -|
| 麦克|通过|
| 若翰|失败|
| 比利|失败|
| 名称名称名称|通过|
| - -|- -|
| 麦克|通过|
| 若翰|通过|
| 比利|失败|
我最初的做法是创建第三个表,用IF数组列出失败者的名字,然后计算“TRUE“的数量。
对于名称:

=IFERROR(IFS(Table13[Passed]="FAILED", Table13[Name]), "")

稍后通过:

=IF(XLOOKUP(VALUETOTEXT(A2),Table1[Name],Table1[Passed])="Passed",TRUE,FALSE)

| 名称名称名称|最初通过|稍后通过|
| - -|- -|- -|
| 药方:万毒丹|药方:万毒丹|药方:万毒丹|
| 若翰|失败|正确|
| 比利|失败|错误|
最后得到了计数

=COUNTIF(Table3[Passed Later], "=TRUE")

我可以跳过name列,直接将前两个公式合并到

=IF(XLOOKUP(IFS(Table13[Passed]="Failed", Table13[Name]),Table1[Name],Table1[Passed])="Passed",TRUE,FALSE)

现在我被COUNTIF函数的组合卡住了。如果可能的话,我不知道如何将所有这些实现到一个函数中。有什么建议吗?我认为我的主要问题是Passed Later列的输出不是数字,而是字符串。

t2a7ltrp

t2a7ltrp1#

使用两个筛选器,并使用IsNumber(Match())检查第一个筛选器是否在第二个筛选器中找到

=LET(
    fst,FILTER(Table13[Name],Table13[Passed]="Failed"),
    scd,FILTER(Table1[Name],Table1[Passed]= "Passed"), 
    SUM(--ISNUMBER(MATCH(fst,scd,0))))

如果您需要失败然后通过的人员的名称,请添加另一个筛选器:

=LET(
    fst,FILTER(Table13[Name],Table13[Passed]="Failed"),
    scd,FILTER(Table1[Name],Table1[Passed]= "Passed"),
    FILTER(fst,ISNUMBER(MATCH(fst,scd,0))))

xwmevbvl

xwmevbvl2#

以下方法是否有效:

G1中的公式:

=FILTER(A2:A5,COUNTIFS(A2:A5,A2:A5,B2:B5,"Failed")*COUNTIFS(D2:D5,A2:A5,E2:E5,"Passed"))

或者,如果您需要计数:

H1中的公式:

=SUM(COUNTIFS(A2:A5,FILTER(D2:D5,E2:E5="Passed"),B2:B5,"Failed"))
8qgya5xd

8qgya5xd3#

不确定这是否是正确的答案,但它的工作。
键入后:
我认为我的主要问题是Passed Later列的输出不是数字,而是字符串。
我能够弄清楚它。我只需要在最后一个if语句上给予一个数字输出来表示“通过”,给出一个字符串来表示“失败”。这是我的最终公式,至少是我得出的解决方案。

=COUNT(IF(XLOOKUP(IFS(Table13[Passed]<>1, Table13[Name]),Table1[Name],Table1[Passed])=1,1,""))

我想我应该把这件事留给别人去做。

相关问题