いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)TRANSPOSE関数で表の行と列を入れ替える

 GoogleスプレッドシートのTRANSPOSE関数の機能と使用例についてです。

  • 「=TRANSPOSE(表の範囲)」という式により、表の行と列を入れ替えた結果を得ることができます
  • これは数学での行列の転置と同じものです。

手順

 次の画像ではTRANSPOSE関数を使って、B2:E6の範囲に記録されている表の行と列を入れ替えています。
 具体的には、縦に並んでいた店名の見出しが横に並べられ、横に並んでいた月名の見出しが縦に並べられています。それに沿うように各数値も並べ替えられているのがわかります。

 G2セル

=TRANSPOSE(B2:E6)

 引数は1つだけでとても単純です。
 昔のExcelでは入力確定の際にCtrl+Shift+Enterキーを使わなければならず扱いにくい関数でしたが、Googleスプレッドシートでは普通にEnterで表が展開される便利な関数になりました。ただし現在はExcelでもEnterで済む関数になっています。


 オフィスソフトの世界では上記のように「行と列を入れ替える」という表現がよく用いられますが、これは行列の転置と全く同じものです。
 つまりTRANSPOSE関数は行列を転置し、もとのi行j列成分(要素)が転置後のj行i列成分になります。


 より単純な例として、1行の配列は1列の配列に置き換えられます。
 これに関してはFLATTEN関数でも同じ結果が得られます。


 一方で1列の配列は1行の配列に置き換えられます。
 2つの画像からわかるようにTRANSPOSEを2回かけると元に戻ります。これは一般の表(複数行複数列)でも同じです。


応用例

 実際の用途としては最初の例のように、単純に表(データ)の見せ方を変えるため並べ替えるという使い方が多いです。
 また、次の記事はもう少し込み入っていますが、縦持ち→横持ちというデータ変換の定番ネタでTRANSPOSE関数を使用しています。

www.officeisyours.com


 こちらも定番ですが直積(2つのリストの全組み合わせ)を作る際にTRANSPOSE関数を使用しています。

www.officeisyours.com