excel - 并排的梳理表
解决方案
这是处理示例表的一种方法。我从一个名为 Sheet1 的 Excel 工作表开始,如下所示:
然后,在另一个工作簿中,我使用此 M 代码创建了一个 Power Query 查询:
let
Source = Excel.Workbook(File.Contents("MyPath\MyFile.xlsx"), null, true),
Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
#"Transposed Table" = Table.Transpose(Sheet1_Sheet),
#"Removed Blank Rows" = Table.SelectRows(#"Transposed Table", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Split Table by 3 Nested" = Table.Split(#"Removed Blank Rows",3),
#"Inserted Row Nested" = List.Transform(#"Split Table by 3 Nested", each Table.InsertRows(_, Table.RowCount(_),{Record.FromList(List.Repeat({null},Table.ColumnCount(_)),Table.ColumnNames(_))})),
#"Filled Category Down Nested" = List.Transform(#"Inserted Row Nested", each Table.FillDown(_,{"Column1"})),
#"Transposed Tables Nested" = List.Transform(#"Filled Category Down Nested", each Table.Transpose(_)),
#"Removed Blank Rows Nested" = List.Transform(#"Transposed Tables Nested", each Table.SelectRows(_, each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null})))),
#"Filled Category Down Nested2" = List.Transform(#"Removed Blank Rows Nested", each Table.FillDown(_,{"Column4"})),
#"Removed First LIne Nested" = List.Transform(#"Filled Category Down Nested2", each Table.Skip(_,1)),
#"Promoted First Line Nested" = List.Transform(#"Removed First LIne Nested", each Table.PromoteHeaders(_, [PromoteAllScalars=true])),
#"Renamed Category Column Nested" = List.Transform(#"Promoted First Line Nested", each Table.RenameColumns(_,{{Table.ColumnNames(_){3}, "Category"}})),
#"Combined Nested Tables" = Table.Combine(#"Renamed Category Column Nested"),
#"Reordered Columns" = Table.ReorderColumns(#"Combined Nested Tables",{"Category", "Header 1", "Header 2", "Header 3"})
in
#"Reordered Columns"
要得到这个结果:
大多数变革性工作是通过 List.Transform 在嵌套表中完成的。
推荐阅读
- c# - 使用 MathNet 库沿三次样条插值
- laravel - Laravel 和 MongoDB 登录连接错误“找不到合适的服务器”(在本地服务器上中断,在产品上工作)
- io - 可以在控制台输入上 deno emmit 事件吗?
- windows - 使用未解析的变量或脚本参数创建脚本(如“%~dp0”)
- vue.js - 如何在 vue 模板中使用异步功能?
- r - 在 geom_text() 的分组文本中插入返回
- html - HTML - 一个溢出的、相对定位的子元素在它的父元素中创建了额外的空间
- python - 如何从 Kivy 的 ScreenManager 访问 id 并通过主应用程序类处理它们?
- php - 无法在非身份验证应用程序中显示会话变量
- typescript - 类型“Type[T]”上不存在属性“key”