縦方向のリストのアイテムリストを横並びにしてグループごとに一覧化させる式

通常のグループ化

並べ替え集計などで実現できるグループ化ですが、通常は縦並びで表示されます。例えば以下のようなリスト(A1:B16)をセミナー番号で並べ替えをしてみます。

セミナー番号出席者
103佐藤
101鈴木
104高橋
102田中
103伊藤
104山本
101中村
102小林
104加藤
101吉田
102山田
102佐々木
102松本
101井上
101木村

並べ替えをすれば各セミナーの出席者のリストがわかりますね。

セミナー番号出席者
101鈴木
101中村
101吉田
101井上
101木村
102田中
102小林
102山田
102佐々木
102松本
103佐藤
103伊藤
104高橋
104山本
104加藤

横並びのグループ化完成テーマ図

この記事ではグループ化して生成されるアイテムリストを横並びにする計算式を紹介します。完成予定表を見てみましょう。

セミナー番号出席者1出席者2出席者3出席者4出席者5出席者6
101鈴木中村吉田井上木村
102田中小林山田佐々木松本
103佐藤伊藤
104高橋山本加藤

1列目にはグループ化対象のアイテムリストを生成します。

2列目以降では各グループのアイテムリストが横方向に展開するようにします。それではやり方の流れを紹介します。

グループ化するアイテムリストの生成

それではページの先頭にある表(A1:B16)の左の列のアイテムリストをセルD12に作成してみます。アイテムリストはUNIQUE関数で作成可能です。D12へ以下の式をセットします。

=UNIQUE(A2:A16)

重複をなくしたアイテムリストが生成されます。リストはスピルします。

これを並べ替えたい場合にはSORT関数で囲みましょう。D12の式を加工します。

=SORT(UNIQUE(A2:A16))

なお、アイテムリストが少ない場合や、全種を自分で把握している場合にはキー入力で埋めても問題はありません。

各グループが持つアイテムのリストを生成する式(縦型)

セルE2へは「セミナー番号101が持つ出席者(B列)のリスト」を表示させてみます。FILTER関数を用い以下の式をセットします。あとで下へコピーすることを考慮し、B2:B16とA2:A16の部分は絶対参照をしておきます。

=FILTER($B$2:$B$16,$A$2:$A$16=D2,"なし")

セミナー番号101が持つB列のデータが縦方向にリストアップされました。結果はスピルしています。

縦方向に展開するリスト

上記で作成したFILTER関数の結果は縦方向へ展開しているので、右方向へ展開するようにTRANSPOSE関数で囲みます。セルE2の式を以下のように加工します。これで右方向への展開に成功します。

=TRANSPOSE(FILTER($B$2:$B$16,$A$2:$A$16=D2,"なし"))

E2の式を末尾のE5までコピー(オートフィル)すれば成功です。

コメント