SUMPRODUCT関数を使った検索

December 15, 2008,
tags: excel sumproduct関数 検索


このエントリーをはてなブックマークに追加

ひさしぶりにExcelを使って面白いことをしたので、メモしておきます。
SUMPRODUCT関数を利用して、特定のリストから完全一致検索を行うというものです。
ちょっと父親が作るExcelよりも上を行くものになったような気がしますwwwwww

とりあえず、サンプルの画像を見てください。

B4:E23までのリストがあります。
I3にメールアドレスを入力したらE4:E22間での中に、I3に入っている値があるか判定をしあった場合は「リストに存在します」ない場合は「リストに存在しません」と表示するようにします。

結構VBAを使えば簡単ですが、あえてそこは使わない方向で作っています。

これも結構簡単でSUMPRODUCTの特性を生かしているのかなーって感じです。
関数を使うのは一箇所のみ。J3のみです。

こんな感じに入力してください。

=1,"リスト存在します","リストに存在しません"))

まず最初にI3に入力があるかをIF文で判定します。
入力値があった場合に、またIFを入れて、条件式にSUMPRODUCT関数を使います。SUMPRODUCT関数ではメールアドレスが入力されている列E4:E23のなかにI3があるか?というのを書いてあります。もしI3の値があればその値の数だけ返ってきます。なければ0、ただし、この辺は自分も詳しくないのですが、なぜかそのあとに1を掛けてあげないといけない。若干その辺がポイントだったりします。
もし0の場合は偽のほうの条件に入ります。0以外なら真のほうの条件式にはいるというわけです。
あとはそれぞれの条件のところに表示するメッセージを書いておけばいいのです。

これは簡単なものですが、これを応用すると結構便利なものができるのではないかと思います。

実は完全一致の検索は20歳のころやってたバイトで作りたかったんだけど断念していました。
今日たまたま30分ぐらいで出来てしまいました。
そりゃもう大興奮ですよ。

ただ、もっと正しいやりかたとか良いやり方があると思うので、誰か教えてください。

いちおサンプルファイル公開しておきます。
sumproduct_sample

comments powered by Disqus