蝸牛の歩み

蝸牛の如く,ゆっくりでも着実に前へ・・・

excelで“表引き”

以前からデータベースソフトでいうところの「表引き」がExcelでやりたかったのだけど、一念発起して調べてようやくできるようになった。使う関数はlookupとかvlookupかと思っていたけど、「和名から学名を引っぱってきたい」といった目的にはmatchとindexを使うとよいようだ。

入力中のシート

A B C D
1 和名 学名 採集地 採集日
2 ホゲホゲ 入力したいセル

タクサ辞書.xls

A B
1 学名 和名
2 Example hogehoge ホゲホゲ
3 Example fugafuga フガフガ

=INDEX('[タクサ辞書.xls]Sheet1'!$A2$:B$1000, MATCH(A2, '[タクサ辞書.xls]Sheet1'!$B$2:$B$1000, 0), 1)

MATCH関数は、タクサ辞書.xlsのB2-B1000の範囲で、A2(ホゲホゲ)に一致するセルの相対的な位置(1)を返してくれる。第3引数(照合の型)に0を指定しているので、完全一致で検索。
INDEX関数は、タクサ辞書.xlsのA2-B1000の範囲で、行と列の位置を指定して(行はMATCH関数の結果である1、列1)、セルの値を返してくれる(Example hogehoge)。