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

DAX按日期分组拼接合同列值问题求助

解决方案:按到期日期分组拼接合同Key

你可以基于已生成的T1表,通过SUMMARIZE结合CONCATENATEX函数实现按日期分组并拼接合同Key的需求,修改后的DAX代码如下:

Table contracts by date = 
VAR T1 = 
CALCULATETABLE(
    SUMMARIZE(contracts,
       contracts[Contrat], 
       contracts[Mandat], 
       contracts[CléContratDemande], 
       "date",[_mesure_date_expire], 
       "fullKey", contracts[CléContratDemande]
    ),
    contracts[Statut] = "Active",
    ALLEXCEPT(contracts, contracts[Contrat],contracts[Mandat])
)
RETURN
SUMMARIZE(
    T1,
    T1[date],
    "合同Key列表", CONCATENATEX(T1, T1[fullKey], ", ")
)

关键说明:

  • SUMMARIZE的第一参数是要聚合的表(这里是T1),第二参数指定分组依据(T1[date]),第三参数定义聚合列,用CONCATENATEX遍历当前分组内的所有行,将fullKey用指定分隔符(这里是, )拼接成字符串。
  • 如果需要保留Contrat和Mandat维度的分组,只需在SUMMARIZE的分组参数中添加对应字段即可,示例如下:
Table contracts by date = 
VAR T1 = 
CALCULATETABLE(
    SUMMARIZE(contracts,
       contracts[Contrat], 
       contracts[Mandat], 
       contracts[CléContratDemande], 
       "date",[_mesure_date_expire], 
       "fullKey", contracts[CléContratDemande]
    ),
    contracts[Statut] = "Active",
    ALLEXCEPT(contracts, contracts[Contrat],contracts[Mandat])
)
RETURN
SUMMARIZE(
    T1,
    T1[Contrat],
    T1[Mandat],
    T1[date],
    "合同Key列表", CONCATENATEX(T1, T1[fullKey], ", ")
)

常见问题排查:

  • 若之前使用GROUPBY未成功,需注意GROUPBY的聚合函数必须用CURRENTGROUP()限定当前分组的上下文,写法示例:
RETURN
GROUPBY(
    T1,
    T1[date],
    "合同Key列表", CONCATENATEX(CURRENTGROUP(), [fullKey], ", ")
)

这种写法也能实现相同效果,区别在于SUMMARIZE会自动处理上下文筛选,而GROUPBY需要显式指定CURRENTGROUP()来锁定当前分组的行范围。

内容的提问来源于stack exchange,提问作者Pat N.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:13:13