Excelの関数で行と列を入れ替える方法 ~例:2行目のデータを2列目にする〜

広告

今回はExcelでの行列入れ替えを関数で行う方法です。
入れ替え方はデータによって方法が異なるのですが、今回の方法は以下のようなデータを入れ替えます。

今回行う事

※今回の方法は規則性のあるデータに限ります

手作業で一個ずつデータをコピペするのもいいですが、まとまったデータですとかなり時間短縮できます。

yukimi
yukimi

難易度:2.0
使う関数はINDEXとROW関数だけです。
シンプルなので比較的簡単ですよ。

今回の記事は以下の方にオススメです

  • 特定の行を特定の列に移動させたい
  • 行と列を入れ替えた表を作りたい

今回の手順

  1. パターンを調べる
  2. n番目の行数=n番目の列となる式を入力する
  3. 1で求めた項目数分の式を作る
  4. 不要なを削除

大きくこの4つの流れになります。

1. パターンを調べる

今回の手順で最も重要な場所です。
このデータの中に項目数がいくつあるのかを調べることと、規則性があることを確認します。

パターンを調べる

今回のデータは、名称・日にち・時間・場所の4つの項目がありそのデータ郡が5つあります。
そして規則性があります。
※規則性がないと抜き出した際に本来抜き出したいデータの順にならなくなるため、規則性があることが重要です。

項目数4という数字を覚えておいてください。
もし項目数が3つの場合は3になります。

2. n番目の行数=n番目の列となる式を入力する

数式は以下のようになります。

=INDEX($B$2:$B$21,(ROW()-2)*4+1,1)
※今回のデータの場合のD2セルに入っているものです。

INDEXではB列しか抜き出す必要がないので、=INDEX($B$2:$B$21,(ROW()-2)*4+1,1)
青のアンダーラインの弾いている場所は固定になります。

そして今回のn番目の行数=n番目の列となる式ですが、(ROW()-2)*4+1に当たります。
式だけだとわかりづらいと思いますので、画像も入れて説明します。

やりたい事

上記のように行と列を入れ替えたいので、行数を求める関数ROWを使って求めていきます。
ROW()-2)*4+1を求めると(2-2)×4+1=1となります。
※ROW()では行数が2行目になるので2という数が求められます。

これで基本の計算式ができましたので、次は列の数分数式を変えていきます。

3. 1で求めた項目数分の式を作る

次は下図でいるところの②・③・④の式を作っていきます。

やりたい事

②:=INDEX($B$2:$B$21,(ROW()-2)*4+2,1)

③:=INDEX($B$2:$B$21,(ROW()-2)*4+3,1)

④:=INDEX($B$2:$B$21,(ROW()-2)*4+4,1)

青いアンダーラインの部分だけ変更します。
後はオートフィルをすれば⑤以降の数値も自動的に出力できるようになっています。

4. 不要な列のデータを削除

これで行と列の入れ替えができましたので、不要な行のデータを削除していきます。

行を入れ替えたデータを全て選択します。

4. 不要な列のデータを削除①

Ctrl+Cでコピーをします。

4. 不要な列のデータを削除②

右クリックで貼り付け→値貼り付けを選択

4. 不要な列のデータを削除③

不要な列を削除すれば完成

4. 不要な列のデータを削除④

COLUMN関数を使うと手順3は省ける

関数を一つ追加するの必要があるのですが、列数分式を作る手順3の工程を省く方法があります。
その方法はCOLUMN関数を使うと列を自動的に求めることができるので、更に時短になります。

COLUMN関数を追加するのはこの場所です。

=INDEX($B$2:$B$21,(ROW()-2)*4+1,1)

=INDEX($B$2:$B$21,(ROW()-2)*4+COLUMN()-3,1)

COLUMNで‐3するのは出力する先を1列目とするためです。
D列=4列目。

やりたいこと

COLUMNを使えば自動的に列数を取得できますので、あとはオートフィルで全ての行列を入れ替えることが可能になります。

まとめ

いかがでしたでしょうか。
ホームページなどの情報から引っ張ってくる時、ホームページは縦長のデータが多いのでそういった時に役立ちますよ。

今回使用したテストデータも掲載しておきますので、下記ダウンロードボタンよりどうぞ!

コメント