DAX比较操作报整数与文本类型不支持比较错误求解
DAX类型不匹配报错解决方案
报错根因
你触发该报错的核心原因不是两个关联字段tbl1[Memno]和tbl2[mempersonid]的类型问题,而是IF判断逻辑存在类型不匹配:
COUNTA函数返回的是统计到的非空值数量,结果为整数类型- 你将该整数结果与文本类型的空字符串
""做相等比较,正好符合报错中提到的「整数与文本比较」的违规场景
DAX会校验表达式中所有的比较逻辑,你之前把排查重心放在关联字段上,忽略了IF判断里的类型差异,所以一直找不到问题。
修复方案
将判断空的逻辑替换为判断计数结果是否为0即可,还可以通过变量减少重复计算,优化后的代码如下:
VAR engagement_count = CALCULATE ( COUNTA ( 'tbl1'[type] ), FILTER ( 'tbl1', 'tbl1'[Memno] = 'tbl2'[mempersonid] ) ) RETURN IF ( engagement_count = 0, "No engagement", engagement_count )
如果存在统计结果为空的特殊场景,可以新增ISBLANK判断覆盖边界情况:
VAR engagement_count = CALCULATE ( COUNTA ( 'tbl1'[type] ), FILTER ( 'tbl1', 'tbl1'[Memno] = 'tbl2'[mempersonid] ) ) RETURN IF ( ISBLANK(engagement_count) || engagement_count = 0, "No engagement", engagement_count )
内容的提问来源于stack exchange,提问作者Khet_Mng
相关产品推荐
相关产品推荐

