PowerBI无需合并双表,如何用DAX同时筛选统计数据?
在PowerBI中跨Fioptics和Legacy分表筛选统计RecordID的DAX方案
针对你不能合并表、需要分表处理的场景,有两种直接的DAX实现方式,满足同时从两张表提取指定字段并筛选统计的需求:
方法1:合并必要字段后统一筛选(适合需复用合并数据集的场景)
先通过SELECTCOLUMNS提取两张表中需要的字段,再用UNION合并成临时表,最后筛选计数。注意要保证两张表的对应字段数据类型完全一致,否则UNION会报错:
统计符合条件的RecordID数量 = VAR 合并临时表 = UNION( SELECTCOLUMNS(Fioptics, "RecordID", Fioptics[RecordID], "JobTypeID", Fioptics[JobTypeID], "CustTypeID", Fioptics[CustTypeID], "prod_grouping", Fioptics[prod_grouping] ), SELECTCOLUMNS(Legacy, "RecordID", Legacy[RecordID], "JobTypeID", Legacy[JobTypeID], "CustTypeID", Legacy[CustTypeID], "prod_grouping", Legacy[prod_grouping] ) ) RETURN COUNTROWS( FILTER( 合并临时表, [JobTypeID] = 1 && [CustTypeID] = 1 && -- 替换成你的prod_grouping筛选条件,比如固定值或动态引用切片器 [prod_grouping] = "目标分组" ) )
方法2:分表统计后求和(性能更优,适合单纯计数场景)
分别对两张表做筛选计数,再将结果相加,避免合并整张表带来的性能损耗:
统计符合条件的RecordID数量 = VAR Fioptics统计数 = COUNTROWS( FILTER(Fioptics, Fioptics[JobTypeID] = 1 && Fioptics[CustTypeID] = 1 && Fioptics[prod_grouping] = "目标分组" ) ) VAR Legacy统计数 = COUNTROWS( FILTER(Legacy, Legacy[JobTypeID] = 1 && Legacy[CustTypeID] = 1 && Legacy[prod_grouping] = "目标分组" ) ) RETURN Fioptics统计数 + Legacy统计数
补充说明
如果你的prod_grouping是动态筛选(比如通过切片器选择),可以把硬编码的条件改成动态引用,比如:
[prod_grouping] IN VALUES('分组维度表'[prod_grouping])
这样就能自动响应切片器的选择,不用手动修改度量值。
内容的提问来源于stack exchange,提问作者mikejr
相关产品推荐
相关产品推荐

