【Excel】複数条件のデータが存在するか確認したい【SUMPRODUCT編】
検索とかで、FindとかVLOOKUPとかMATCHとか見ててふと、
「複数の組み合わせを持つデータが存在するかどうかはどうやって確認するんだろう?」
と思ったので、少し調査。
ものすごく雑な例を出すとこんな感じ。
こんな感じで似たような組のデータがあります。
左側と右側で比較すると、同じ組み合わせはありますが、違う組み合わせもあります。
この時、「左右どちらも含まれる組み合わせはどれか?」という確認がしたい、
というのが今回の条件です。
で、色々調べましたが、SUMPRODUCT関数に行き着きました。
参考にしたページ
Excel(エクセル)基本講座:SUMPRODUCT関数の使い方
SUMPRODUCT関数は、
・配列に対応する要素間の席を計算し、その和を返す
・複数条件の件数をカウントしたり、合計数を出せる ←ここがポイント
上記を参考に記述してみました。
一行目の関数式を書くとこんな感じ
=SUMPRODUCT(($A$1:$A$10=D1)*($B$1:$B$10=E1))
(以降下のセルはオートフィルで埋める)
一つ目は左組のアルファベット列の中で、D1(右組一番上のアルファベット)と同一である。
二つ目は左組の数値列の中で、E1(右組一番上の数値)と同一である。
この2つの式の論理積を取るわけですから、
右側を支点にして、「左側のアルファベットと左側の数値の組み合わせが同じ数を表示する」
ということになります。
出力結果としても、左側の組の中で、右側の組と同じ組み合わせなのは、
A-1(2つ)
B-1(1つ)
C-4(1つ)
E-5(2つ)
ということですね。
列が分かれた複数の組み合わせの中から、同じ組み合わせを抽出するときはSUMPRODUCT関数を使えば良さそうですね。
VBAも書いてるんですが、
VBAは性能を気にしながらコーディングしなきゃいけないらしいので、
コーディングするときは非効率なアルゴリズムは避けたほうがよさそうですね。
本買うならここら辺あたり買いたいなぁ。
入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス)
- 作者: 立山秀利
- 出版社/メーカー: 講談社
- 発売日: 2012/04/20
- メディア: 新書
- クリック: 19回
- この商品を含むブログ (8件) を見る
Excel VBA 本格入門 ~日常業務の自動化からアプリケーション開発まで~
- 作者: 大村あつし
- 出版社/メーカー: 技術評論社
- 発売日: 2015/05/16
- メディア: 大型本
- この商品を含むブログ (1件) を見る
【2017/10/24 追記】
同条件をCOUNTIFS関数を用いた場合どうなるか書きました。