【问题标题】:Excel Power Query truncating text field to 1024 charactersExcel Power Query 将文本字段截断为 1024 个字符
【发布时间】:2022-10-07 18:24:41
【问题描述】:

我正在通过 Excel 中的 Power Query 访问 SSAS DMV:

let
    Source = AnalysisServices.Database(TabularServerName, TabularDBName, 
             [Query=\"select * from $SYSTEM.TMSCHEMA_EXPRESSIONS\"])
in
    Source

这在 Power BI 中效果很好,但在 Excel 中,表达式列被限制为最多 1024 个字符。如何让 Excel 中的 Power Query 为我提供全部价值?我的最大值约为 15000 个字符,因此仍在我可以找到的 Power Query 规定的限制范围内。

如果我设置一个表,后面有一个连接和查询,Excel 可以拉入整个 Expression 列,但缺点是服务器和数据库无法参数化,必须在连接中手动更改。另外我不记得如何手动执行此操作,因此我总是必须从 DAX Studio 访问 DMV 并导出到 Excel 进行设置!

更新

我对这个专栏做了一些重大的转变。我解析了一个值,我用它来合并文件本身并添加一个列,然后我做了一堆转换,然后用它来替换原始问题列中的文本。而其中的一些东西拉动了整个价值。我试着只做这件事的一小部分,比如添加一个引用问题列的列,或者在问题列中进行替换,但都没有奏效。

所以,不,不容易复制或找出修复它的步骤,但为了我的目的,我现在有了我需要的东西。

  • 如果长文本字段来自 Excel 单元格,似乎没有问题。您如何验证是否存在问题? (显然,我无法从您的服务器中提取任何内容)。
  • 谢谢你。我通过使用 =LEN(@[Expression]) 添加一列进行检查。没有什么超过 1024。我在这个专栏上做了一些转换,其中一个导致 Excel 提取了整个结果。我目前没有时间弄清楚是哪一个修复了它,但我已经开始跑步了!
  • 很高兴你让它工作。如果您找出问题的根源,可以将其发布为答案。
  • 我通过连接来自列表的多行文本遇到了这个问题。结果值在 1024 个字符处被截断。

标签: excel powerquery ssas-tabular dmv


【解决方案1】:

我今天不得不更改此查询,更改后,值再次被截断。我添加了一个替换值在截断列上的查询末尾步骤,这似乎解决了它。

    #"Replaced Value" = Table.ReplaceValue(#"Last Step","in  ","in  ",Replacer.ReplaceText,{"Truncated Column Name"})
in
    #"Replaced Value"

【讨论】:

    【解决方案2】:

    我认为这与您在 Excel 中加载的结肠类型有关。我遇到了同样的问题并阅读了您的答案(使用 Table.ReplaceValue)。 您的解决方案隐藏了初始点:您为 Table.ReplaceValue() 共享的表达式中使用的函数是 Replacer.ReplaceText,它作为将 Any 类型的字段转换为 Text 类型的附加特性。 我试图将在 Excel 中加载时被截断的字段类型从任何类型更改为文本类型。结果:然后将完整的值加载到我的工作表中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 2020-05-26
      • 1970-01-01
      相关资源
      最近更新 更多