powerbi - 在 Power Bi 中反透视数据并分离整数和字符串
问题描述
以上是我目前的输入。
以下是所需的输出。
目前,我将数据加载到 Power Bi 中,并使用 Power Query 编辑器在“仅选定列”上“取消透视列”。这会产生一列混合数据类型(整数和字符串)。有没有人能够在数据加载时建议一种有效的方法如何分隔字符串值和整数?
以下是高级编辑器的代码
let
Source = Csv.Document(File.Contents("F:\Surveys\dev\pivottest.csv"),[Delimiter=",", Columns=5, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"responseid", Int64.Type}, {"q1", Int64.Type}, {"q2", type text}, {"q3", Int64.Type}, {"q4", type text}}),
#"Unpivoted Only Selected Columns" = Table.Unpivot(#"Changed Type", {"q1", "q2", "q3", "q4"}, "Attribute", "Value")
in
#"Unpivoted Only Selected Columns"
解决方案
取消透视数据后,请在您的值列上使用函数Value.Is 。要检查一个值是否为数字,它看起来像这样:
Value.Is([Column], Int64.Type)
Example,
IsNumber =Value.Is(Value.FromText([ColumnOfMixedValues]), type number)
要检查文本,它将是:
Value.Is([Column],type text)
Example,
IsText =Value.Is(Value.FromText([ColumnOfMixedValues]), type text)
Value.Is 返回布尔值 true/false,因此您可以将其包装在 IF 中。
if Value.Is(AlphaNumeric, type text) then AlphaNumeric else Number.ToText(AlphaNumeric))