如何编写对另一表格分组行执行IF条件判断的公式
你要的分组全匹配校验可以通过「统计当前分组下ColA不等于ColC的行数」实现,只要行数为0就说明所有行都满足条件,否则不满足,以下是不同常用工具的可直接套用公式:
Excel 365/2021及以上版本(支持结构化表引用)
直接在Table2的ColAEqColC列输入如下公式,会自动整列填充:
=IF(COUNTIFS(Table1[GroupId], [@GroupID], Table1[ColA], "<>"&Table1[ColC])=0, "Yes", "No")
旧版Excel(无结构化引用)
假设Table1数据范围是A1:D6(表头占第1行,共5行数据),Table2的第一个分组GroupA在F2单元格,对应ColAEqColC单元格公式为:
=IF(COUNTIFS(D:D, F2, A:A, "<>"&C:C)=0, "Yes", "No")
输入后下拉填充即可。
Google Sheets
和Excel通用COUNTIFS写法,也可以用更简洁的FILTER逻辑:
=IF(AND(FILTER(Table1[ColA]=Table1[ColC], Table1[GroupId]=[@GroupID])), "Yes", "No")
Power BI DAX 计算列
如果是在Power BI中做计算,Table2的ColAEqColC计算列表达式如下:
ColAEqColC = VAR CurrentGroup = Table2[GroupID] VAR UnmatchedCount = COUNTROWS( FILTER(Table1, Table1[GroupId] = CurrentGroup && Table1[ColA] <> Table1[ColC]) ) RETURN IF(UnmatchedCount = 0, "Yes", "No")
效果验证
按照你给出的示例数据,GroupA分组下没有ColA≠ColC的行,返回Yes;GroupB存在1行不匹配,返回No,和预期输出完全一致。
内容的提问来源于stack exchange,提问作者Tom Archer
相关产品推荐
相关产品推荐

