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

如何使用DAX筛选仅对应单个Preparer的Source并完整展示相关字段信息

解决DAX中保留Preparer字段的筛选需求

嘿,我明白你的问题了——你现有的代码能筛选出仅对应一个Preparer的Source,但没法把Preparer字段也展示出来对吧?其实核心原因是你在SUMMARIZECOLUMNS里只分组了Source,没有把Preparer纳入分组维度。这里给你两种可行的修改方案:

方案一:扩展SUMMARIZECOLUMNS的分组字段

直接把Preparer加入到SUMMARIZECOLUMNS的分组项里,再配合筛选条件,就能同时拿到三列数据:

TableResult = 
FILTER (
    SUMMARIZECOLUMNS (
        'Table'[Source],
        'Table'[Preparer],  // 新增Preparer作为分组字段
        "Number", DISTINCTCOUNT ( 'Table'[Preparer] )
    ),
    [Number] = 1
)

为什么这个可行?

因为我们筛选的是[Number] = 1的行,这意味着每个Source只会对应唯一的Preparer。把Preparer加入分组后,不会出现同一个Source对应多个Preparer的重复行,完全符合你想要的输出格式。

方案二:用变量+ADDCOLUMNS实现(更直观)

如果觉得分组的方式有点绕,也可以先筛选出符合条件的Source,再手动添加Preparer和Number列:

TableResult = 
VAR ValidSources = 
    // 先筛选出仅对应一个Preparer的Source
    FILTER (
        VALUES ( 'Table'[Source] ),
        CALCULATE ( DISTINCTCOUNT ( 'Table'[Preparer] ) ) = 1
    )
RETURN
    // 给每个符合条件的Source添加Preparer和Number列
    ADDCOLUMNS (
        ValidSources,
        "Preparer", CALCULATE ( VALUES ( 'Table'[Preparer] ) ),  // 取唯一的Preparer值
        "Number", 1  // 固定为1,因为已经筛选过条件
    )

这个方案逻辑更清晰:先确定哪些Source是符合要求的,再给这些Source补充对应的Preparer(因为每个Source只有一个Preparer,用VALUES就能直接拿到)和固定的Number值1。

两种方案都能输出你想要的结果:

SourcePreparerNumber
MNJune1
RTKim1
POJune1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:57:44