如何通过引用列位置而不是列名对 Power Query 编辑器中的列重新排序

How to reorder columns in Power Query editor by referring to column position instead of column name

我有一个 SQL 查询作为数据源,它将 table 拉入 Power Query。此 table 中的列有过去 12 个月的月份标题。因此,每个月数据刷新时,列名都会变化一个月。总的列数还是一样。

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

这是我的 'reordered columns' 代码目前的样子:

#"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"})

我不想在重新排序时指定列名,因为每个月,最后一个月会减少,新的月份会被添加。

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)
            )
    )

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