【问题标题】:Expression.Error: The column 'Amount' of the table wasn't foundExpression.Error:找不到表的“金额”列
【发布时间】:2019-09-23 23:58:04
【问题描述】:

我知道有关于此错误的主题,但我已经查看了它们,但它们并没有帮助。我正在尝试添加一个具有“金额”列绝对值的自定义列。

第 1 步:

第 2 步(导致错误):

根据其他线程,这似乎是一个错字,但是,这里的情况似乎并非如此。此外,我有 4 个这样的 Excel 文件,我正在使用相同的步骤导入 - 2 个有效,2 个无效。

非常感谢任何想法。

编辑: 这是高级编辑器的完整代码

let
Source = SharePoint.Files("https://netorgftxxxxxx.sharepoint.com/", [ApiVersion = 15]),
#"Filtered Rows" = Table.SelectRows(Source, each Text.Contains([Folder Path], "FName LName")),
#"Filtered Rows5" = Table.SelectRows(#"Filtered Rows", each ([Name] <> "2019-07-29T08_13_08+00_00Customer_List.xlsx" and [Name] <> "2019-07-29T08_13_08+00_00Invoice_Listing_TTM.xlsx" and [Name] <> "2019-07-29T08_13_08+00_00Revenue_by_Customer_for_Dashboard.xlsx")),
#"Filtered Rows2" = Table.SelectRows(#"Filtered Rows5", each Text.Contains([Name], "Company")),
#"Changed Type" = Table.TransformColumnTypes(#"Filtered Rows2",{{"Date modified", type date}}),
#"Filtered Rows1" = Table.SelectRows(#"Changed Type", let latest = List.Max(#"Changed Type"[Date modified]) in each [Date modified] = latest),
#"Filtered Rows3" = Table.SelectRows(#"Filtered Rows1", each Text.Contains([Name], "Expense")),
#"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows3",{"Content"}),
Content = #"Removed Other Columns"{0}[Content],
#"Imported Excel" = Excel.Workbook(Content),
#"Removed Other Columns1" = Table.SelectColumns(#"Imported Excel",{"Data"}),
Data = #"Removed Other Columns1"{0}[Data],
#"Removed Columns" = Table.RemoveColumns(Data,{"Column1"}),
#"Removed Top Rows" = Table.Skip(#"Removed Columns",4),
#"Promoted Headers" = Table.PromoteHeaders(#"Removed Top Rows", [PromoteAllScalars=true]),
#"Added Custom" = Table.AddColumn(#"Promoted Headers", "Custom", each "Company"),
#"Filtered Rows4" = Table.SelectRows(#"Added Custom", each ([Transaction Type] = "Bill" or [Transaction Type] = "Expense")),
#"Changed Type1" = Table.TransformColumnTypes(#"Filtered Rows4",{{"Amount", type number}}),
#"Added Custom1" = Table.AddColumn(#"Changed Type1", "Adjusted Expense Amount", each Number.Abs([Amount]))
in
    #"Added Custom1"

【问题讨论】:

  • 查看列中是否有特殊字符。您可以应用答案中给出的“如果解决方案”,看看它是否返回任何 null 然后在源列中查找原始值以找到罪魁祸首。
  • 请从高级编辑器发布完整代码
  • 谢谢 - 我粘贴了完整的代码。

标签: powerbi powerquery


【解决方案1】:

我猜你的Amount 列中有值,当你使用Abs() 函数时会抛出错误。当您的列中有文本时,可能会发生这种情况,因为 Abs() functino 需要数字类型格式。

要么先清理 Amount 列(这样你就只有数字格式),要么在 M 表达式中添加一个额外的检查。

例如:

= if Value.Is(Value.FromText([Column1]), type number) 
  then Number.Abs(Number.From([Column1])) 
  else null

【讨论】:

  • 第 1 步显示了在第 2 步中添加 Abs() 时将任何文本类型转换为数字,但如果任何文本需要转换绝对数字,您的解决方案将适用于源列。
  • 是的,如果他的列中有文本类型,则在应用第 1 步后会出现错误。
【解决方案2】:

应该是以下情况之一:

  1. 金额列名称中的错字。
  2. (更有可能)您指的是错误的步骤。 #“Changed Type1”步骤上的表格不包含金额列。

【讨论】:

  • 谢谢。我在上面添加了完整的代码,但我似乎找不到任何一种情况存在的地方。 #2 也是我的第一个想法。
【解决方案3】:

事实证明,问题在于代码的第 8 行不够具体。正在导入两种类型的文件,导致错误。感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 2020-05-22
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多