いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)縦持ちの表を横持ちに変換する例

 Googleスプレッドシートにおいて、縦に並んだ表の値をグループ化して横に並べる、いわゆる縦持ち→横持ちの変換を関数で行う例です。

  • UNIQUE関数等を用いて縦持ちの表を横持ちに変換することができます。

手順

 対象となるリストはB3:C10の範囲です。B列に氏名が、C列に(保有)資格が記録されています。
 氏名ごとに保有資格をまとめて横に並べるものとします。
 まずE3セルに次のように入力します。

 E3セル

=UNIQUE(B3:B10)

 B列に記録された氏名の重複を除くという式です。


 重複のない氏名のリストができました。なお、並び順はB列中の初出順になります。


 次にF3セルに次のように入力します。

 F3セル

=TRANSPOSE(FILTER(C$3:C$10,B$3:B$10=E3))

 FILTER関数を使い、C列に並んだ資格のうち、E3セルの氏名に対応したものだけ抽出し、TRANOPOSE関数を使って横並びにするという式です。
 絶対参照を用いていますが、後で式をコピーしたときに参照がずれないようにするためです。


 確定すると、E3セルに表示されている氏名に対応した資格の名前が横に並びました。


 あとはF3セルの内容を下方にコピーすれば完成です。

 なお、関数による逆の操作の例は次の記事で紹介しています。

www.officeisyours.com

 また、クロス表から縦持ちへの変換については次の記事で紹介しています。

www.officeisyours.com