LEVEL 6 モダンExcelへの扉 上級
Lesson 060

TRANSPOSE関数について

練習用Excelファイル lesson060-practice.xlsx

練習用ファイルは、パソコンからダウンロードしてください。

TRANSPOSE関数について

スピル系の関数、第四弾は TRANSPOSE関数(トランスポーズ関数) です。「トランスポーズ」は英語で「置き換える、入れ替える」という意味です。

数学では「行列の転置」を表す言葉ですが、Excel では 「縦のデータを横に、横のデータを縦に」入れ替える 関数です。

  • 縦に並んだ社員名を、横一列に並べ直したい
  • 月別の売上が横に並んでいるけど、縦に並べたい
  • もらった表が向きが逆、自分の使いたい向きに直したい

実務でけっこう遭遇する「表の向きを変えたい」シーン。それを一発で解決してくれるのが TRANSPOSE です。

実はこの関数、スピル登場前から存在していました。ただ、当時は Ctrl + Shift + Enter を押す特殊な操作が必要で、扱いが面倒でした。

スピル時代になって、普通の Enter だけで使える ようになり、ぐっと身近な関数になっています。

関数ライブラリ
関数ライブラリ


TRANSPOSE関数の構文

=TRANSPOSE(配列)

引数は1つだけ。入れ替えたい範囲 を指定します。

スピル前提なので、結果は 複数セルに広がります。縦に5行あるデータを TRANSPOSE すると、横に5列に広がります。その逆も同様です。

引数ダイアログ
引数ダイアログ


縦を横に変える

社員名が縦に並んでいるとします。

:::excel
A1=社員名
A2=田中
A3=鈴木
A4=佐藤
A5=山田
A6=高橋
:::

これを 横一列 に並べ直したい。C1 セルに次の数式を入れます。

=TRANSPOSE(A1:A6)

すると、C1 から H1 まで横方向に5つのセルに、社員名が並びます。

TRANSPOSEで縦のデータが横に並ぶ
TRANSPOSEで縦のデータが横に並ぶ

数式は1つ。それで縦6行のデータが、横6列にこぼれて並びました。


表全体も入れ替えできる

逆に、横に並んでいるデータを縦に変えることもできます。月別の売上が横一列に並んでいるとします。

:::excel
A1=1月
B1=2月
C1=3月
D1=4月
A2=100000
B2=120000
C2=150000
D2=130000
:::

これを に並べ直したい。別のセル(たとえば F1)に、

=TRANSPOSE(A1:D2)

と入力すると、横向きのデータが縦向きに変身しました。

TRANSPOSEで横のデータが縦に並ぶ
TRANSPOSEで横のデータが縦に並ぶ


コピー&「形式を選択して貼り付け」との違い

「行と列の入れ替え」は、コピー → 形式を選択して貼り付け → 行/列の入れ替え という機能でもできます。実は多くの方は、こちらの方法を先に覚えています。

TRANSPOSE関数との違いは、

形式を選択して貼り付けTRANSPOSE関数
操作方法クリック中心数式
元データを変更反映されない(値の固定)自動で反映される
結果の更新手動でやり直し自動更新

元データを編集する可能性があるなら、TRANSPOSE関数のほうが便利です。一回きりの作業なら、貼り付け機能のほうが手軽。状況に応じて使い分け てください。

あるあるのミスとして、切り取り・貼り付けで、行/列の入れ替えはできません。


まとめ

  • TRANSPOSE関数は、縦↔横を入れ替える スピル関数
  • 構文:=TRANSPOSE(配列)
  • 1列・1行・表全体、どれも入れ替え可能
  • スピル前は Ctrl+Shift+Enter が必要だった。今は普通の Enter でOK
  • 「形式を選択して貼り付け」との使い分けは、元データの変更があるかどうか で判断

次回は SEQUENCE関数。「連番をスピルで一発生成」できる、シンプルかつ便利な関数です。


ショートカット

※このレッスンに対応するショートカットはありません。

次のLessonへ Lesson 061 SEQUECNE関数について