データソースとしてのExcelテーブルにエラー値(#NA、#DIV/0)が含まれている可能性があります。これにより、 Power Query の変換プロセス中のいくつかのステップが妨げられる可能性があります。
次の手順によっては、出力が表示されずにエラーが発生する場合があります。では、このケースをどのように処理するのでしょうか?
それらをキャッチするためのPowerQueryの2つの標準的な手順を見つけました。
最初の可能性は私にとって解決策ではありません。行を保持し、エラー値を置き換えるだけだからです。
私の場合、データテーブルは時間の経過とともに変化します。つまり、列名が変更されるか(年など)、新しい列が表示されます。したがって、スクリプトを毎回変更したくないので、2番目の可能性は静的すぎます。
そのため、列名(および列数)に関係なく、すべての列を動的にクリーンアップする方法を試してみました。エラーをnull値に置き換えます。
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
ソースに2つの新しい列(エラーあり)を追加した後の、さまざまな3つのクエリメッセージを次に示します。
この種のデータクリーニングを行うための別の解決策がある場合は、ここに投稿を書き込んでください。
let
src = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
cols = Table.ColumnNames(src),
replace = Table.ReplaceErrorValues(src, List.Transform(cols, each {_, "!"}))
in
replace