今回は、ExcelのTRANSPOSE関数で表の行と列を入れ替える方法を紹介します。操作の前提は、Windows版のExcel for Microsoft 365です。元データの向きを変えて別の場所に表示したいときに、関数による方法と、コピーして入れ替える方法の使い分けも確認します。
TRANSPOSE関数でできること
TRANSPOSE関数は、指定した範囲の行と列を入れ替えて表示します。縦に並んだ項目を横に並べたり、横に長い表を縦向きに見直したりするときに使えます。たとえば、A1:B4の四行二列を入れ替えると、結果は二行四列になります。元の表を残しながら別の向きで参照できる点が便利です。
書式は「=TRANSPOSE(元の範囲)」です。A1:B4を対象にするなら「=TRANSPOSE(A1:B4)」と入力します。Microsoft 365の現在のExcelでは、出力先の左上の一つのセルに入力し、Enterキーで確定すると結果が周囲のセルへ広がります。この広がりを考慮し、出力先に十分な空きがある場所を選ぶことが基本です。
まず元の表の大きさを確認する
行列を入れ替えると、必要な場所の縦横が逆になります。元データが五行三列なら、結果には三行五列の領域が必要です。列見出しや行見出しも含める場合は、それらを範囲に含めて数えます。見出しを除いた範囲だけを指定すると、結果の意味を読み取りにくくなることがあります。
出力先は元の表に重ならない位置にしましょう。元データの右側に置く場合は、表との間に余裕を設けます。あとから元データに行や列を追加する予定があれば、その増加分も考えて配置します。ただし、式で指定した範囲の外に追加した行や列は、そのままでは結果に含まれません。範囲を広げた際には、出力先の空きも改めて確認してください。
TRANSPOSE関数を入力する手順
- 元の表の行数と列数を確認し、結果を置く範囲にデータがないことを確かめます。
- 結果を表示したい場所の左上のセルを選択します。
- 「=TRANSPOSE(」と入力し、マウスで元の範囲を選ぶか、セル範囲を入力して閉じかっこを付けます。
- Enterキーで確定し、行と列が入れ替わった結果を確認します。
たとえば、A1:B4に「項目名」と「内容」が並ぶ表があるなら、離れた空白セルに「=TRANSPOSE(A1:B4)」と入力します。結果の上の行に元の項目名、下の行に元の内容が並ぶ形を確認できます。見出しを含むかどうかは、元の範囲の指定によって決まります。式を手入力するときは、開始セルと終了セルの間のコロンを忘れないようにしましょう。
結果が広がらないときに見る点
Microsoft 365の動的配列では、結果を表示する領域に既存の値があると、式の結果を広げられません。空欄に見えても内容が残っている場合があるため、出力予定の範囲を確認します。入力済みの内容を消す前に、必要なデータかどうかを確かめてください。別の空いている場所に式を置き直す方法なら、既存データを保ったまま原因を切り分けられます。
結果の各セルを個別に書き換えようとしても、式が作った範囲の一部だけを編集することはできません。変更したいのが元の値なら元データ側を直します。表示先の向きや範囲を変えたいなら、式の入った左上のセルを選び、参照範囲を編集します。結果は一つの式から出ていると考えると、編集する場所を迷いにくくなります。
元データを更新する表に向いている
TRANSPOSE関数の結果は元のセル範囲を参照します。元の表の値を修正した場合、その参照に応じた表示を維持できるので、同じ内容を縦向きと横向きで確認したい場面に向いています。一方、関数で表示した結果は、元の表とは独立した入力欄として編集する用途には向きません。別の担当者が転置先に直接入力する運用なら、結果を固定する方法を検討します。
表の向きを変える目的も確認しましょう。資料に一度だけ貼るための転置と、元データの更新を反映させながら参照する転置では、適した手段が違います。前者はコピー後の「行列を入れ替えて貼り付け」、後者はTRANSPOSE関数が候補です。コピーで作った表は元の値を変更しても自動では追随しないため、後で差分が出ないように用途を明確にします。
コピーして行列を入れ替える方法との違い
固定した表が必要なら、元の範囲をコピーし、貼り付け先で[行列を入れ替えて貼り付け]を使う方法があります。こちらはコピー時点の内容を別の向きに置きます。元データとのつながりを保つ式ではありません。見た目を整えて配布する資料には使いやすい一方、元表の変更が反映されることを期待しないでください。
Microsoftの案内では、行列を入れ替えて貼り付けるときは切り取りではなくコピーを使います。また、Excelテーブル内のデータでは、この貼り付け方法が使えない場合があり、テーブルを範囲に変えるかTRANSPOSE関数を使う方法が示されています。元表がテーブルなのか通常のセル範囲なのかも、作業前に見ておくと選択しやすくなります。
見出しと書式を整えるコツ
TRANSPOSE関数が扱う中心はセルの値です。転置先の列幅、文字の折り返し、罫線などは、表示先で読みやすいように整えます。元表で横長の見出しだった文字が転置後には縦方向の項目になる場合もあります。結果を出したら、最も長い文字列が途中で隠れていないか確認しましょう。
表の見出しを結果と別の場所に手入力すると、元の見出しを変更した際に食い違う可能性があります。元の見出しも一緒に転置するか、別に置く場合は更新する手順を決めておきます。数式を含む元表では、転置先に何を表示したいのかを確認し、結果を数行だけ読んで対応関係を確かめると、範囲の指定違いに気づきやすくなります。
利用環境による操作の違い
ここで説明した「左上のセルに式を入力してEnterキーで確定する」操作は、現在のMicrosoft 365版を前提にしています。Microsoft公式ヘルプでは、従来のExcelでTRANSPOSE関数を使う場合、先に出力範囲を選び、Ctrl+Shift+Enterキーで配列数式として確定する手順が案内されています。古い買い切り版で同じ操作をする際は、その版に対応した案内を確認してください。
まとめ
TRANSPOSE関数は、元のセル範囲を参照しながら行と列を入れ替えて表示できます。Microsoft 365版では、空いた場所の左上に「=TRANSPOSE(範囲)」を入力するのが基本です。出力先の広さと元表との重なりを確認し、結果の見出しと書式を整えましょう。更新に合わせて表示したいなら関数、独立した表として固定したいならコピーして行列を入れ替える方法が使えます。