経理で役立つエクセル講座
*手作りVLOOKUP関数*
みなさん、こんばんは。ねむねむ講座のお時間です。最近、熟睡
出来ていますか。ビタミンB12には睡眠と覚醒のリズムを整えて
くれる働きがあるそうですよ。ねむねむのみなさん、アサリ生活
を始めてみませんか。それでは、本日もエクセル講座を始めまし
ょう。エクセル講座バックナンバー「*関数を使ってみよう!
(6)*」は、よっしー先生の力作!「VLOOKUP関数」を取り扱っ
ています。VLOOKUP関数とは、「検索値」に指定した値を「範囲
」に指定した表の「左端」で探し、該当する行中の「列番号」で
指定した列からデータを取り出す関数でした。そして検索値に該
当するものが、検索囲の左端になければならないという制約があ
りましたね。この欠点をMATCH関数とINDEX関数の組合せにより
克服することができますので、プチッとお伝えいたします。
下記の販売価格(E列)に該当するものを商品リストから検索し
、該当する商品名をF列に表示させます。
【商品リスト】
------------------------------------------------------------
A B C
1 商品番号 商品名 販売価格
2 N001 ねむねむ枕 3200
3 N002 ねむねむアイマスク 1500
4 N003 ねむねむ耳栓 650
------------------------------------------------------------
【販売価格(E列)に該当する商品名を表示させたい】
------------------------------------------------------------
E F
1 販売価格 商品名
2 1500 F2
3 650 F3
4 3200 F4
------------------------------------------------------------
まずMATCH関数により検索値と一致するものが、検索範囲内で
先頭から何番目の行に位置しているかを表示させます。引数は「
検索値」「検索範囲」「照合の型(0=検索値と完全一致、1=検索
値以下で最も近い数値、-1=検索値以上で最も近い数値)」です。
F2=「MATCH(E2,C1:C4,0)」と入力すると、「1500」はC列「販売
価格」「3200」「1500」という具合に3行目に位置していますから
、「3」を返します。次にINDEX関数により範囲の中から指定し
た位置にあるデータを表示させます。INDEX関数の引数は「範囲
」「行番号」「列番号」です。今回はE列の販売価格に該当する商
品名を商品リストから探して表示させるわけですから、「範囲」に
は商品リスト「A1:C4」を選択し、「行番号」にはMATCH関数が返す
検索値の位置情報(範囲の先頭から3番目)「MATCH(E2,C1:C4,0)」
、「列番号」には「商品名」を表示させたいわけですから「2
(選択した範囲のうち左から2番目の列)」を入力します。
つまりF2=「INDEX(A1:C4,MATCH(E2,C1:C4,0),2)」となります。
あとは範囲を絶対参照、検索値を相対参照にして、F3、F4に
コピー(F3=「INDEX($A$1:$C$4,MATCH($E2,$C$1:$C$4,0),2)」)
すれば出来上がりです。「データを加工して検索値を左端に配置
し、VLOOKUP関数を使ったほうか容易では?」と思った貴方、
「ごもっとも!」しかし関数の組合せ次第で、貴方の必要に応じ
たオリジナル関数を作ることが出来るかもしれません。そんな可
能性があるところもエクセルの面白いところです。是非、貴方の
オリジナル関数を考えてみて下さい。それでは本日はここまで。
ねむねむ。
出来ていますか。ビタミンB12には睡眠と覚醒のリズムを整えて
くれる働きがあるそうですよ。ねむねむのみなさん、アサリ生活
を始めてみませんか。それでは、本日もエクセル講座を始めまし
ょう。エクセル講座バックナンバー「*関数を使ってみよう!
(6)*」は、よっしー先生の力作!「VLOOKUP関数」を取り扱っ
ています。VLOOKUP関数とは、「検索値」に指定した値を「範囲
」に指定した表の「左端」で探し、該当する行中の「列番号」で
指定した列からデータを取り出す関数でした。そして検索値に該
当するものが、検索囲の左端になければならないという制約があ
りましたね。この欠点をMATCH関数とINDEX関数の組合せにより
克服することができますので、プチッとお伝えいたします。
下記の販売価格(E列)に該当するものを商品リストから検索し
、該当する商品名をF列に表示させます。
【商品リスト】
------------------------------------------------------------
A B C
1 商品番号 商品名 販売価格
2 N001 ねむねむ枕 3200
3 N002 ねむねむアイマスク 1500
4 N003 ねむねむ耳栓 650
------------------------------------------------------------
【販売価格(E列)に該当する商品名を表示させたい】
------------------------------------------------------------
E F
1 販売価格 商品名
2 1500 F2
3 650 F3
4 3200 F4
------------------------------------------------------------
まずMATCH関数により検索値と一致するものが、検索範囲内で
先頭から何番目の行に位置しているかを表示させます。引数は「
検索値」「検索範囲」「照合の型(0=検索値と完全一致、1=検索
値以下で最も近い数値、-1=検索値以上で最も近い数値)」です。
F2=「MATCH(E2,C1:C4,0)」と入力すると、「1500」はC列「販売
価格」「3200」「1500」という具合に3行目に位置していますから
、「3」を返します。次にINDEX関数により範囲の中から指定し
た位置にあるデータを表示させます。INDEX関数の引数は「範囲
」「行番号」「列番号」です。今回はE列の販売価格に該当する商
品名を商品リストから探して表示させるわけですから、「範囲」に
は商品リスト「A1:C4」を選択し、「行番号」にはMATCH関数が返す
検索値の位置情報(範囲の先頭から3番目)「MATCH(E2,C1:C4,0)」
、「列番号」には「商品名」を表示させたいわけですから「2
(選択した範囲のうち左から2番目の列)」を入力します。
つまりF2=「INDEX(A1:C4,MATCH(E2,C1:C4,0),2)」となります。
あとは範囲を絶対参照、検索値を相対参照にして、F3、F4に
コピー(F3=「INDEX($A$1:$C$4,MATCH($E2,$C$1:$C$4,0),2)」)
すれば出来上がりです。「データを加工して検索値を左端に配置
し、VLOOKUP関数を使ったほうか容易では?」と思った貴方、
「ごもっとも!」しかし関数の組合せ次第で、貴方の必要に応じ
たオリジナル関数を作ることが出来るかもしれません。そんな可
能性があるところもエクセルの面白いところです。是非、貴方の
オリジナル関数を考えてみて下さい。それでは本日はここまで。
ねむねむ。
掲載日:
※本コラムに掲載されている情報は、掲載した時点での情報です。
弊社は掲載された内容に関し、如何なる保証もするものではありません。
また、記載されている事項は変更される場合がありますので、予め御承知おき下さい。
弊社は掲載された内容に関し、如何なる保証もするものではありません。
また、記載されている事項は変更される場合がありますので、予め御承知おき下さい。