shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Query】上のセルと違う値のときに印をつける事例

PowerQueryの「カスタム列の追加」でIF文を活用し、一つ上のレコードと違う値のときに印をつける事例です。指定した列で上のセルと同じ値なら空白で、違う値のときにアスタリスク(*)のマークをつけます。

内容:

アウトプットイメージ

下図左側の表を「カスタム」列を追加した右側の表に変換します。

「カスタム」列は、「名称」列において一つ上のセルと違う値のとき、アスタリスクを表示します。上のセルと同じ場合は空白にします。

【Excel】上のセルと違う値のときに印をつける数式例 で紹介した事例をPowerQueryで実現する方法です。なお、Excelの数式の方が容易です。PowerQueryによる方法は、作業の繰り返しの頻度が多いなど、必要性があるときに使用がよさそうです。

PowerQueryで、上のセルと違う値のときに印をつける

アウトプットイメージ

実施方法

基本の考え方

PowerQueryで、一つ上のセルの値を参照する基本は次のとおりです。
一つ上のセルの値を参照する方法が不明な場合は、まず以下をご覧ください

shikumika.org

この事例では、この基本をもとに、IF文と、エラー処理でtry式を利用します。

設定例

PowerQueryエディターで、印をつける部分の数式は次のとおりです。

= Table.AddColumn(変換前, "カスタム", each try if 変換前[名称]{[インデックス]-1} = 変換前[名称]{[インデックス]} then "" else "*" otherwise "*")

※ 赤字部分は、カスタム列の式に入力する箇所です。

try式と、if文を組み合わせた数式です

PowerQueryエディターの設定画面

try式の補足説明

上記事例で、try式をしない場合、1行目のレコードは、一つ前のレコードが存在しないためにエラー表示となります。

そのため、try式でエラーの場合の処理を記載しています。

learn.microsoft.com

以上、PowerQueryで一つ上のレコードと違う値のときに印をつける事例でした。