PowerBI:同时将类型更改为多列

时间:2018-08-29 14:53:53

标签: powerbi powerquery m columnname

我正在Power BI的Power Query Editor中工作。 我有一个名为Source的表,其中各列具有以下顺序:

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

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

Image 我想将列类型从“ 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.函数,但是似乎都不起作用。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

借助Table.ColumnNames功能,您处在正确的轨道上。

尝试一下:

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

List.RemoveFirstN函数从列名称列表中删除前N = 2列,然后将其余各列更改为type number