【エクセル パワークエリ】テーブル内全ての列を対象に値の置換を実行する方法 【Excel Power Query】
動画による解説
やりたいこと
パワークエリの「値の置換」で、テーブル内の全ての列を対象にして一括置換したい。
本文
EXCELのパワークエリには列を対象として値を置換する「値の置換」という機能があります。
ワークシート上の置換では、特に列や行といった特定の範囲を選択しなければ、アクティブなシート上の全てのセルを対象にして値が置換されます。
ところが、Power Queryエディター上に存在する「値の置換」機能は、
必ず特定の列を対象として置換を実行する仕様となっています。
下の画像は「2020/4/2」の列に存在する「null」を数値の「0」に置換した場合。
このテーブルの列は横に日付が展開されていて、「2020/4/1」~「2020/4/30」まであります。
さっき置換した「2020/4/2」列以外にも「null」データが存在するので、このテーブルに存在する「null」を全て「0」に置換したい場合はどうすればいいのでしょうか?
「テーブルの全列を選択してから値の置換を使えばいい」
というわけで、実際にやってみます。
全部の列を選択して。。。
値の置換で「null」を「0」にする。
やった!
全部の「null」が「0」に置換されました!終了!
とはなりません。
「値の置換」で作られた数式を数式バーで見てみます。
確かに、全ての列に対して確かに置換してはいますが、
その中身は「2020/4/1」~「2020/4/30」のそれぞれの列すべてを名指しで置換する、というものでした。
この先ずっと2020年4月の表しかこのクエリに取り込まないのであれば、これでも構いませんが、普通に考えれば来月は2020年5月の表を取り込みますし、再来月は2020年6月の表を取り込むはずです。
そんな時このクエリを実行しても、5月や6月の列なんか一切置換してくれません。
というか、もし2020年5月の表を取り込んで、このクエリを実行すると、パワークエリから「2020/4/1なんて列ない」といった内容のエラーが吐き出されて、クエリが停止します。
Power Query上でテーブルのすべての列を選択してからの値の置換は、実務上は全く使えない事がわかりました。
では、これを解決するにはどうすればよいのでしょうか?
実は、値の置換を実行するステップの数式バーを少し修正するだけで解決できます。
よければサポートしていただけると嬉しいです😀 有用な記事や動画を制作していけるように頑張ります❗️