Excelの小技 ~離れた列のデータを取得する~

grandpa Hama

こんにちは、システム革新Gのgrandpa Hamaです。
久しぶり(今年初めて)の投稿になります。

今回はCHOOSECOLS関数のお話です。
・CHOOSECOLS関数
指定した列番号だけを抜き出して新しい配列を作る関数です。
バージョン:Microsoft 365、Excel 2024、およびWeb版Excel
構文:=CHOOSECOLS(array,col_num1,[col_num2],…)
構文の詳細はExcelのヘルプで確認してください。

Excelの小技 ~離れた列のデータを取得する~

-はじめに

「氏名ランキング」というシートに以下のようなデータがあるとします。


氏名をキーとして、氏名カナや氏名英字、ランキングを取得する際に、以前まではVLOOKUPを使用して取得していたと思います。
氏名カナ :=VLOOKUP($A2,氏名ランキング!$A$1:$D$11,2,FALSE)
氏名英字 :=VLOOKUP($A2,氏名ランキング!$A$1:$D$11,3,FALSE)
ランキング:=VLOOKUP($A2,氏名ランキング!$A$1:$D$11,4,FALSE)

今回の例題では項目数が少ないので良いのですが、項目数が多くデータ量も多い場合は、
すべての行/列に計算式を埋め込まなくてはならないため、Excelが重くなってしまいます。
XLOOKUP関数を使用すれば、氏名カナの列に下記の関数を埋め込むことで連続したデータを取得することができます。
=XLOOKUP($A2,氏名ランキング!$A:$A,氏名ランキング!$B:$D,”データなし”,0)


皆さんも最近はXLOOKUPを使用していることと思います。
では、氏名カナとランキングの離れたデータを取得したい場合はどうしたら良いでしょうか。
(氏名英字は取得しない)

-離れた列のデータ取得

今回、一番話したかったのは、この離れたデータの取得についてです。
XLOOKUP関数とCHOOSECOLS関数を組み合わせて使うことで簡単に取り出すことができます。
氏名カナの列に下記の関数を埋め込むことで離れたデータを取得することができます。
=XLOOKUP($A2,氏名ランキング!$A:$A,CHOOSECOLS(氏名ランキング!$A:$D,{2,4}),”データなし”,0)

「CHOOSECOLS(氏名ランキング!$A:$D,{2,4})」で「氏名ランキング」シートのA列からD列のうち、
2番目と4番目を取得していることになります。

-おわりに

長い間、VLOOKUPを使っていたためか、XLOOKUP関数で連続する列データが取得できることに気づかず、VLOOKUPと同じような使い方をして1列ずつデータ取得して、たくさん関数を埋め込んみExcelを重くしていました。
また、CHOOSECOLS関数と組み合わせることで離れた列のデータも取得できることを知り、驚きでした。

CHOOSECOLS関数だけではなく、INDEX関数と組み合わせても取得することができます。
Excelが重くならないように皆さんも工夫してみてください。

Recommendおすすめブログ