【问题标题】:Power BI/query text column is shown as a tablePower BI/查询文本列显示为表格
【发布时间】:2019-02-21 21:18:21
【问题描述】:

我正在将数据从 XML 文件导入 Power BI 桌面。如果字段值为空,例如, <Address></Address> 然后 PBI 将该列类型分配为“表格”,并且无法将类型更改为文本。我收到一个错误:

Expression.Error:我们无法将 Table 类型的值转换为 Text 类型。 细节: 值=表 类型=类型

看起来如果第一个遇到的值是空的,那么在同一个“页面”中该列的所有后续行(数据正在被数据连接器以块的形式读取,也就是“页面”)获取分配类型“表” ,尽管并非总是如此。 对于某些列,甚至无法更改列数据类型(它们有“表格”图标)

关于如何将列类型更改为文本的任何想法?

Edit1:我注意到单击“表格”实际上显示该列中有一个文本值。也许 Power BI 有一些不可见的设置来克服这个空白字符串值问题? Edit2:看起来我遇到了与此处https://community.powerbi.com/t5/Desktop/XML-Import-Table-Type-in-Column/td-p/97512 中描述的相同的问题。这个简单的问题有没有解决方案? 我找到了这个https://community.powerbi.com/t5/Issues/Power-Query-should-not-wrap-simple-xml-elements-in-a-table/idi-p/125525。它看起来是“设计使然”并且不存在解决方案。浪费时间真是可惜……

我找到了别人的解决方案:

shared ConvertTableField=(aTable as table, fieldName as text)=> let //alternative: https://community.powerbi.com/t5/Desktop/Expand-value-from-table/td-p/214838 //#"Expanded g_v" = Table.TransformColumns(#"Expanded ts_info", {{"g_v", each if _ is table then Table.FirstValue(_, "") else _}}) #"Lists from table" = Table.TransformColumns(aTable,{{fieldName, each if _ is table then Table.ToList(_) else {_}}}), #"Expanded List" = Table.ExpandListColumn(#"Lists from table", fieldName) in #"Expanded List";

我还没有弄清楚如何为表的所有列运行这个函数。 M语言是我或多或少了解的编程语言中最难的...

【问题讨论】:

    标签: powerbi powerbi-desktop


    【解决方案1】:

    我不确定 XML 的使用,但就表格类型到文本的转换而言 - 这对我有用。也许是矫枉过正。

    let Source = (Table1 as table) =>
    
    let
    
    Section = Record.ToTable(#sections[Section1]),
    
    Compare = Table.SelectRows(Section, each [Value] = Table1){0},
    
    GetName = Record.Field(Compare,"Name")
    
    in GetName 
    
    in Source
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      • 2023-02-06
      • 1970-01-01
      • 2020-05-01
      • 2021-02-12
      • 1970-01-01
      相关资源
      最近更新 更多