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

请求编写Power BI DAX查询以创建周度销售汇总表视图

正确DAX实现方案

原代码问题分析

  1. 表名混淆:你代码里引用了InvIssue[Location]和InvIssue[Sales],但数据源表是DataSheet,这会直接导致列找不到的错误。
  2. 逻辑偏差:GENERATE搭配DATESBETWEEN是把每条销售记录和对应日期范围做笛卡尔积,完全不是统计每周销售总和的正确逻辑,而且DATESBETWEEN里的[Date]没有指定所属表,上下文模糊也会触发报错。

方案1:直接分组生成周销售统计

用SUMMARIZE按城市和周结束日(周六)分组,直接计算每周销售总量:

WeeklySalesCount = 
SUMMARIZE(
    DataSheet,
    // 替换为你实际的城市列名,比如DataSheet[Location]
    DataSheet[城市],
    "周结束日(周六)", 
        VAR CurrentDate = DataSheet[Date]
        // 计算当前日期所属周的周六(周范围:周日至周六)
        RETURN CurrentDate + (7 - WEEKDAY(CurrentDate, 1)),
    // 替换为你实际的销售数量列名,比如DataSheet[Sales]
    "周销售总量", SUM(DataSheet[销售数量])
)

方案2:先加计算列再统计

如果需要后续复用周结束日的逻辑,可以先给DataSheet添加计算列标记每条记录的周结束日:

// 在DataSheet中创建计算列
周结束日(周六) = 
VAR CurrentDate = DataSheet[Date]
RETURN CurrentDate + (7 - WEEKDAY(CurrentDate, 1))

然后基于这个计算列生成统计视图:

WeeklySalesCount = 
SUMMARIZE(
    DataSheet,
    DataSheet[城市],
    DataSheet[周结束日(周六)],
    "周销售总量", SUM(DataSheet[销售数量])
)

周范围调整说明

如果你的周范围是周一至周六(而非周日至周六),只需修改WEEKDAY的参数和计算逻辑:
把周结束日的公式改成:

CurrentDate + (6 - WEEKDAY(CurrentDate, 2))

这里WEEKDAY(..., 2)表示周一为1,周日为7,计算后会把周一到周五的日期映射到当周周六,周六则返回当天。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:13:09