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

求助:使用DAX基于两张多对多关联表创建站点-日期新表

DAX 创建关联站点与起始日期的新表方案

需求背景

现有两张关联表:

  • Mapping表:记录站点与对应服务的映射关系
    SiteService
    ALAN
    AWAN
    ADesktop
    BLAN
    BWAN
    BMainF
  • Data表:记录服务对应的时间周期
    ServiceStartEnd
    LAN1-Jan2-Jan
    WAN3-Jan4-Jan
    Desktop5-Jan6-Jan
    MainF7-Jan8-Jan
    Desktop9-Jan10-Jan
    MainF11-Jan12-Jan

两表通过Service字段建立多对多关联,需用DAX生成新表,展示每个站点对应的所有服务起始日期。

解决方案

提供两种可行的DAX表达式,任选其一即可实现需求:

方法一:自然左连接+列筛选

利用NATURALLEFTOUTERJOIN自动匹配关联字段,再提取目标列:

Site_Start_Dates = 
SELECTCOLUMNS (
    NATURALLEFTOUTERJOIN (
        Mapping,
        SELECTCOLUMNS ( Data, "Service", Data[Service], "StartDate", Data[Start] )
    ),
    "Site", Mapping[Site],
    "Start", [StartDate]
)

方法二:交叉连接+存在性筛选

先生成站点与服务日期的全组合,再筛选出映射关系存在的记录:

Site_Start_Dates = 
FILTER (
    CROSSJOIN (
        VALUES(Mapping[Site]),
        SELECTCOLUMNS(Data, "Service_Data", Data[Service], "Start", Data[Start])
    ),
    EXISTS (
        Mapping,
        AND (
            Mapping[Site] = [Site],
            Mapping[Service] = [Service_Data]
        )
    )
)

输出结果

执行上述DAX后,生成的新表如下:

SiteStart
A1-Jan
A3-Jan
A5-Jan
A9-Jan
B1-Jan
B3-Jan
B7-Jan
B11-Jan

注:若日期显示格式不符合预期,可在Power BI/SSAS中调整新表Start列的格式设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:52:43