在导入数据后replace所有列的所有错误值(同时保留行)

作为数据源的Excel表可能包含错误值(#NA,#DIV / 0),这可能会影响Power Query中转换过程中的某些步骤。
根据以下步骤,我们可能得不到输出,但是有错误。 那么如何处理这种情况呢?

我在Power Query中find了两个标准步骤来捕捉它们:

  • 删除错误 (用户界面:主页/删除行/删除错误) – >所有有错误的行将被删除
  • replace错误值 (UI:转换/replace错误) – >首先select列来执行此操作。

第一种可能性对我来说不是一个解决scheme,因为我想保留行,只是replace错误值。

在我的情况下,我的数据表将随时间而改变,意味着列名可能会改变(例如年)或出现新的列。 所以第二种可能性太静态了,因为我不想每次都改变脚本。

所以我试图得到一个dynamic的方式来清理所有的列,独立于列名(和列数)。 它用空值replace错误。

let Source = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content], //Remove errors of all columns of the data source. ColumnName doesn't play any role Cols = Table.ColumnNames(Source), ColumnListWithParameter = Table.FromColumns({Cols, List.Repeat({""}, List.Count(Cols))}, {"ColName" as text, "ErrorHandling" as text}), ParameterList = Table.ToRows(ColumnListWithParameter ), ReplaceErrorSource = Table.ReplaceErrorValues(Source, ParameterList) in ReplaceErrorSource 

这里有三个不同的查询消息,在向源添加两个新列(带有错误)之后:

如果有人有另一种解决scheme来做这种数据清理,请在这里写你的文章。

 let src = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content], cols = Table.ColumnNames(src), replace = Table.ReplaceErrorValues(src, List.Transform(cols, each {_, "!"})) in replace