- 「=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関数の構文は次のとおりで、引数は1つだけです。
=TRANSPOSE(範囲)
応用例
実際の用途としては最初の例のように、単純に表(データ)の見せ方を変えるため並べ替えるという使い方が多いです。
また、次の記事はもう少し込み入っていますが、縦持ち→横持ちというデータ変換の定番ネタでTRANSPOSE関数を使用しています。
こちらも定番ですが直積(2つのリストの全組み合わせ)を作る際にTRANSPOSE関数を使用しています。