【個人的に好きなExcel関数】みんな大好き?!ROW関数とVLOOKUP関数をご紹介します!!
聞き流し用動画(YouTube)
はじめに
マイクロソフト社のExcelは、誰でもご存知の表計算ソフトです。
これをワープロ感覚で利用されている方も少なくはないと思います。
しかし、Excelは表計算ソフトです。
計算が得意なアプリケーションとなっています。
このExcelは、単純に足し算や引き算を行う物ではなく、実装されている関数により、特別な計算式を組み込む事ができます。
今回は、よく利用するExcel関数の中で「ROW関数とVLOOKUP関数」をご紹介致します。
人によっては、「役にも立たない」と思われるかも知れませんが、「新しい発見」があるかも知れません。
そして、大変申し訳ありませんが、関数の詳細な使い方については、ご自身でお調べ頂きたいと思います。(もちろん、ご紹介する関数は、検索をすれば使い方が分かる物に限っております。)
ROW(ロウ)関数
「ROW関数」は、セルの行番号を求める関数となっています。
=ROW(引数):引数に指定したセルの行番号を求める。(引数を未入力とした時は、そのセルの行番号が求まる)
このROW関数を使用する場面ですが、例えば一覧表を作成したとします。
そして、表の行ごとにナンバリングをする際に、この関数を使用します。
すると、わざわざ行番号の入力をしなくても自動的にナンバリングがされます。
1行目にタイトル、2行目以降が表となっている場合、タイトルとなっている1行目を引く事により、ナンバリングが可能となります。
=ROW()ー 1:セルの行番号から「1」を引いた値。

なお、ROW関数は行番号を求める関数ですが、列番号を求める関数もあり、これは「COLUMN(カラム)関数」となります。
=COLUMN(引数):引数に指定したセルの列行番号を求める。(引数を未入力とした時は、そのセルの列番号が求まる)
ROW関数は表を作るたびに利用していますが、COLUMN関数についてはあまり利用する機会はないかと思います。
しかし、VBAにてプログラミングを行う際は、この「ROW」と「COLUMN」といわれる、「セルの位置情報を把握する為のキーワード」は、非常に重要となります。
利用機会が少なくても、「行=ROW」「列=COLUMN」は覚えておきましょう。
VLOOKUP(ブイ・ルックアップ)関数
「VLOOKUP関数」は、検索値をセルによる検索範囲から見つけて、検索された行のセルの情報を取得する関数となっています。
VLOOKUP関数はExcelを利用する職場では、大人気の関数なのではないでしょうか?
=VLOOKUP(検索値, 検索範囲, 列番号, [検索の型]):検索値を検索範囲から検索し、同一行の列のセルより値を取得。
一見、引数が複雑に見えるのですが、分かり辛くさせているのが「検索範囲」だと思います。
検索範囲は、「セルで選択した範囲」と理解をして下さい。
違うBookでも、ちがうSheetでも指定は可能です。

そして、「検索範囲」の一番左のセルが「検索対象(キー情報)」となります。
検索結果となる「列番号」は、「検索値」を「検索対象」から見つけ、その行のなかで、「検索対象から右に数えた数」となります。

「列番号」を「1」とすれば、「検索対象」をそのまま取得する事も可能です。
「検索範囲」の列が非常に長い場合、この「列番号」を数える事が困難となりますので、「検索用の情報」として、別に作成をしても良いでしょう。
オプションとなっている、「[検索の型]」ですが、これは「近似値」を取得する「True」と「完全一致」を取得する「False」があります。
検索を行う事が目的ならば、「False」を設定して下さい。
そして、「False」を使用した場合、問題になるのが「#N/A(ノーアサイン)」エラーです。
例えば、予めVLOOKUP関数を設定しておきたい場合など、まだ「検索値」の入力がない状態では「#N/A」が表示されてしまいます。

これを避ける為に、数式が少し長くなってしまうのですが、「IF(イフ)関数」と「ISERROR(イズ・エラー)関数」を組み合わせて、「#N/A」などの「エラーが発生する関数については空白」とするようにします。
=IF(論理式,真の数式,[値の数式]):論理式が真の時は真の数式、論理式が偽の時は偽の数式 ・・・
=ISERROR(値):値がエラーの時TRUE、それ以外の時はFALSEを返す。
=IF(ISERROR(VLOOK関数),””,VLOOK関数):VLOOKUP関数の結果が「#N/A」の時は空白、VLOOKUP関数の結果が「#N/A」でなければ、その検索結果を取得。(真の時が#N/Aの数式となるので分かり辛いですね)

最後に、VLOOKUP関数を使用する際、「検索値」や「検索範囲」をセルで指定しますが、この時は「$」を指定して、コピーなどによって、セル番号が変わらない様にしてください。(絶対位置で指定)
相対位置の指定の例 A1
絶対位置の指定の例 $A$1
セルA1に「相対位置 A1」が指定されている時、セルA1をセルB1にコピーをすると、セルの内容は「B1」となります。
セルA1に「相対位置 A1」が指定されている時、セルA1をセルA2にコピーをすると、セルの内容は「A2」となります。
セルA1に「相対位置 A1」が指定されている時、セルA1をセルD10にコピーをすると、セルの内容は「D10」となります。
相対位置でセルの内容を指定し、コピーや移動を行うと、それに合わせてセルの内容が変化してしまいます。
これを防ぐのが「絶対位置」となります。
「絶対位置」を指定する事により、指定したセルの内容に変化が起こらない様にします。
なお、「絶対位置」の指定で、「$A1」とすれば、列は固定され、行のみが変化をします。
「A$1」とすれば、列は変化し、行が固定されます。
VLOOKUP関数にて、別のBOOKを指定している時や、そのBOOKにパスワードが設定されている場合は、「外部リソースへのリンクの確認のポップアップ」、「パスワード入力のポップアップ」が表示されます。

simacatより一言
VLOOKUPは、特に頻繁に利用するExcelの関数です。
もし、ご存知ない様でしたら、大いにご活用いただければと思います。
また、もう少し複雑な検索を行いたい場合もあります。
その場合、VBAを研究されるのは、もちろん良い事なのですが、「配列数式」という物があります。
少々、Excelの処理が重くなってしまうのですが、複合条件の組み合わせが可能なので、VBAの研究をされる前に、「配列数式」についても調べてみては如何でしょうか?
Excelを活用して、お仕事の生産効率を上げて頂ければと思います。
コメント