1

我有一个包含 500 多行的表 1,这些行在一个月内通过请求多次更新。并且有一个不同公式(200+)的更新表,应该使用表 1 中的值进行计算。

表格1

产品 价值
1993 苹果 98.45
1994 蘑菇 67.54
1992 苹果 95.45
2021 112.0

表 2

ID 公式
1 1994/1993*100-100
2 1994-1993
3 2021/1992*100-100

ETC...

我的方式:

  1. 在 table_1 我创建了一个关键列 - 年份。
  2. 我修改了公式(下图 - 一张图片):

表_2

table_2 的代码:

   let
        src = Excel.CurrentWorkbook(){[Name="table_2"]}[Content],
        pq_auto1 = Table.PromoteHeaders(src, [PromoteAllScalars=true]),
        pq_auto2 = Table.TransformColumnTypes(pq_auto1,{{"Id", Int64.Type}, {"formula", type text}}),
        result = Table.AddColumn(pq_auto2,"value",each Expression.Evaluate([modified_formula],#shared))
   in
        result

你能建议我找到一种更好的方法来按每一行进行计算吗?

4

1 回答 1

1

不可能像使用 Excel 公式那样做到这一点,但是BI Accountant通过将列移动一行来展示优雅的解决方案:

在此处输入图像描述

let
     Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content]
    ,ShiftedList = {null} & List.RemoveLastN(Table.Column(Source, "ColumnToBeShifted"), 1)
    ,NewShiftedColumn = Table.FromColumns(Table.ToColumns(Source) & {ShiftedList}, Table.ColumnNames(Source) & {"NewColumnName"})
in
    NewShiftedColumn

有了这个,你的计算应该很容易。

于 2021-02-08T19:02:49.883 回答