PowerQuery:如何获取列类型?

问题描述 投票:0回答:3

如何获取Table中指定ColumnName的类型?

示例:如何获取第

type text
列的
FirstName

表代码:

= Table.FromRows(
        {
            {1, "Bob", "Smith", "123-4567"},
            {2, "Jim", "Brown", "987-6543"},
            {3, "Paul", "Wick", "543-7890"}
        },
        {"CustomerID", "FirstName", "LastName", "Phone"}    
    )

附注解决方案作为功能强烈赞赏! :)

相关主题:

  1. PowerQuery:如何获取列类型?
  2. Powerquery:如何将类型类型转换/转换为类型文本?
  3. PowerQuery:类型定义、Table.Scema字段之间的区别 [类型名称] 和 [种类]
function types powerbi metadata powerquery
3个回答
1
投票

请尝试此功能

sfnClmType
下载):

(TableName as table, ColumnName as text)    => 
let valTypeTxt = Table.SelectRows(Table.Schema(TableName), each [Name] = ColumnName){0}[Kind]
in  Expression.Evaluate("type "& valTypeTxt)

相关主题:

  1. 如何将类型转换/转换为类型文本

1
投票

使用 Type.TableColumnValue.Type 函数的组合:

Type.TableColumn(Value.Type(TableName),ColumnName)

0
投票

这是我如何为传入的表获取

table type

GetTableType = (tbl as table) as type =>
let
    colNames = Table.ColumnNames(tbl),
    colTypes = List.Transform(
        colNames,
        (x) => [Type=Value.Type(Table.Column(tbl, x)), Optional=false]
    )
in
    type table Type.ForRecord(
        Record.FromList(
            colTypes,
            colNames
        ),
        false
    )

然后您可以使用它来简化行分组。

Table.Group(
    Source,
    listOfCols,
    {{"Rows", each _, GetTableType(Source)}}
)
© www.soinside.com 2019 - 2024. All rights reserved.