使用列表、记录或表结构化列 (Power Query)
使用列表、记录或表结构化列 (Power Query)
在Power Query中处理结构化列(如列表、记录和表)是数据整合和分析的重要步骤。本文将详细介绍这三种结构化列的定义、用途以及如何展开它们以整合数据。同时,还会介绍一些实用的命令和操作技巧,帮助用户更好地理解和使用Power Query。
对于结构化列(例如List、Record或Table),有与该列关联的相关值。 结构化列在列标题
具有“展开”图标。
关于结构化列
有三种类型的结构化列:
列表 存储值列表,例如, { 1, 2, 5, 10 } 或 { “hello”, “hi”, “good bye” }。 单元格中的List值是最简单的结构化列,不存在表关系。
记录 存储分组到单元中的一组命名字段。 例如, [ FirstName = “Joe”, LastName = “Smith”, Birthdate = #date (2010, 1, 2) ]。 单元格中的Record值指示与当前表或主表的一对一关系。
桌子 存储与当前数据(主表)具有次要关系的表。 单元格中的Table值指示与当前表或主表的一对多关系。
Record和Table结构化列表示数据源中具有关系模型的关系,例如在 OData 源中具有外键关联的实体或 SQL Server 数据库中的外键关系。
关于展开表结构化列
可以使用“展开
”图标查看相关表中的列。 例如,在Orders表中,展开操作将Order_Details与Order表相关的记录汇集在一起,以将订单行项与每个订单合并。 展开操作会扩大主表,以包含辅助表和相关表中的列。 为了说明:
主表包含列 A和B。
相关表具有C列。
展开操作会扩大主表以包含列 C,并使用包含 C 列的辅助表和相关表的相关值展开主表。
总之,展开表结构化列时,值将与其他列一起显示在数据预览版中。 有关组合主表和相关表的详细信息,请参阅了解如何合并多个数据源。
展开表结构化列
在此示例中,展开操作扩大Order表,以包括Order_Details.ProductID、Order_Details.UnitPrice和Order_Details.Quantity列,以将主表Order行和相关表Order_Details行合并在一起。
2.
若要打开查询,请找到以前从 Power Query 编辑器加载的查询,在数据中选择一个单元格,然后选择“查询>编辑”。 有关详细信息,请参阅在 Excel 中创建、加载或编辑查询。
注意 该查询必须至少有两个表联接在一个关系中。 有关详细信息,请参阅合并查询。
2.
单击结构化列的列标题中的展开图标 (
) 。
4.
在“列名称”下拉列表中,选择所需的列并清除不需要的列。
6.
选择“确定”。
结果
该表现在包含步骤 3 中选择的每个列的新列。
展开“记录”结构化列
展开“记录”结构化列时,值在数据预览中显示为新列。 如果不将其展开,然后将查询加载到工作表,则列中每个单元格的占位符值为[Record]。
2.
若要打开查询,请找到以前从 Power Query 编辑器加载的查询,在数据中选择一个单元格,然后选择“查询>编辑”。 有关详细信息,请参阅在 Excel 中创建、加载或编辑查询。
4.
若要查看特定值而不展开列,请在具有Record值的结构化列中选择一个值。 例如:
6.
选择结构化列的列标题中的展开图标 (
) 。
8.
在“列名称”下拉列表中,选择所需的列并清除不需要的列。
10.
选择“确定”。
结果
该表现在包含步骤 4 中选择的每个列的新列。
展开列表结构化列
展开列表结构化列时,值在数据预览中显示为新列。 如果不将其展开,然后将查询加载到工作表,则列中每个单元格的占位符值为[List]。
2.
若要打开查询,请找到以前从 Power Query 编辑器加载的查询,在数据中选择一个单元格,然后选择“查询>编辑”。 有关详细信息,请参阅在 Excel 中创建、加载或编辑查询。
4.
若要查看特定值而不展开列,请在具有List值的结构化列中选择一个值。 例如:
6.
选择结构化列的列标题中的展开图标 (
) 。
8.
执行下列操作之一:
若要为每个列表值创建一行,请选择“展开到新行”。
若要创建由分隔符分隔的文本值列表,请选择“提取值”。
10.
选择“确定”。
展开到新行的结果
使用分号 (;) 作为分隔符的提取值的结果
使用结构化列组中的命令
可以使用 Power Query 编辑器功能区上的以下附加命令来处理结构化列:
2.
选择“开始>转换”,然后在“结构化列”组中选择以下命令之一。
扩大 将列表、记录或表) (结构化列提升为当前查询表中的新列和行。 此命令与“展开
”图标相同。
骨料 使用聚合函数(包括Sum和Count)汇总表结构化列中的值。 此命令与选择“展开
”图标,然后在“列名称”下拉对话框中选择“聚合”相同。 它仅适用于表结构化列。
提取值使用指定的分隔符将结构化列表列的值合并为单个文本值,从而提取这些值。
备注 还可以使用“数字列”组中的“统计信息”命令, (选择“转换>统计信息”) 表结构化列。 它具有与 Power Query 编辑器功能区中“列表工具”下“转换上下文”选项卡的“数字列表”组中的“统计信息”命令相同的聚合函数列表。
使用“转换上下文”选项卡
可以使用“向下钻取”命令在 Power Query 编辑器功能区中的“列表工具”下显示“转换上下文”选项卡,并显示用于处理结构化列的其他命令。 不要将此“转换”选项卡与 Power Query 编辑器功能区中定期提供的其他“转换”选项卡混淆。
2.
右键单击列标题,然后选择“向下钻取”。
4.
若要将“列表”或“记录”转换为表,请在“列表工具”下,选择“转换>到表”。
6.
若要保留顶部、底部或一系列项,请在“列表工具”下选择“转换>保留项”。
8.
若要删除顶部、底部或备用项,请在“列表工具”下选择“转换>删除项”。
10.
若要删除重复值,请在“列表工具”下选择“转换>删除重复项”。 有关详细信息,请参阅保留或删除重复行。
12.
若要撤消项,请在“列表工具”下,选择“转换>反向项”。
14.
若要对数据进行排序,请在“列表工具”下,选择“升序
排序”或“
降序排序”。 有关详细信息,请参阅对数据进行排序。
16.
若要显示各种统计信息,请在“列表工具”下选择“转换>统计信息”。 以下统计信息可用:总和、最小值、最大值、中值、平均值、标准、偏差、计数值和计数非重复值。 有关详细信息,请参阅聚合列中的数据。
另请参阅
Microsoft Power Query for Excel 帮助
合并查询
对行进行分组或汇总 (docs.com)