使用列表、记录或表结构化列 (Power Query)

应用对象
Microsoft 365 专属 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

对于结构化列(例如 ListRecordTable),有与该列关联的相关值。 结构化列在列标题中有“ 展开”图标 展开列图标

关于结构化列

有三种类型的结构化列:

  • 列表 存储值列表,例如, { 1, 2, 5, 10 } 或 { “hello”, “hi”, “good bye” }。 单元格中的 List 值是最简单的结构化列,不存在表关系。
  • 记录 存储分组到单元中的一组命名字段。 例如, [ FirstName = “Joe”, LastName = “Smith”, Birthdate = #date (2010, 1, 2) ]。 单元格中的 Record 值指示与当前表或主表的一对一关系。
  • 存储与当前数据(主表)具有次要关系的表。 单元格中的 Table 值指示与当前表或主表的一对多关系。

RecordTable 结构化列表示数据源中具有关系模型的关系,例如 OData 源中具有外键关联的实体或SQL Server数据库中的外键关系。

关于展开表结构化列

可以使用 “展开列”图标图标 查看相关表中的列。 例如,在 Orders 表中,展开操作将 Order_DetailsOrder 表相关的记录汇集在一起,以将订单行项与每个订单合并。 展开操作会扩大主表,以包含辅助表和相关表中的列。 为了说明:

主表包含 列 AB

A 列和 B 列

相关表具有 C 列。

A 列、B 列和相关的 C 列

展开操作会扩大主表以包含 列 C ,并使用 包含 C 列的辅助表和相关表的相关值展开主表。

ABC

总之,展开 结构化列时,值将与其他列一起显示在数据预览版中。 有关组合主表和相关表的详细信息,请参阅 了解如何合并多个数据源。 

展开表结构化列

在此示例中,展开操作扩大 Order 表,以包括 Order_Details.ProductIDOrder_Details.UnitPriceOrder_Details.Quantity 列,以将主表 Order 行和相关表 Order_Details 行合并在一起。

示例结构化表数据

  1. 若要打开查询,请找到以前从Power Query 编辑器加载的查询,在数据中选择一个单元格,然后选择“查询>编辑”。 有关详细信息 ,请参阅在 Excel 中创建、加载或编辑查询

    注意 该查询必须至少有两个表联接在一个关系中。 有关详细信息,请参阅 合并查询。 

  1. 单击结构化列的列标题中的展开图标 (展开 ) 。

  2. 在“ 列名称” 下拉列表中,选择所需的列并清除不需要的列。 

    选择列名称

  3. 选择“确定”。

结果

该表现在包含步骤 3 中选择的每个列的新列。 

展开结构化表列的结果

展开“记录”结构化列

展开 “记录 ”结构化列时,值在数据预览中显示为新列。 如果不将其展开,然后将查询加载到工作表,则列中每个单元格的占位符值为 [Record]。

  1. 若要打开查询,请找到以前从Power Query 编辑器加载的查询,在数据中选择一个单元格,然后选择“查询>编辑”。 有关详细信息 ,请参阅在 Excel 中创建、加载或编辑查询

  2. 若要查看特定值而不展开列,请在具有 Record 值的结构化列中选择一个值。 例如:

    展开“记录复杂”列

  3. 选择结构化列的列标题中的展开图标 (展开 ) 。

  4. 在“ 列名称” 下拉列表中,选择所需的列并清除不需要的列。

    单击结构化记录列的“展开”

  5. 选择“确定”。

结果

该表现在包含步骤 4 中选择的每个列的新列。 

展开结构化记录列的结果

展开列表结构化列

展开列表结构化列时,值在数据预览中显示为新列。 如果不将其展开,然后将查询加载到工作表,则列中每个单元格的占位符值为 [List]。

  1. 若要打开查询,请找到以前从Power Query 编辑器加载的查询,在数据中选择一个单元格,然后选择“查询>编辑”。 有关详细信息 ,请参阅在 Excel 中创建、加载或编辑查询

  2. 若要查看特定值而不展开列,请在具有 List 值的结构化列中选择一个值。 例如:

    展开列表复杂列

  3. 选择结构化列的列标题中的展开图标 (展开 ) 。

  4. 执行下列操作之一:

    • 若要为每个列表值创建一行,请选择“ 展开到新行”。
    • 若要创建由分隔符分隔的文本值列表,请选择“ 提取值”。
  5. 选择“确定”。

展开到新行的结果

按行展开结构化列表列的结果

使用分号 (;) 作为分隔符的提取值的结果

通过使用分隔符提取值来展开结构化列表列的结果

使用结构化列组中的命令

可以在 Power Query 编辑器 功能区上使用以下附加命令来处理结构化列:

  1. 选择“ 开始>转换 ”,然后在“ 结构化列” 组中选择以下命令之一。
    扩大 将列表、记录或表) (结构化列提升为当前查询表中的新列和行。 此命令与“展开”图标相同。

    骨料使用聚合函数(包括 SumCount)汇总结构化列中的值。 此命令与选择“展开”图标,然后在“列名称”下拉对话框中选择“聚合”相同。 它仅适用于 结构化列。

    提取值 使用指定的分隔符将结构化 列表 列的值合并为单个文本值,从而提取这些值。

注意还可以使用“数字列”组中的“统计信息”命令, (使用结构化列选择“转换>统计信息) ”。 它具有与“Power Query 编辑器”功能区中“列表工具”下“转换上下文”选项卡的“数值列表”组中的“统计信息”命令相同的聚合函数列表。

使用“转换上下文”选项卡

可以使用“向下钻取”命令在“Power Query 编辑器”功能区中的“列表工具”下显示“转换上下文”选项卡,并显示用于处理结构化列的其他命令。 不要将此“转换”选项卡与 Power Query 编辑器 功能区中定期提供的其他“转换”选项卡混淆。

  1. 右键单击列标题,然后选择“ 向下钻取”。
  2. 若要将 “列表” 或“ 记录 ”转换为表,请在“ 列表工具”下选择“ 转换为>”。
  3. 若要保留顶部、底部或一系列项,请在 “列表工具”下选择“ 转换>保留项”。
  4. 若要删除顶部、底部或备用项,请在 “列表工具”下选择“ 转换>删除项”。
  5. 若要删除重复值,请在 “列表工具”下选择“ 转换>删除重复项”。 有关详细信息,请参阅 保留或删除重复行
  6. 若要撤消项,请在 “列表工具”下选择“ 转换>反向项”。
  7. 若要对数据进行排序,请在“列表工具”下,选择 Excel 中的“A 到 Z 或从最小数字到最大”的“升序 A”命令,或选择“将 Z 降A”命令,在 Excel 中将 Z 从 A 或从最大数字排序到最小 。 有关详细信息,请参阅 对数据进行排序
  8. 若要显示各种统计信息,请在 “列表工具” 下选择“ 转换>统计信息”。 以下统计信息可用:总和最小值最大值中值平均值Standard偏差计数值计数非重复值。 有关详细信息,请参阅 聚合列中的数据

另请参阅

Microsoft Power Query for Excel 帮助

合并查询

对行进行分组或汇总 (docs.com)