Powerbi Power查询公式语言-检测列的类型

Powerbi Power查询公式语言-检测列的类型,powerbi,powerquery,Powerbi,Powerquery,在PowerBI中,我从导入的数据生成了一些查询表。所有数据都以“Any”类型输入,我正试图自动检测每列中的数据类型 有些查询会根据即将到来的数据生成带有列的表——在查询运行并设置表之前,我不知道这些列将是什么(数据来自Azure blob)。由于我将有很多表要维护,哪些列可以随任何数据刷新而更改(可能会添加新的列),因此每次都要检查所有这些表并按列上的“检测数据类型”是不可管理的 因此,我试图找出如何在查询公式语言中执行“检测数据类型”以附加到生成表列的查询末尾。我尝试抓取列中的第一个条目并执

在PowerBI中,我从导入的数据生成了一些查询表。所有数据都以“Any”类型输入,我正试图自动检测每列中的数据类型

有些查询会根据即将到来的数据生成带有列的表——在查询运行并设置表之前,我不知道这些列将是什么(数据来自Azure blob)。由于我将有很多表要维护,哪些列可以随任何数据刷新而更改(可能会添加新的列),因此每次都要检查所有这些表并按列上的“检测数据类型”是不可管理的

因此,我试图找出如何在查询公式语言中执行“检测数据类型”以附加到生成表列的查询末尾。我尝试抓取列中的第一个条目并执行Value.Type(列{0}),但是对于包含整数的列来说,这似乎是“文本”。但是,按“检测数据类型”不会正确地将类型标识为“整数”

有人知道如何检测列的条目类型吗


另外,我不太担心一列可能包含不同数据类型的值

这里似乎有多个问题。你的解决方案会很脆弱,有更好的办法。但是让我们首先处理列类型检测。Power Query使用“任意”数据类型作为转到数据类型。您可以编写一个函数,对表中列的行进行采样,执行最佳匹配数据类型检测,然后显式设置列的数据类型。这可能是混乱和棘手的,因为你需要每列做一次。这对于固定模式可能是可行的,但对于动态模式,您将很快遇到一些问题。首先,您需要编写一些疯狂的PQ代码来列出所有列,并在每个列上运行您的函数。这将在第一次工作,但可能会在后续刷新中中断,因为刷新期间不允许更改数据模型。如果您使用的是Power BI Desktop之类的工具,您将能够修复问题。如果将报告发布到Power BI服务,您只会看到刷新错误

动态模式将遇到与我前面提到的相同的数据模型更改问题

您不会遇到问题的替代解决方案是使用直接查询数据源,而不是使用Power Query。如果您将数据加载到Azure SQL或表格模型中,报告层将自动获取更新的字段,因此您不必尝试使用PQ