PowerQueryの「カスタム列の追加」でIF文を活用し、一つ上のレコードと違う値のときに印をつける事例です。指定した列で上のセルと同じ値なら空白で、違う値のときにアスタリスク(*)のマークをつけます。
内容:
アウトプットイメージ
下図左側の表を「カスタム」列を追加した右側の表に変換します。
「カスタム」列は、「名称」列において一つ上のセルと違う値のとき、アスタリスクを表示します。上のセルと同じ場合は空白にします。
【Excel】上のセルと違う値のときに印をつける数式例 で紹介した事例をPowerQueryで実現する方法です。なお、Excelの数式の方が容易です。PowerQueryによる方法は、作業の繰り返しの頻度が多いなど、必要性があるときに使用がよさそうです。
実施方法
基本の考え方
PowerQueryで、一つ上のセルの値を参照する基本は次のとおりです。
一つ上のセルの値を参照する方法が不明な場合は、まず以下をご覧ください。
この事例では、この基本をもとに、IF文と、エラー処理でtry式を利用します。
設定例
PowerQueryエディターで、印をつける部分の数式は次のとおりです。
= Table.AddColumn(変換前, "カスタム", each try if 変換前[名称]{[インデックス]-1} = 変換前[名称]{[インデックス]} then "" else "*" otherwise "*")
※ 赤字部分は、カスタム列の式に入力する箇所です。
try式の補足説明
上記事例で、try式をしない場合、1行目のレコードは、一つ前のレコードが存在しないためにエラー表示となります。
そのため、try式でエラーの場合の処理を記載しています。
以上、PowerQueryで一つ上のレコードと違う値のときに印をつける事例でした。