エクセル関数の小技の紹介です。
テーブルのデータを見やすい表に集計するのはピボットテーブルが便利ですよね。
では、こんなメモ内容をIDごとにまとめたい場合は・・・。
文字列のデータはピボットテーブルではデータの個数をカウントくらいしかできないので使えない。。。
定例的な作業の場合はVBAでやった方がよいと思いますが、1回こっきりのスポット作業の場合、私は関数でやってしまいます。
■VLOOKUPで縦のデータを横に!
①IDの列の左に1列挿入します。ここをKey列とします。
②前回やったIDごとに連番を振る方法で連番を振ります。
(記事の下にリンクつけてます!)
③ID毎連番に「ID」を追加します。見やすくするためにIDと連番の間に「-」も入れます。
= B2 & “-” & COUNTIF(B$2:B10,B2)
これでKeyが用意できました。
④集計する表を用意します。
IDと氏名を行ラベルに、ID毎連番の一番大きい数が4なので4まで入れる列を用意しました。
⑤ID1001田中A子の連番1のセル(C2)にVLOOKUP関数を入れます。
=VLOOKUP($A2&”-“&C$1,Sheet1!$A$1:$E$10,5,0)
VLOOKUPの中身
【検索値】
Keyと同様の作り方です。IDと連番(間に「-」も入れます。)
ID(ここではA列)を列の絶対参照、連番(ここでは1行目)を行の絶対参照にします。
【範囲】
データテーブルを指定します。ここでは集計表は別シートにしているため、データテーブルのシートのKey列からメモ内容までを指定します。行列の絶対参照にします。
【列番号】
メモ内容は「Key列」から数えて5列目なので「5」と指定します。
【検索方法】
完全一致(0)を指定します。
この式をコピーしてセルF4まで貼り付けします。
これでメモ内容が入りました。顧客にどんなコンタクトをとったかが時系列で見やすくなりましたね。
もうひとつ。ID1002の佐藤さんは4番までメモ内容があるので良いのですが、ID1001の田中さん、ID1003の加藤さんがは4番までメモ内容がないため#N/Aが出ちゃうので、IFERRORで該当がない場合は空白にする関数をかませます。
=IFERROR(VLOOKUP($A2&”-“&C$1,Sheet1!$A$1:$E$10,5,0),””)
これですっきり!
■日付も入れたい場合
集計表に日付を入れる用の列を挿入します。
メモ内容を入れる式をコピーし、参照列を日付の「4」に変えます。
書式を日付の書式に変更します。
■日付で時系列に並べたい場合
①データテーブルのKEY列をID&日付にします。
日付はシリアル値になるので、なんか変な数字になってしまいますが気にしない・・・。
②集計表の行ラベルを日付にします。
③関数は連番の時と同じで大丈夫です。
わたしは結構使うんですけど。。。
参考になれば幸いです!
コメント