如何使用DAX公式校验两列值 识别无Transfer的账户返回布尔值
以下公式默认你的表名为业务表,两个存储状态的计算列名为状态列1、状态列2,账户唯一标识列名为账户ID,可根据你的实际表名、列名替换后直接使用。
场景1:新建表级计算列(逐行标注对应账户是否无Transfer)
无Transfer账户 = COUNTROWS( FILTER( '业务表', '业务表'[账户ID] = EARLIER('业务表'[账户ID]) && ('业务表'[状态列1] = "Transfer" || '业务表'[状态列2] = "Transfer") ) ) = 0
逻辑说明:统计当前账户所有行中,任意一列出现Transfer的行数,若行数为0则返回TRUE,否则返回FALSE,天然为布尔类型,无需额外转换。
场景2:新建度量值(适配透视表、可视化组件的动态筛选上下文)
当前筛选账户无Transfer = ISBLANK( CALCULATE( COUNTROWS('业务表'), '业务表'[状态列1] = "Transfer" || '业务表'[状态列2] = "Transfer", ALLEXCEPT('业务表','业务表'[账户ID]) ) )
注意事项
- 列中存在的BLANK()、Not Eligible值不会匹配Transfer判断条件,无需额外做过滤处理
- 若数据中存在大小写不一致的Transfer写法,可将判断条件替换为
UPPER('业务表'[状态列1]) = "TRANSFER"兼容识别
内容的提问来源于stack exchange,提问作者Koushal Dutt
相关产品推荐
相关产品推荐

