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

Power BI中根据品牌数量生成Affiliate列的DAX度量需求

在Power BI中通过DAX实现按关联品牌数生成对应行数的结果

你需要生成一个结果集,其中每个Affiliate出现的行数等于其关联的不同品牌数量——比如x17关联1个品牌则显示1行,1x2关联2个品牌则显示2行,x456关联1个品牌则显示1行。以下分场景给出解决方案:

场景1:原始表已包含每个Affiliate+Brand的独立行

如果你的原始表(假设名为AffiliateBrands)已经是每行对应一个Affiliate和一个Brand(比如x17对应一行B,1x2对应两行B和F),直接创建计算表提取所需列即可:

TargetResult = 
SELECTCOLUMNS (
    AffiliateBrands,
    "Affiliate", AffiliateBrands[Affiliate],
    "Brand", AffiliateBrands[Brand]
)

这个表会直接呈现你需要的行数,每个Affiliate的行数等于其关联的品牌数。

场景2:原始表是聚合形式(每个Affiliate一行,Brand为多值)

如果原始表是聚合后的结构(比如每个Affiliate一行,Brand列存储多个品牌值),需要先拆分品牌并生成对应行数:

  1. 先创建计算表,获取每个Affiliate的不同品牌集合:
AffiliateBrandSets = 
SUMMARIZE (
    AffiliateBrands,
    AffiliateBrands[Affiliate],
    "DistinctBrands", DISTINCT(AffiliateBrands[Brand])
)
  1. 基于这个表生成展开后的最终结果:
TargetResult = 
GENERATE (
    AffiliateBrandSets,
    [DistinctBrands]
)

该结果表会自动为每个Affiliate生成对应品牌数量的行,完全匹配需求。

补充:生成带行号的列

如果需要为每个Affiliate下的行添加序号(比如1x2的两行分别标记为1、2),可以用以下DAX:

AffiliateWithRowNumbers = 
ADDCOLUMNS (
    TargetResult,
    "RowNumber", 
    RANKX (
        FILTER (TargetResult, TargetResult[Affiliate] = EARLIER(TargetResult[Affiliate])),
        TargetResult[Brand],
        , ASC, DENSE
    )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:50:07