いてづきブログ

情シスでやってみたことの備忘録

vlookupとindex,match

vlookup関数はエクセルで特定のキーからその行の別の列の値を取得する関数だけど、検索対象列の右の列しか取得することができない。

例えば、下のような感じのエクセルがあるとする。

 

社員コード 名前 メール
1000 ほげたもげお hoge@moge.jp

 

ここで、社員コードから名前を取得することはvlookupでできる。

=vlookup(1000, A2:C2, 2 ,FALSE)

A2:C2が検索対象の表そのもので、その次の2がその表の左から2列目(Aから数えて2列目、この場合はB)を表す。

 しかし、メールから社員コードや名前を取得することはできない。

 メールから社員コードを取得する場合は以下のように書く。

=index(A:A,match('hoge@moge.jp',A:A,0))

 

これで「hoge@moge.jp」に対応する「1000」が取得できる。

 

 

Googleスプレッドシートでも使えたので、GoogleAppsのフォームで取得したメールアドレスを使って、別シートに用意したマスターから名前等の情報を拾うといった使い方もできそう。