【Excel : match関数】リスト上のあるデータが何行目にあるか調べたい(行番号を取得)

Excel関数・VBA
match関数
スポンサーリンク

はじめに

どうも、nekoshan気ままブログです。

ExcelやVBAは自宅での家計簿や一般企業、はたまた病院でも業務のツールとして幅広く用いられています。

Excelなどの関数を調べる人は、本当に困っていたり、こういうことができたらもっと仕事が効率良くいくのになと思っているのではないでしょうか(私はそうでした)。

そのような方達のために、少しでも役に立つ情報を差し上げたいと思っています。

当記事を読みながら騙されたと思って実践すればできるようになりますよ。

Excelの環境について

今回使用した Office のバージョンは

・Microsoft Office Home and Business Premium で

・Microsoft® Excel® for Office 365 MSO

です

Excel関数に関してはあまりバージョンの差はないかと思います。

match関数とは

関数が初めての人はよくわからないと思いますが、

読んで字の如く match ( マッチ ) です。一致という意味です(笑)

よくそのままマッチするとか使いますよね。

Excelでも同様に同じ意味で用いられます。

目的の文字があるセルを探した時に、一定の範囲に探したい文字があった場合、

一致(マッチ)したとなり、答えを返します。

この答えというのは後述しますので、今は気にしなくて大丈夫です。

つまり、

任意の範囲内で、探したい文字と同じ文字を見つけてくれる関数です。

また、この関数は基本的に単独で使うことはあまりなく、他の関数と組み合わせて使う

ことが多いと思われます。

実際に私も単独で使ったことはなく組み合わせて使っています。

組み合わせるによく使う関数は、index関数や、sumproduct関数ですね。

ただ今回は単独で使っていきます。覚えるためにです。

ここからは、記事とExcelが同時に使えるように別端末か別画面で準備をしておくと学習しやすいと思います。

関数を試し打ちしてみる

関数を打つ時はまず 半角で =(イコール) と入力します。

そしてその後に 半角で match と打ちます。

そうすると下の画像のようになります。

次に  ( 「半角の左片カッコ」 を入力すると下の画像のようになります。

さて、表示が変わりました。

表示された MATCH(検査値, 検査範囲, [照合の種類]) の意味については次の項目で説明します。

入力したものは「Delete」キーか「Back Space」キーで一旦全て消してください。

match関数の中身について

検索値、検査範囲、照合の種類 とは何なのかを簡潔に説明します。

  検査値: 検索したい値 のこと

 検査範囲: 検査をする範囲 のこと

照合の種類: 検索したい文字と完全に一致するの文字を検索するかそうでないかを決める

これについてはピンとこないと思いますので、実際の例を見ながら説明していきます。

準備

本と値段が一覧にされたリストがあるとします。

企業でもなんでも住所や取引先、商品などをリスト化したExcelがあると思います。

実際に使うことを想定して作っていこうと思います。

下の画像の表を使っていきます。

match関数でしたいこと

  • 書物のリストから「ゲノム工学の基礎」が書いてあるセルの位置を探す

です。

リストの行が少ないので、4行目にあるじゃねーかというのはわかっていますが、

何千行の中から探すのはめんどくさいですよね?

では、はじめます

どこかにこれらの書物を入力するセルを決めます。

今回は近くのセルにしますが、別のシートに決めても大丈夫です。

検索する書物の欄には探したい書物を入力するようになります。

プルダウンという機能を使うことで入力を省くこともできます。

次に探した結果を表示するセルを決めますが、ここに match関数を入れます。

結果を表示するセルも任意で好きなセルの場所で構いません。

今回は検索する書物の下に置きます。
(見やすくするためD列のセル幅を狭くし、E列のセル幅を広くしました)

まだ、関数は何も入れておりません。

が、上の画像の赤枠(関数挿入欄)に関数を入れていきます。

始めのうちはこの欄に入れたほうが良いと思います。

セルに直接書くこともできますが慣れていないと書いてる途中で選んだセル番地がズレたり、

エラーが出てびっくりしてしまうと思いますので。

前述したように関数を入れていきますと、下記画像と同じになると思います。

そして、検査値を入れます

ここには検索したい値を入力するのですが、先ほど入力欄は作りましたので

そのセル ( 隠れて見えませんがE3セル ) をマウスを使って選択します。

または、「 E3 」と入力しても大丈夫です。

検索する書物を入力するセルが破線で囲ってあればOKです。

セルを選択したら , 「半角のカンマ」 を入力します。

半角のカンマを入力すると、先程の破線が実線に代わり、

match関数の項目が検査値から次の、検査範囲 に移ったのが分かると思います(赤枠)。

カンマを入力したその流れでそのまま次に検査範囲を入れていきます。

検査範囲は、当然書物の中から探しますので、書物の書かれているセルの範囲を

マウスを使ってドラッグアンドドロップしながら選択をします。

B1セルの「書物」と書かれたセルは範囲に入れなくて大丈夫です。

それは見出しですから。

つまり、「細胞診」から「基礎有機化学」までをドラッグアンドドロップすればいいわけです。

セルB2 から セルB11 までです。「 B2:B11 」と入力しても大丈夫です。


「:」コロン

連続した複数範囲を指定したい時はこのマークを使います。

選択する位置までドラッグしたらドラッグするのをやめて、半角のカンマを入力します。

そうすると下の画像のようになると思います(画面を切り替えたら表示は消えるかもしれません)。

次は 照合の種類ですが、

今回は 
書物のリストから「ゲノム工学の基礎」が書いてあるセルの位置を探す

であり、検索する書物に入力する文字はぴったり一致する文字を入力しますので

「完全一致」を表す 0 を入力します(上の画像の赤枠)。

0 を入力したら ) 「半角の右片カッコ」を入力して関数自体は出来上がりです。

