【问题标题】:PowerBI: Change type to multiple columns at the same timePowerBI:同时将类型更改为多列
【发布时间】:2018-08-29 14:53:52
【问题描述】:

我正在使用 Power BI 中的 Power Query 编辑器。 我有一个名为Source 的表,其中列的顺序如下:

| Country | Attribute | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 |

您可以在下图中看到表格:

我想将列类型更改为从“2014”到“2021”的每一列。 我知道可以使用以下命令分别表示每一列:

= Table.TransformColumnTypes(
    Source,
    {{"2014", type number}, {"2015", type number}, {"2016", type number}, {"2017", type number}, {"2018", type number}, {"2019", type number}, {"2020", type number}, {"2021", type number}}
  )

但我想设置一个以自动方式执行此操作的命令。我正在尝试做类似的事情:

= Table.TransformColumnTypes(
    Source,
    each( {List.Range(Table.ColumnNames(Source), 2, List.Count(Table.ColumnNames(Source)) as number),
    type number} )
  )

所以我试图为“每个”值重复命令 Table.TransformColumnTypes

List.Range(Table.ColumnNames(Source), 2, List.Count(Table.ColumnNames(Source)) as number)

基本上选择从第三列到最后一列范围内的每个列标题名称。

我尝试以多种方式写下来,也使用$(...).each(function(...)) 或使用其他list. 函数,但它们似乎都不起作用。

我能做什么?

【问题讨论】:

    标签: powerbi powerquery m columnname


    【解决方案1】:

    Table.ColumnNames 函数让您走在正确的轨道上。

    试试这个:

    = Table.TransformColumnTypes(
          Source,
          List.Transform(
              List.RemoveFirstN(
                  Table.ColumnNames(Source),
                  2
              ),
          each {_, type number}
          )
      )
    

    List.RemoveFirstN 函数从您的列名列表中删除第一个 N = 2 列,然后将剩余的每一列更改为 type number

    【讨论】:

    • 哇,这行得通。那么每个命令都与下划线 _ 一起使用以指示元素?无论如何,非常感谢
    • 是的,下划线代表each适用的元素。
    • 用这个技巧拯救我的一天!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 2019-01-02
    • 2014-12-22
    • 2021-11-30
    • 1970-01-01
    相关资源
    最近更新 更多