dポイントプレゼントキャンペーン実施中!

エクセルのワークシート関数で質問です。
「A1セルに、文字列、A、B、Cの何れかを含み、かつCDを含まない」ことを調べる関数です。
素直に、
=AND(ISNUMBER(FIND("A",A1)),ISNUMBER(FIND("B",A1)),ISNUMBER(FIND("C",A1)),NOT(ISNUMBER(FIND("CD",A1))))
と長ったらしく書けば取得できることはわかるのですが、もっと簡潔なやり方がありそうな気がします。
どうか教えてください。

A 回答 (13件中11~13件)

こんばんは!



CDがなく、A・B・Cのいずれかがある場合は「TRUE」
それ以外の場合は「FALSE」としてみました。

=IF(NOT(ISNUMBER(FIND("CD",A1))),IF(OR(ISNUMBER(FIND({"A","B","C"},A1))),TRUE,FALSE),FALSE)

あまり短くなっていませんが
こんなんではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。
勉強になりました。

お礼日時:2012/10/06 20:28

どうしても長くなってしまうような気がします.例えば



=AND(COUNTIF($A$1,"*A*")+COUNTIF($A$1,"*B*")+COUNTIF($A$1,"*C*")>0,COUNTIF($A$1,"*CD*")=0)

のように.
    • good
    • 0
この回答へのお礼

ありがとうございます。
勉強になりました。

お礼日時:2012/10/06 20:10

>素直に、


>=AND(ISNUMBER(FIND("A",A1)),ISNUMBER(FIND("B",A1)),ISNUMBER(FIND("C",A1)),NOT(ISNUMBER(FIND("CD",A1))))
>と長ったらしく書けば取得できることはわかるのですが、


=AND(ISNUMBER(FIND("A",A1)),ISNUMBER(FIND("B",A1)),ISNUMBER(FIND("C",A1)),NOT(ISNUMBER(FIND("CD",A1))))

ではなく、

=AND(OR(ISNUMBER(FIND("A",A1)),ISNUMBER(FIND("B",A1)),ISNUMBER(FIND("C",A1))),NOT(ISNUMBER(FIND("CD",A1))))

ではないでしょうか。

 条件が3つか4つ程度でしたら、そのまま長ったらしく書かれても宜しい様な気も致しますが、例えば次のような方法も御座います。

=AND(SUMPRODUCT(ISNUMBER(FIND(INDEX({"A","B","C"},ROW(INDIRECT("Z1:Z3")),),A1))*1),ISERROR(FIND("CD",A1)))
    • good
    • 0
この回答へのお礼

> ではないでしょうか。

ご指摘の通りです。
ありがとうございました。
回答のほうも勉強になります。

お礼日時:2012/10/06 20:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!