会計システムに連携させるための仕訳データを作成するときに、伝票区切を求められるケースはありませんか?
例えば勘定奉行だと1列目に、伝票開始行には区切記号「*」を入れるってやつです。
サンプルはこちら。左のデータテーブルを右のように変換します。
こんな感じで、NOをキーに、NO開始行に「*」を入れないといけないケース、これをパワークエリで解決してみようという話です。
これ、いきなり「*」を打つことは難しいので、NOごとにインデックスを付番し、NO開始行のインデックス番号について*を、その他の列については空白とした列を追加して伝票区切列とする方法が一番分かりやすいかと思います。
今回のポイントはこちら。
- Noごとにグループ化する方法
- グループごとにインデックスを付番する方法
- インデックスから*に置き換える方法
この中でも特に「グループごとにインデックスを付番するが重要でしょう。
それを踏まえたうえで、早速見ていきましょう。
パワークエリの操作
事前準備
まずは区切り記号を入れたいテーブルをパワークエリに取り込みます。
NOごとにグループ化
次にこのデータをNOごとにグループ化します。
NO列を選択して右クリック、グループを選択します。
そして、グループ化する列がNO列になっていることを確認し、グループ化による新しい列名、操作「すべての列」を選択しOKを押します。
するとこうなります。
NOごとにグループ化されました。
グループごとのインデックス列の追加
次に、グループごとにインデックスする列を追加します。
列の追加タブより「カスタム列」を選択します。
次に、追加する列名(ここではインデックス)を指定し、インデックス列追加関数を入力します。
=Table.AddIndexColumn([Noグループ],"インデックス",0,1)
'引数:[対象列],"追加する列名",インデックス開始値,インデックスの幅値)
'※開始値と幅値は省略可能。初期値はそれぞれ0と1。
このように入力し、OKを押します。
そしてインデックス列が追加されますので、展開してみましょう。
するとこのように、NOごとにインデックスが付番されました。
NOが変わるごとに0から始まっていることに着目してください。
あとは、この0を*に、その他を空欄とした列を作ればOKです。
インデックスから「*」に置き換える方法
列の追加タブ「条件列」を選択します。
追加する列名を入力し、「インデックスが0の時*とする」とするように入力します。
それ以外の場合は空欄(null)とします。
これでOKを押すとこんな感じです。
あとは必要に応じて並び替え・削除し、形を整えて完成です。
これで完成、あとはExcelシートに読み込むなどして完成です。
最後に
以上、グループごとにインデックスを付番する方法を駆使して区切り記号列を追加する方法について見ていきました。
このグループ化という方法は様々な方法に応用できますので、覚えておいて損はない方法だと思います。
最後までお読みいただきありがとうございました。