使用Table.ColumnsOfType提取Record类型列返回空列表及转换报错求助
解决方法
1. 匹配可空Record类型
如果列中存在null值,type record会无法匹配,改成匹配可空类型即可:
= Table.ColumnsOfType(#"Expanded fields", {type nullable record})
2. 确认列的真实类型
用Table.Schema查看列的实际类型,避免被显示类型误导:
= Table.Schema(#"Expanded fields")
查看结果里的「TypeName」列,找到对应列的准确类型,再调整Table.ColumnsOfType的参数。
3. 排查混合类型问题
如果列里同时存在多种类型(比如部分null、部分record),用以下公式列出该列的所有类型:
= List.Distinct(List.Transform(#"Expanded fields"[目标列名], Value.Type))
如果返回多个类型,先清理异常数据(比如过滤非record行),再尝试提取列名。
4. 处理类型转换报错
针对Table.TransformColumnTypes的报错,先筛选出非record的行排查问题:
= Table.SelectRows(#"Expanded fields", each Value.Type([目标列名]) <> type record and Value.Type([目标列名]) <> type nullable record)
清理完异常数据后,再重新尝试类型转换或提取列名。
内容的提问来源于stack exchange,提问作者Jack_Johnson
相关产品推荐
相关产品推荐

