坂田裕輔 / Google Sheetsでリストを表に変換

Created Sat, 04 Jan 2025 07:43:56 +0900 Modified Sat, 04 Jan 2025 07:43:56 +0900
927 Words

リストと表

順次増えていくものごとをリストしていく場合、増えた分をどんどんリストに追加していくと楽だ。

ある程度リストがたまると、今度はそのリストを分類したくなる。そのばあいは表にまとめると便利だ。

例えば、メンバーの情報を整理したリストから、グループごとの表をつくりたいとする。

あるいは、机の文房具を使った記録をつける。日付、利用した文房具、使用して作成したもののリストを作る。表にまとめる場合は、文房具ごとに利用した機会をn番目ごとにまとめる。

こういうばあい、リストを表に変換するプロセスが必要だ。ピボットテーブルを使えば良いようなものでもあるけれど、ピボットテーブルはなんだか使いにくくて好きになれない。余計な情報が加わりすぎるということと、数値の利用に特化している印象がある。

Google Sheetsでこの機能を実現する方法を簡単にメモしておく。

方針

表の縦軸をつくる

グループを表にするときに、縦軸は分類項目とする。 色別リストとか、グループ名のリストなどである。

これには、unique関数を使うが、空行を削除する処理が必要だ。 そこで、filterコマンドをかます。

=unique(filter(A2:A,A2:A<>""))

とする。 この関数を作りたい表の見出し列とする。仮にD列に作成するとすれば、D3あたりにこの関数を入れておく。 そして、2行目は横見出しを入れる。

検索する範囲をA2:Aと指定するのは、一行目には普通見出しが入るから、それを除外するためだ。

横軸をつくる

横軸には、リストから対応するグループの要素を追加していく。

普通はvlookupを使うが、vlookupでは、同じリストに同じ要素があるばあいは対応できない。

今回は、リストの上から順にN番目をN列目におく。

そこで、次のようにする。 エクセル関数の説明をしているサイトがある。

まずは、準備として一行目に番号をつけておく。 リストの上から一番目にみつかったものを表の一列目、二番目にみつかったものを二列目というふうにする。 実際には、見出し列の隣りから一列目と考えるので、その上に1を記入し、そこから右へ順に2、3、と数字を入れる。

ここでやりたいことは、表の左列の見出しに該当する要素をA表から抽出し、

= IFERROR(INDEX($A:$A,SMALL(IF($B:$B=$D3,ROW($B:$B)),E$1)),"")

この数式をE3に記入し、右と左にコピーすれば、表の完成だ。