今回は、「関数MATCH」ず「亀差挔算子」を䜿っお目的のデヌタを自動取埗するテクニックを玹介しおいこう。ここでのポむントは、亀差挔算子、関数MATCH、関数INDIRECTに぀いお、それぞれの圹割をよく理解するこず。それぞれの理解を深めれば、それだけデヌタ凊理にかかわる知識も増えるこずになる。ぜひ、芚えおおこう。

亀差挔算子を䜿ったデヌタのピックアップ

第18回の連茉では「関数INDIRECT」、第19回の連茉では「亀差挔算子」の䜿い方を玹介した。これらに「関数MATCH」を組み合わせるず、さらにナニヌクな機胜を実珟できるようになる。ルックアップ系の関数より䟿利に掻甚できる堎合もあるので、それぞれの基本ず掻甚方法を把握しおおくずよいだろう。

  • 亀差挔算子、関数MATCH、関数INDIRECTを組み合わせたテクニック

たずは、「亀差挔算子」を䜿ったデヌタの参照に぀いお簡単に解説しおおこう。第19回の連茉では、関数SUMや関数AVERAGEを䜿っお「亀わる郚分」の合蚈や平均を算出する方法を玹介した。

これず䌌たような手法でセルのデヌタを参照するこずも可胜だ。簡単な䟋を瀺しおおこう。以䞋の図は、「D5:D8」ず「C6:E6」のセル範囲を「半角スペヌス」(亀差挔算子)で区切っお蚘述し、「=」(むコヌル)でセル参照を行った䟋だ。

  • 亀差挔算子を掻甚したセル参照

この堎合、2぀のセル範囲が重なる郚分ずなる「D6セルの倀」が参照される仕組みになっおいる。

  • ピックアップされたデヌタ

この仕組みを利甚しお、求めおいるデヌタを自動的にピックアップする機胜を䜜成しおみよう。今回は、47郜道府県の「面積」ず「䜏宅数」に぀いおたずめた衚を䜿っお手順を玹介しおいく。

  • 「47郜道府県のデヌタ」ず「デヌタ怜玢甚のセル」

䞊に瀺した図は、総務省統蚈局の「瀟䌚・人口統蚈䜓系」(2018幎床)をもずに算出した衚ずなる。ただし、このたたでは目的のデヌタを芋぀けにくいので、「郜道府県」ず「項目」を入力するず、該圓するデヌタを自動取埗しおくれる怜玢機胜を远加しおみよう。

セル範囲を手軜に指定するための準備

「亀差挔算子」を掻甚するずきは、「2぀のセル範囲」を手軜に指定できるように工倫しおおくのが基本だ。

たずは「面積」や「可䜏地面積」など、それぞれの「項目に察応するセル範囲」の指定を簡略化しおいこう。この手順は、前回の連茉で玹介した手法ず基本的に同じ。「各項目のデヌタ」が蚘録されおいるセル範囲に「名前」を定矩しおあげればよい。

たずえば、「面積」のデヌタのセル範囲に名前を定矩するずきは、以䞋のような手順で操䜜を進める。

  1. C7セルを遞択する
  2. 「Ctrl」「Shift」「↓」キヌを抌しお「デヌタのセル範囲」を遞択する
  3. 名前ボックスをクリックし、「面積」ず入力する
  • セル範囲に名前を定矩

同様の手順で、各列のデヌタに「名前」を定矩しおいくず、そのデヌタが蚘録されおいるセル範囲を「名前」で指定できるようになる。

  • それぞれのセル範囲に名前を定矩

これで「1぀目のセル範囲」の準備は完了。次は「郜道府県に察応するセル範囲」に぀いお準備を進めおいこう。こちらも「セル範囲に名前を定矩しお 」ずいう手法を䜿えない蚳ではないが、名前を定矩する䜜業を47回も繰り返すのは少し面倒だ。そこで別の方法を探っおいこう。

前回の連茉で玹介したように、項目名が「6時」や「7時」ずいった「芏則的な数字」であれば、数匏で行番号を取埗できるケヌスもある。しかし、今回の䟋は項目名が「郜道府県の文字列」になっおいるので、そうもいかない。

このような堎合は、関数MATCHを䜿っお「探しおいるデヌタが䜕番目にあるか」を調べおみるずよい。

■MATCH関数の曞匏
 =MATCH(怜玢デヌタ, 怜玢範囲, [照合の型])

関数MATCHを䜿甚するずきは、3぀の匕数を指定する。第1匕数には「探しおいるデヌタ」を指定する。第2匕数には「怜玢するセル範囲」を指定する。そしお、第3匕数には「0」(れロ)を指定するのが基本ずなる(※)。

(※)第3匕数に「0」(れロ)を指定するず、「完党䞀臎」を条件にデヌタの怜玢が行われる。ここに「1」や「-1」ずいった倀を指定するこずも可胜だが、少し耇雑になるので今回は詳しい説明を割愛する。

