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

DAX技术问题:用SUMMARIZECOLUMNS创建表并将空白值填充为0

DAX解决无记录日期/财周的isAvailable填充0问题

原代码的问题在于SUMMARIZECOLUMNS仅返回存在客户记录的客户-财周组合,没有记录的组合不会被生成,自然无法填充0。要解决这个问题,需要先生成所有可能的客户-财周组合,再与实际记录匹配,填充对应的值。

修改后的DAX代码

Adherence = 
// 1. 获取当前筛选下的客户唯一组合(姓名+编号)
var CustomerCombination = 
    SUMMARIZE(
        Customer,
        Customer[CUST_NAME_EXT],
        Customer[CUSTOMER_EXT]
    )

// 2. 获取当前筛选下的财年-财周唯一组合
var FiscalPeriod = 
    SUMMARIZE(
        'Fiscal Calendar',
        'Fiscal Calendar'[fiscalYear],
        'Fiscal Calendar'[fiscalWeek]
    )

// 3. 生成所有客户-财周的笛卡尔积(所有可能的组合)
var AllCombinations = 
    CROSSJOIN(
        CustomerCombination,
        FiscalPeriod
    )

// 4. 获取有客户记录的组合,标记为1
var ExistingRecords = 
    SUMMARIZECOLUMNS(
        Customer[CUST_NAME_EXT],
        Customer[CUSTOMER_EXT],
        'Fiscal Calendar'[fiscalYear],
        'Fiscal Calendar'[fiscalWeek],
        "isAvailable", 1
    )

// 5. 左连接所有组合与现有记录,空值填充为0
var Result = 
    ADDCOLUMNS(
        AllCombinations,
        "isAvailable",
        VAR CurrentCustName = [CUST_NAME_EXT]
        VAR CurrentCustNum = [CUSTOMER_EXT]
        VAR CurrentYear = [fiscalYear]
        VAR CurrentWeek = [fiscalWeek]
        RETURN
            COALESCE(
                LOOKUPVALUE(
                    ExistingRecords[isAvailable],
                    ExistingRecords[CUST_NAME_EXT], CurrentCustName,
                    ExistingRecords[CUSTOMER_EXT], CurrentCustNum,
                    ExistingRecords[fiscalYear], CurrentYear,
                    ExistingRecords[fiscalWeek], CurrentWeek
                ),
                0
            )
    )

return Result

代码说明

  • CustomerCombination:提取当前筛选范围内的所有客户姓名+编号的唯一组合,避免重复客户。
  • FiscalPeriod:提取当前筛选范围内的所有财年-财周唯一组合,确保覆盖所有需要展示的时间维度。
  • AllCombinations:通过CROSSJOIN生成客户和财周的全量组合,保证没有遗漏的行。
  • ExistingRecords:保留原逻辑,仅标记有实际记录的组合为1。
  • Result:使用LOOKUPVALUE匹配全量组合与现有记录,用COALESCE将匹配不到的空值替换为0。

注意事项

  • 如果需要按**日期(fiscalDate)**而不是财周展示,只需把FiscalPeriod中的财年-财周替换为fiscalDate即可,其余逻辑不变。
  • 确保Customer和Fiscal Calendar的关系正确,筛选器会自动影响最终的组合范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:50:25