It技術

シートで別シートの要素を参照してシートを並び替える方法【Googleスプレッドシート・Excel】


シート1:

名前
田中太郎
山田花子
John Doe

シート2:

名前 点数
John Doe 80
田中太郎 90
山田花子 100

この状態で、シート2をシート1と同じ順番に並び替えたい、という方法を解説します。

並び順を作成する

名前 No.
田中太郎 1
山田花子 2
John Doe 3

シート1の順序を明示します。B列にNo.という列を作成し、1,2,3…と昇順で値を振ります。

自動で連番を振る場合はSEQUENCE関数が便利です。以下の関数をB2に挿入することで、1から3までの連番が作成されます。

1
=SEQUENCE(3)

並び順を参照する

シート2:

名前 No. 点数
John Doe 80
田中太郎 90
山田花子 100

シート2にもNo.という列を用意します。B2のセル(☆で示した位置)に以下の関数を書きます。

結果として、自動的に番号が参照されます。

名前 No. 点数
John Doe 3 80
田中太郎 1 90
山田花子 2 100

スプレッドシートの場合

1
=ARRAYFORMULA(IF(A2:A = "", "", VLOOKUP(A2:A, 'シート1'!$A$1:$B$1000, 2, FALSE)))

エクセルの場合

エクセルはArrayFormulaが使用できないので以下の関数を使用します。1行づつしか適応されないのでコピペしてください。

1
=VLOOKUP(A2, シート1!$A$1:$B$1000, 2, FALSE)

並び替える

あとは基本機能を利用して、B列でシート2を昇順に並び替えれば完成です。

名前 No. 点数
田中太郎 1 90
山田花子 2 100
John Doe 3 80

Googleスプレッドシートの並び替え

  1. Bのセルにカーソルを当てる
  2. Bセルの右側の方に、下向き三角形のマークが出てくるのでそれを押す
  3. 「昇順でシートを並び替え」を押す

Excelの並び替え

  1. Bのセルをクリックして、B列全体にカーソルを当てる
  2. タブから「データ」を選択し、「並び替え」の左隣にあるマークを押す

おまけ

ArrayFormulaを使用した関数の場合、並び替えるとB列要素が消えてしまうので、保持したい方は以下のように操作してください。

  1. B列をコピー
  2. 新規列を作成
  3. 新規列に「値のみを貼り付け」を行う
  4. 新規列で並び替え