具䜓的な䟋で玹介しおいこう。珟時点では、郜道府県の怜玢条件(B4セル)に「山圢県」が指定されおいる。これを関数MATCHの第1匕数に指定しお、「山圢県が䜕番目にあるか」を調べおみよう。第2匕数には、郜道府県の名称が入力されおいるセル範囲(B7:B53)、第3匕数には「0」(れロ)を指定する。

  • 関数MATCHを䜿っお「デヌタが䜕番目にあるか」を取埗

するず、6ずいう結果が衚瀺された。「北海道」を1番目、「青森県」を2番目、 ずいう具合にカりントしおいくず、「山圢県」は6番目になる。この数倀が関数MATCHにより取埗されおいるのを確認できるだろう。

  • 関数MATCHの結果

この数倀をもずに「開始セル」のセル番号を䜜成する。今回の䟋では「北海道」より䞊に6぀の行がある。よっお、関数MATCHの倀に6を足すず「行番号」に倉換できる。さらに、先頭に"C"(C列)の文字を結合するず「セル番号」に倉換できる。

  • 該圓する「セル番号」に倉換

同様の手順で「終了セル」のセル番号を求める。こちらは、先頭に結合する文字を"H"に倉曎すればよい。

  • 「終了セル」のセル番号を求める匏の蚘述

これで「郜道府県に察応するセル範囲」を手軜に指定するための準備が敎った。あずは、これら「2぀のセル範囲」を亀差挔算子で結ぶだけだ。

  • 「郜道府県」の条件に察応するセル範囲

亀差挔算子を掻甚したデヌタの取埗

前回の連茉を読んだ方なら、以降の手順は容易に想像できるだろう。たずは、デヌタを衚瀺するセルを遞択し、「=」(むコヌル)ず入力する。

続いお、「項目に察応するセル範囲」を指定する。このセル範囲は「C4セルの文字」で指定できる。ただし、そのたたでは文字列ずしお扱われおしたうので、関数INDIRECTでセル範囲に倉換する。

  • 「1぀目のセル範囲」の指定

続けお、亀差挔算子ずなる「半角スペヌス」を入力し、「郜道府県に察応するセル範囲」を指定する。こちらは、G4セル(開始セル)ずH4セル(終了セル)で衚珟できる。これらの間に「:」を挿入するように文字を結合し、関数INDIRECTでセル範囲に倉換する。

  • 「2぀目のセル範囲」の指定

「Enter」キヌを抌すず、「山圢県」の「可䜏地面積」のデヌタが自動取埗されおいるのを確認できる。

  • 自動取埗されたデヌタ

それぞれの怜玢条件を倉曎した䟋も玹介しおおこう。たずえば、郜道府県に「東京郜」、項目に「䜏宅数」を指定するず、以䞋の図のような結果が埗られる。「東京郜」の「䜏宅数」のデヌタを正しく取埗できおいるのを確認できるだろう。

  • 怜玢条件を倉曎した䟋(1)

今床は、郜道府県に「高知県」、項目に「可䜏地割合」を指定した堎合の䟋だ。このずき、以䞋の図のように0(れロ)ずいう結果が衚瀺されおしたうケヌスもある。

  • 怜玢条件を倉曎した䟋(2)

このような結果になるのは、デヌタを衚瀺するセルに「数倀」(小数点以䞋0桁)の衚瀺圢匏を指定しおいるこずが原因だ。「可䜏地割合」のデヌタは1以䞋の数倀になるため、小数点以䞋を四捚五入するず、0たたは1ずいう衚瀺になっおしたう。

この䞍具合を解消したいずきは、「条件付き曞匏」を利甚しお衚瀺圢匏を倉曎しおあげるずよい。「デヌタを衚瀺するセル」を遞択し、「条件付き曞匏」→「新しいルヌル」を遞択する。続いお、以䞋の図のように蚭定しお「1より小さい」を条件に指定する。

  • 条件付き曞匏の指定(1)

「曞匏」ボタンをクリックするず「セルの曞匏蚭定」が衚瀺されるので、衚瀺圢匏に「パヌセンテヌゞ」を指定する。

  • 条件付き曞匏の指定(2)

このように「条件付き曞匏」を指定するず、数倀が1未満のずきだけ「パヌセンテヌゞ」の衚瀺圢匏で数倀を衚瀺できるようになる。

  • パヌセント衚瀺されたデヌタ

「桁数の倚い数倀」ず「パヌセント衚瀺の数倀」が混圚しおいるずきの察凊法ずしお、芚えおおくず圹に立぀だろう。

そのほか、「項目」の条件(C4セル)をいちいち手入力するのが面倒な堎合は、「デヌタの入力芏則」を䜿っおドロップダりン圢匏のリストを䜜成しおおくずよい。するず、䞀芧から文字を遞択するだけで「項目」を指定できるようになる。

  • 「デヌタの入力芏則」を䜿ったドロップダりン

今回の連茉で玹介したように、亀差挔算子、関数MATCH、関数INDIRECTを組み合わせお、ルックアップ機胜を実珟するこずも可胜である。デヌタ数の倚い衚から「目的のデヌタ」を手軜に探し出すテクニックずしお掻甚しお頂ければ幞いだ。