作为数据源的Excel表可能包含错误值(#NA,#DIV/0),这可能会影响Power Query中转换过程中的某些步骤.
根据以下步骤,我们可能没有输出但是错误.那么如何处理这种情况呢?
我在Power Query中发现了两个标准步骤来捕获它们:
第一种可能性对我来说不是解决方案,因为我想保留行并只是替换错误值.
在我的情况下,我的数据表将随时间变化,意味着列名称可能会更改(例如年),或者出现新列.所以第二种可能性太静态了,因为我不想每次都改变脚本.
所以我试图通过动态方式清除所有列,独立于列名(和列数).它用空值替换错误.
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
Run Code Online (Sandbox Code Playgroud)
在我向源添加了两个新列(有错误)之后,这里有三个不同的查询消息:
如果有人有其他解决方案来进行此类数据清理,请在此处写下您的帖子.
Ser*_*sev 10
let
src = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
cols = Table.ColumnNames(src),
replace = Table.ReplaceErrorValues(src, List.Transform(cols, each {_, "!"}))
in
replace
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7033 次 |
最近记录: |