PowerQuery技术问询:如何获取表格指定列的数据类型?
在PowerQuery中获取指定列的数据类型(函数式解决方案)
自定义函数实现
你可以通过以下自定义函数,传入目标表格和列名,直接获取对应列的数据类型:
// 获取指定列的数据类型 GetColumnType = (inputTable as table, columnName as text) as type => let ColumnsList = Table.ColumnNames(inputTable), IsColumnValid = List.Contains(ColumnsList, columnName), ColumnType = if IsColumnValid then Value.Type(Table.Column(inputTable, columnName)) else error "指定列名不存在于表格中" in ColumnType
结合示例表格的用法
以你提供的示例表格为例,调用函数的完整代码如下:
// 示例表格定义 SampleTable = Table.FromRows( { {1, "Bob", "Smith", "123-4567"}, {2, "Jim", "Brown", "987-6543"}, {3, "Paul", "Wick", "543-7890"} }, {"CustomerID", "FirstName", "LastName", "Phone"} ), // 调用函数获取FirstName列的数据类型 TargetColumnType = GetColumnType(SampleTable, "FirstName")
运行上述代码后,TargetColumnType 的返回值为 type text,完全匹配你的需求。
函数逻辑说明
- 先提取表格的所有列名,检查目标列名是否存在,避免无效输入导致的异常
- 若列名有效,通过
Table.Column获取整列数据,再用Value.Type提取该列的统一数据类型 - 若列名无效,返回明确的错误提示信息
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

