• ベストアンサー

EXELでの組み合わせ検索

EXCELを想定してください。 3行目から30行目のA列からG列まで、各行毎に色々な文字がインプットされています。同じものがインプットされてることもありえます。 例えば、 3行目には AA AB BR NN NM AA BB 4行目には NN AA BB AC AA XP NM といったように。 一方、H1:J1 に 検索すべき組み合わせが指定されますと、その組み合わせのある行についてのみ、該当行ののHセルに 1 と記入され、そうでないときには空白にしたいのです。 例えば、上記の場合に、 H1:J1には AA AA AC と設定されれば、この組み合わせのある行は4行目ですから、 H3 は空白で H4 は 1  と記入するという具合に。 H列の各行にはどういう関数を入れればいいかお教えください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 とりあえず、どこかのセルに H1:J1 の文字列の個数を表示させます。 どこでもいいのですが たとえば H2セルに↓の数式を入れてください。 ------------------------------------------ =COUNTIF($H$1:$J$1,H1) ------------------------------------------ ↑の数式を J2までコピーしてください。 H2:J2 に H1:J1 のそれぞれの文字列の個数が表示されます。 H3 に↓の数式を入れてください。 ------------------------------ =IF((COUNTIF(A3:G3,$H$1)=$H$2)*(COUNTIF(A3:G3,$I$1)=$I$2)*(COUNTIF(A3:G3,$J$1)=$J$2),1,"") ------------------------------ 以下、データのある行まで下にオートフィルで数式をコピーしてください。 ◆確認ですが‥ 提示された例で言いますと、"AA" の文字列が 3個あって "AC" も含む行はどうなるのでしょうか? そのような場合も "1" と表示させる場合は 上の H3 の数式を↓のようにしてください。 ------------------------------ =IF((COUNTIF(A3:G3,$H$1)>=$H$2)*(COUNTIF(A3:G3,$I$1)>=$I$2)*(COUNTIF(A3:G3,$J$1)>=$J$2),1,"") ------------------------------

mgrA3
質問者

お礼

素晴しい回答をありがとうございました。 とりあえず確認して御礼まで。 まだなぜできるのか理解できていませんので、これから式の意味を勉強いたします。

mgrA3
質問者

補足

実は数千にも上る数の化学物質と構造式の図表がありまして、その中から各種置換基と基本構造を指定して、該当する化合物を探し出すようにしたかったのです。 お聞きした方法で可能になりそうです。 お礼の欄の跡ですがこの欄を借りて勉強と理解が出来たことを報告します。 COUNTIFそのものとかアスタリクスの組み合わせとか充分分かりました。まだまだ未熟なのを自覚しました。 ありがとうございました。

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

No.2です。 あまり他の回答にレスをするのはよくないのかも知れませんが。 No.3の方の回答だと、H1:J1が、 「AA、AC、AC」 「AC、AC、AC」 「AA、AA、AA」 の場合も全て、「1」になってしまいますよ。

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.3

例えば、H4セルに以下の式を入力します。 =IF(COUNTIF(A4:F4,$H$1)*COUNTIF(A4:F4,$I$1)*COUNTIF(A4:F4,$J$1),1,"")

mgrA3
質問者

お礼

No1お答えとあわせて勉強させてもらいました。ありがとうございました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 H3に、 =TEXT(--(LEN(A3&B3&C3&D3&E3&F3&G3)-LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3&"_"&B3&"_"&C3&"_"&D3&"_"&E3&"_"&F3&"_"&G3,$H$1,"",1),$I$1,"",1),$J$1,"",1),"_",))=LEN($H$1&$I$1&$J$1)),"0;;;") と入力して、下の行へコピーします。

mgrA3
質問者

お礼

ありがとうございました。 こういうのを思いつかれるってすごいですね、感心します。

関連するQ&A