You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Power BI Report Builder按日期筛选生成唯一客户列表?

解决Power BI Report Builder中筛选指定日期内有交易的唯一客户问题

核心思路

要精准返回指定日期范围内有交易记录的唯一客户,核心是通过DAX的存在性判断或计数筛选,同时确保客户ID不重复、排除无交易客户。

第一种写法(仅返回唯一CustomerID)

用EXISTS函数直接判断客户在指定日期内是否有交易,配合VALUES保证ID唯一:

EVALUATE
CALCULATETABLE (
    VALUES ( '客户表'[CustomerID] ), -- 自动去重,仅保留唯一客户ID
    EXISTS (
        '交易表',
        '交易表'[交易日期] >= @StartDate
            && '交易表'[交易日期] <= @EndDate
    )
)

EXISTS会自动筛选出在指定日期内有交易的客户,完全排除无交易的无效数据。

第二种写法(返回客户完整信息)

如果需要同时展示客户姓名、联系方式等字段,用FILTER配合RELATEDTABLE实现:

EVALUATE
FILTER (
    '客户表',
    COUNTROWS (
        FILTER (
            RELATEDTABLE ( '交易表' ), -- 获取当前客户的所有交易记录
            '交易表'[交易日期] >= @StartDate
                && '交易表'[交易日期] <= @EndDate
        )
    ) > 0 -- 仅保留有交易记录的客户
)

由于客户表本身每条记录对应唯一客户,最终结果不会出现重复的CustomerID,且只保留符合日期条件的有效客户。

关键注意事项

  • 在Report Builder创建数据集时,必须将@StartDate和@EndDate设置为日期类型的报表参数,让用户可以手动选择起止日期。
  • 确认客户表与交易表的CustomerID关联为一对多(客户表是1端,交易表是多端),否则上述DAX函数会失效。
  • 避免直接关联两表后筛选日期——交易表中一个客户对应多条交易记录,会导致客户ID重复,必须用存在性判断或计数过滤来实现去重和有效筛选。

内容的提问来源于stack exchange,提问作者Saturn2K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 12:52:08