スプレッドシート

スプレッドシートのTRANSPOSE関数で縦横入れ替え – “転置して貼り付け”との違い

スプレッドシートのTRANSEPOSE関数で行列を入れ替え

スプレッドシートのTRANSPOSE関数とは

スプレッドシートのTRANSPOSE関数は、行と列を入れ替える関数です。データの向きを変更し、縦のデータを横に、または横のデータを縦に変換できます。例えば、A1:C2のセル範囲を指定すると、2行3列のデータが3行2列に転置されます。データの再構成や分析に役立つ便利な関数で、=TRANSPOSE(範囲)の形式で使用します。

TRANSPOSE関数の構文

=TRANSPOSE(配列または範囲)
  • 配列または範囲:転置したいセルを指定

TRANSPOSE関数の使い方

TRANSPOSE関数のやりかた

TRANSPOSE関数の使い方は、「=TRANSPOSE(A1:D10)」のように入れ替えたい範囲をかっこ内にいれるだけです。たとえば下表があったとします。

これの縦横を入れ替えるには「=TRANSPOSE(A1:D10)」のように、範囲を指定してあげればよいです。

「転置して貼り付け」のやりかた

TRANSPOSE関数とよく似た「転置して貼り付け」は、対象範囲をコピーして特殊貼り付けをしましょう。まずは下図のように対象の範囲をコピーします。

その後、右クリックして「特殊貼り付け」>「転置して貼り付け」を選択します。

すると下図のように貼り付けが成功します。

TRANSPOSE関数と「転置して貼り付け」の違い

TRANSPOSE関数と「転置して貼り付け」との違いは、設定後の変更が反映されるかにあります。TRANSPOSE関数は関数である性質上、元の表と連動して値の変更を反映してくれます。他方「転置して貼り付け」は実質的にはコピペなので、貼り付けた表は独立して扱われます。

TRANSPOSE関数転置して貼り付け
メリット関数作成後の変更も反映してくれる貼り付け時のデータが残る
デメリット元の表を削除すると、関数の表示も消える元の表を修正しても反映されない

元の表が変更されたときの内容を反映したいかで、TRANSPOSE関数と「転置して貼り付け」を使い分けるとよいでしょう。

TRANSPOSE関数と組み合わせたい関数

TRANSPOSE関数と組み合わせたい関数としては、IMPORTRANGE関数やSORT関数、FILTER関数などがあります。範囲の転置をしつつ並べ替えや絞り込みをすることで、データを活用しやすくなります。

関数名用途
IMPORTRANGE関数他スプレッドシートから転記
SORT関数並べ替え
FILTER関数絞り込み

TRANSPOSE関数のエラー・注意点

[#REF!]〇〇のデータを上書きするため、配列結果は展開されませんでした。

TRANSPOSE関数を使っていると、#REF!という表示とともに「〇〇のデータを上書きするため、配列結果は展開されませんでした。」というエラー文と遭遇することがあります。この場合は「〇〇のデータを〜」と書かれた〇〇のセルの中身を削除すればエラーが解消します。

上図ではG2セルに値が入っていてエラーになっていたので、これを削除すると想定通り転置した表が表示されます。