【问题标题】:How to reorder columns in Power Query editor by referring to column position instead of column name如何通过引用列位置而不是列名来重新排序 Power Query 编辑器中的列
【发布时间】:2020-07-10 15:05:19
【问题描述】:

我有一个 SQL 查询作为数据源,它将一个表拉入 Power Query。此表中的列具有过去 12 个月的月份标题。因此,每个月数据刷新时,列名变化一个月。总列数仍然相同。

我对 Power Query 语言还很陌生,所以我不确定如何通过引用列的位置而不是现在的名称来重新排序列

这是我的“重新排序的列”代码当前的样子:

#"Reordered Columns" = Table.ReorderColumns(Source,{"Cat", "Type", "Function", "Organisation", "Locality", "SubOrganisation", "2018-08", "2018-09", "2018-10", "2018-11", "2018-12", "2019-01", "2019-02", "2019-03", "2019-04", "2019-05", "2019-06", "2019-07"})

我不想在每个月重新排序时指定列名,最后一个月会掉下来并添加新的月份。

【问题讨论】:

  • 您希望列到底如何排序?
  • 我只需要将“功能”和“组织”列放在前面,但由于指定了日期列,我必须每个月手动更改。

标签: sql-server powerbi powerquery powerbi-desktop


【解决方案1】:
Table.ReorderColumns
    (Source,
        {"Cat", "Type", "Function", "Organisation", "Locality", "SubOrganisation"} //List of static columns in order we want
        & //Lists can be appended with this
        List.RemoveItems( //Function that removes a list of items from another list
            Table.ColumnNames(Source) //List of all column names,
            {"Cat", "Type", "Function", "Organisation", "Locality", "SubOrganisation"} //List of static columns (to be removed)
            )
    )

这里发生的事情是,我们首先获取您一直拥有的列列表,并按照您想要的任何顺序设置它们。然后,我们将获取 所有 列名的列表,并从该列表中删除您始终拥有的列名。然后将结果附加到您始终拥有的静态列列表中。这样,无论日期列是什么,它们都将始终附加到订单的末尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多