Power BI技术问题:如何按另一列统计去重值数量?
问题描述
我需要实现以下需求:(对应输入图片),期望得到如下输出效果:(对应输出图片)。我尝试过以下DAX代码,也试过使用SUMMARIZE和GROUPBY函数,但均未成功。
代码:count of listings by borough = CALCULATE(DISTINCTCOUNT('Calendar'[listing_id]), FILTER(Listings, Listings[neighbourhood]))
解决方案
你的DAX公式核心问题是没有建立Calendar和Listings表的关联逻辑,FILTER仅筛选了Listings的非空行政区行,但没把这些行和Calendar的房源ID绑定,导致统计逻辑失效。以下是几种可行的修正方案:
方法1:利用已有的表关系(推荐)
如果Calendar和Listings表已通过listing_id建立一对多关系(Listings为一方,Calendar为多方),直接用下面的公式即可按行政区统计唯一房源数:
按行政区统计房源数 = CALCULATE(DISTINCTCOUNT('Calendar'[listing_id]), VALUES(Listings[neighbourhood]))
要是Listings表中每个房源仅对应一个行政区,还能更简洁:
按行政区统计房源数 = DISTINCTCOUNT('Listings'[listing_id])
方法2:手动关联表(无预设关系时使用)
如果两张表没建立关系,需要在FILTER中明确关联条件:
按行政区统计房源数 = CALCULATE( DISTINCTCOUNT('Calendar'[listing_id]), FILTER( ALL(Listings), Listings[listing_id] = EARLIER('Calendar'[listing_id]) ) )
也可以用SUMMARIZE直接生成汇总表:
行政区房源汇总 = SUMMARIZE( Listings, Listings[neighbourhood], "房源数量", DISTINCTCOUNT(Listings[listing_id]) )
内容的提问来源于stack exchange,提问作者angeliquelinde
相关产品推荐
相关产品推荐