このような数式が完成すると思います。

=MATCH(E3,B2:B11,0)

そして「Enter」キーを押すと、下の画像になると思います。

関数の結果が、「 #N/A 」と出ています(上の画像の赤枠)。

これは、数式の中で参照するが対象が見つからないというエラーです。

参照する対象というのは、この場合、検索する書物を入力するセルということです

そこに何も入力していないので、結果的に答えが出ませんでしたというエラーです。

ですので、検索する書物のセルに、検索する書物を入力すれば答えが出ます。

検索する書物は「ゲノム工学の基礎」ですね。

これを入力(青枠)すると下の画像になります。

結果がきちんと出てくれました。

答えは  です(赤枠)。

は? と思った人、いますよね? 絶対

ですが、これがmatch関数で出せる答えです。

この  の解釈は 検査範囲の中で3つ目に検索した書物があります

これを相対位置という解釈になります。

検査範囲は「細胞診」から「基礎有機化学」ですので

細胞診は1行目ですよね? そうすると「ゲノム工学の基礎は」3行目ですよね?

だから、match関数の答えは  なんです。

match関数についての基本はここまででです!

Excelの端っこの行番号とmatch関数の結果を合わせたい場合は、次にお伝えしますので、もう少し読み進めて下さい。

Excelの行番号とmatch関数の結果を合わせたい

方法① シートの一番上のセルから検査範囲に含める

一番手っ取り早い手段です。

B4から始まっていた範囲をB1からに変更をする手段です

方法は関数挿入欄をクリックして、B4の4 を消して 1 に書き換えるでもいいですし、

範囲選択中の赤い枠の端っこにマウスのカーソルを合わせて上に引き延ばすでもいいです。

カーソルが両矢印になったらドラッグします。

こうすることで、シートの一番上から検索してくれるため、何行目かが分かるようになります。

答えとしては6行目になり、Excelの行番号と関数の結果が合いました。

方法② match関数の解に足し算をする

2つ目の方法が、表の空いている行数を足してあげることで、Excelの行番号の位置を出す方法です。

ただ、これにも制約はありまして、

表より上の行が増えないことが前提となります。

今上は3行分ありますね

ですので、

=MATCH(E5,B4:B13,0) +3

としてやるわけです。

そうすることで答えが何行目を指しているかが出るようになります。

シートの上から数えて、6番目に「ゲノム工学の基礎」がきていることが分かると思います

注意事項

同じ文字が範囲内に含まれている場合

検査範囲にもし「ゲノム工学の基礎」が2か所あった場合はどうなるでしょうか?

答えは

3 です。

これはmatch関数で注意しなくてはいけないことです。

同じ文字が複数、同一範囲内にある場合は、

match関数はは上から降りるように検索しますので、最初に一致した値の場所(行)しか答えとして返してくれないということです。

この問題点について、2か所目の位置のみを返す場合や、両方の位置を返させることも可能です

しかし、今回は量が多くなるため、別記事にて紹介したいと思います。

まとめ

全て読んできたは方はわかると思います

match関数とは

任意の範囲内で、探したい文字と同じ文字を見つけてくれる関数です。

match関数を構成する要素は

  検索値: 検索したい値 のこと

 検査範囲: 検査をする範囲 のこと

照合の種類: 検索したい文字と完全に一致するの文字を検索するかそうでないかを決める

注意事項

・返す値は範囲指定した中での位置を返す
・範囲内に同じ文字列がある場合は検索順に上から早いものしか返してくれない

今回はmatch関数と注意事項について紹介しました。

また、他の関数との組み合わせなども随時紹介していこうと思います!

いかがだったでしょうか、関数の習得は反復練習ですので、何度も読んで習得しましょう。

タイトルとURLをコピーしました