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

如何在Power Query中基于多列条件添加PY Sales列?

在Power Query中添加PY Sales列的步骤

以下是严格匹配指定列来获取上年销售额的具体操作:

步骤1:复制当前数据表作为上年数据源

  • 在Power Query编辑器中,右键点击你的销售数据表,选择复制,然后右键点击查询面板空白处,选择粘贴,将复制的表命名为Sales_PY。

步骤2:处理上年数据表

  • 选中Sales_PY表,找到Fiscal Year列,右键选择更改类型确保它是数值类型(如果原本是字符串,先转成数值)。
  • 添加自定义列,公式为:
    [Fiscal Year] - 1
    
    删除原来的Fiscal Year列,把新列重命名为Fiscal Year。
  • 只保留以下列:Location、Fiscal Year、Period、Week、Item、Sales(你的销售额列名),然后把Sales列重命名为PY Sales。

步骤3:合并原表与上年数据表

  • 回到原始销售数据表,点击主页选项卡中的合并查询 → 合并查询作为新列。
  • 在合并窗口中:
    1. 上方选择原始数据表,依次勾选匹配列:Location、Fiscal Year、Period、Week、Item。
    2. 下方选择Sales_PY表,对应勾选相同的列:Location、Fiscal Year、Period、Week、Item。
    3. 连接类型选择左外部(确保原表所有行保留,无上年数据的显示空值)。
  • 点击确定后,会新增一列(默认名Sales_PY),点击列标题右侧的展开按钮,只勾选PY Sales列,然后确定。

步骤4:处理空值(可选)

  • 若新增地点或商品导致上年无数据,PY Sales会显示空值。选中该列,点击转换选项卡中的替换值,把空值替换为0,方便后续计算。

补充:用M语言直接实现(适合熟悉M代码的用户)

你也可以直接在原始表的高级编辑器中添加以下代码(替换对应列名):

let
    Source = 你的原始数据源,
    // 复制并处理上年数据
    Sales_PY = Table.RenameColumns(Table.SelectColumns(Table.TransformColumns(Source, {{"Fiscal Year", each _ - 1, Int64.Type}}), {"Location", "Fiscal Year", "Period", "Week", "Item", "Sales"}), {{"Sales", "PY Sales"}}),
    // 合并查询
    Merged = Table.NestedJoin(Source, {"Location", "Fiscal Year", "Period", "Week", "Item"}, Sales_PY, {"Location", "Fiscal Year", "Period", "Week", "Item"}, "Sales_PY", JoinKind.LeftOuter),
    // 展开PY Sales列
    Expanded = Table.ExpandTableColumn(Merged, "Sales_PY", {"PY Sales"}, {"PY Sales"}),
    // 替换空值为0(可选)
    ReplacedNulls = Table.ReplaceValue(Expanded, null, 0, Replacer.ReplaceValue, {"PY Sales"})
in
    ReplacedNulls

内容的提问来源于stack exchange,提问作者Reign of Error

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:53:20