美文网首页PowerQuery
PowerQuery分组返回所有行之后还原列顺序

PowerQuery分组返回所有行之后还原列顺序

作者: PowerQuery | 来源:发表于2016-05-08 16:00 被阅读385次

前面有提到过,当用PowerQuery分组功能挑选出重复值之后,展开的表格列顺序发生了变化,那么要如何保证展开的列和原始数据的列顺序是一样的呢。这个帖子将对此进行演示。

我们借用传说中的NorthWind数据库来演示(以后都如此,免得我还要去造数据)。

以下是代码,我将操作说明放在注释中(用“//”标记)。

let

//获取表格

源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],

//这一步是PowerQuery自动转换数据格式的操作,非人为添加

更改的类型 = Table.TransformColumnTypes(源,{{"ProductID", Int64.Type}, {"ProductName", type text}, {"SupplierID", Int64.Type}, {"CategoryID", Int64.Type}, {"QuantityPerUnit", type text}, {"UnitPrice", type number}, {"UnitsInStock", Int64.Type}, {"UnitsOnOrder", Int64.Type}, {"ReorderLevel", Int64.Type}, {"Discontinued", type logical}}),

//关键步骤:通过分组来获取重复值——凡是计数结果大于1的都是重复值

标记重复值 = Table.Group(更改的类型, {"SupplierID"}, {{"计数", each Table.RowCount(_), type number}, {"列", each _, type table}}),

//通过筛选功能,只保留重复值

筛选重复值 = Table.SelectRows(标记重复值, each ([计数] <> 1)),

//因为我们要按照原始表格的列顺序来展开分组操作生成的表格,因此把分组操作生成的“SupplierID”列删除

删除的列 = Table.RemoveColumns(筛选重复值,{"SupplierID"}),

//关键步骤:通过Table.ColumnNames()来获取原始表格的列名称,这将产生一个list,并且严格按照原始顺序排列所有列,其结果作为展开表格的输入

还原列顺序= Table.ExpandTableColumn(删除的列, "列", Table.ColumnNames(源), Table.ColumnNames(源))

in

还原列顺序

相关文章

  • PowerQuery分组返回所有行之后还原列顺序

    前面有提到过,当用PowerQuery分组功能挑选出重复值之后,展开的表格列顺序发生了变化,那么要如何保证展开的列...

  • PowerQuery不足之一——展开表格后列顺序发生改变

    在这个帖子我有提到PowerQuery展开分组生成的表格后,列顺序会发生变化;并在这个帖子给出了解决办法。 事实上...

  • Swift刷算法:螺旋矩阵

    给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。LeetCode:...

  • 54. 螺旋矩阵

    给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。输入:matrix...

  • Day32 螺旋矩阵

    给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素 https://l...

  • 螺旋矩阵

    题目信息 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 ...

  • IOS 算法(中级篇) ----- 螺旋矩阵

    给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 例子: 输入:m...

  • leetcode题目54. 螺旋矩阵

    题目描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 代码

  • 算法:螺旋矩阵 I

    问题 给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素。 样例 ...

  • 374. 螺旋矩阵

    描述 给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素。 样例 ...

网友评论

  • 小提拉:大神 完全看不懂 求请教
    小提拉:有点疑惑 没理解
    小提拉:具体怎么提取 没看懂代码
    PowerQuery:其实就是后面的展开列步骤会导致原始列名排序混乱,这时返回去在有正确顺序的列名的那一步提取列名。
  • 阿森纳里:因为在展开的时候,程序默认获取nested table的ColumnNames这个list,并以ascii码顺序排序,写入m function代码中,所以就成那样了
    PowerQuery:@阿森纳97 受教了。

本文标题:PowerQuery分组返回所有行之后还原列顺序

本文链接:https://www.haomeiwen.com/subject/ngmsrttx.html