Excelで縦に並んだ項目を横向きにしたい、または横に並んだ見出しを縦方向へ並べ替えたいときは、表を作り直す前にTRANSPOSE関数を検討できます。コピーして貼り付ける「入れ替え」でも行と列は変えられますが、元の表をあとから直す予定があるなら、数式で結果を出すTRANSPOSE関数のほうが確認しやすい場面があります。
TRANSPOSE関数でできること
TRANSPOSE関数は、指定したセル範囲の行と列を入れ替えて表示する関数です。たとえば縦4行×横2列の範囲を指定すると、結果は縦2行×横4列の向きになります。Microsoft 365のExcelでは、結果を出したい範囲の左上セルに数式を入力してEnterキーを押すと、必要な範囲へ動的配列として結果が広がります。
コピーして貼り付ける「入れ替え」は、値や書式を別の場所へ置き直したいときに向いています。一方、TRANSPOSE関数は元のセルを参照するため、元の表の値を変更すると入れ替え後の表示も更新されます。作業の目的が「固定した表を作る」のか「元データに連動する向き違いの表を作る」のかを先に決めると、あとで直す手間を減らせます。
作業前に確認すること
元の表を大きく編集する前に、必要ならブックを保存しておきます。TRANSPOSE関数そのものは元データを削除しませんが、結果を出す先のセル範囲に既存の入力があると、動的配列の結果を広げられません。空白の場所を用意してから数式を入力してください。
Excelのテーブルとして設定されている範囲を貼り付けの「入れ替え」で直接扱えない場合があります。その場合は、通常の範囲に変換するか、TRANSPOSE関数で別位置に結果を表示する方法を選びます。この記事では、Microsoft 365のWindowsデスクトップ版Excelを中心に説明します。古いExcelでは動的配列ではなく、出力範囲を先に選んで配列数式として確定する操作が必要になる場合があります。
TRANSPOSE関数で行と列を入れ替える手順
まず、入れ替えたい元の範囲を確認します。見出しも一緒に向きを変えたい場合は、見出し行または見出し列も範囲に含めます。元データの一部だけを指定すると、当然その部分だけが入れ替わるため、最初に対象範囲をはっきりさせておくことが大切です。
- 結果を表示したい場所の左上セルを選択します。
- =TRANSPOSE(と入力します。
- 行と列を入れ替えたいセル範囲を選択します。
- 閉じかっこを入力し、Enterキーで確定します。
たとえば元の表がA1:C4にある場合は、結果を出したい左上セルに=TRANSPOSE(A1:C4)と入力します。元の表が4行3列なら、結果は3行4列の範囲に広がります。入力後に一部のセルだけを編集しようとしても、動的配列の結果範囲内では個別の結果セルを直接変更できません。内容を変えたいときは、元データか左上セルの数式を修正します。
結果が表示されないときの見直し
数式を入れても結果が広がらない場合は、まず結果範囲に文字、数式、空白に見えるスペースなどが残っていないか確認します。動的配列は必要なセル範囲を使うため、途中に既存データがあると正常に展開できません。結果を出す位置を変えるか、不要な入力を削除してからもう一度確認します。
参照範囲の行数と列数も見直します。思った向きにならないときは、元の表の選択範囲が広すぎる、または見出しを含め忘れていることがあります。数式バーで参照範囲を確認し、必要に応じて範囲を選び直します。
古いExcelで作業している場合は、出力先のセル範囲を先に選択してから数式を入力し、Ctrl+Shift+Enterで確定する配列数式の扱いになります。Microsoft 365のExcelとは確定方法が違うため、同じブックを複数の環境で扱うときは注意してください。
貼り付けの入れ替えと使い分ける
入れ替え後の表を独立した値として残したい場合は、コピー後に貼り付けオプションの「入れ替え」を使う方法が分かりやすいです。元データとは連動しないため、元の表をあとで変更しても貼り付け先は自動更新されません。提出用や配布用に固定した表を作る場合はこちらが向いています。
一方、元データを直しながら別の向きでも確認したい場合は、TRANSPOSE関数が便利です。元表を縦持ちで管理し、別の場所に横向きの確認表を作るような使い方ができます。ただし、TRANSPOSE関数は主に値の向きを入れ替えて表示するため、元のセルの色や罫線まで同じ見た目で再現したい場合は、貼り付けの入れ替えや書式設定を組み合わせて整えます。
関連するExcel操作
表の向きを変える作業では、並べ替えや抽出、文字列の整形もあわせて見直すことがあります。必要に応じて、SORT関数で並べ替えを扱いやすくする方法、FILTER関数で抽出条件を扱いやすくする方法、TEXTSPLITで文字列を分割する方法、テーブルと参照で表を扱いやすくする方法も確認してください。
TRANSPOSE関数は、表の行と列を入れ替えて見せたいときに使える基本的な関数です。元データに連動させたいならTRANSPOSE関数、固定した結果を作りたいなら貼り付けの入れ替え、という基準で選ぶと作業後の修正がしやすくなります。