DXR165の備忘録

自分用の備忘録です。

Excel での表引きワークシート関数  

Excel での表引き というと社員コードから社員名を取得するみたいなことですが、これを実現する関数はいくつかあります。

VLOOKUP
実務でもっともよく使います。1つの一意なコードからそのレコードの1フィールドを取得する場合に使います。

=VLOOKUP(J3,$A$2:$B$8,2,FALSE) 
備考
検索キーがない場合エラーがでる。 
検索する列が一番左にないといけない。
検索キーが重複しないことが条件。
範囲にはタイトル行を含めない。

MATCH & INDEX
VLOOKUPより融通がきくが、式が複雑になる。いざ使おうとすると、なかなか使いづらい。

=INDEX(B2:B8,MATCH(E3,A2:A8,0))
備考
検索キーがない場合エラーがでる。
値を返す列はどこでもよい。
検索キーが重複しないことが条件。
範囲にはタイトル行を含めない。

DGET
検索条件を別途ワークシートに入力が必要です。そのため上記関数のように表形式に埋め込んで使えません。
備考
複雑な検索条件に対応できる。
条件に一致するデータが存在しないとエラーがでる。
条件に一致するデータが複数あるとエラーがでる。


使い物になるかどうか分からないですが、作ってみました。(趣味の世界)
複数列の検索条件に対応できる。
条件に一致するデータが存在しないとエラーが出るか、または、この計算式が参照表と同じ行にある場合、全く関係のない値が返される(この行の参照列の値が返される)。
条件に一致するデータが複数あると違う値を拾ったり、エラーがでる。

=INDEX(獲得列,SUMPRODUCT(
(検索列1=検索値1)*(検索列2=検索値2)*
(ROW(INDIRECT("1:"&ROWS(獲得列))))
)
)


範囲にはタイトル行を含めない。
検索値が1つの時は(検索列1=検索値1)*(検索列1=検索値1)にする。

検索列、獲得列はA2:A100のように列の範囲で指定する。
検索値はF5など検索値が入ったセルを指定する。

SUMPRODUCT 関数は共通部分参照が最初から無効なのでCtl + Shift + Enter は不要だそうです。
関連記事

category: Excel ワークシート関数

tb: 0   cm: 0

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://dxr165.blog.fc2.com/tb.php/3-bf73028e
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

最新コメント

カウンター(2012/3/10以降)