こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

=IF(COUNTIFの文字列の複数条件

A列にある契約先にある特定の文字列が含まれていた場合、B列に1か2の値を返したいです。

A列に契約先 (株)○○、(有)○○、(同)○○、(独)○○、(財)○○、○○大学、(同)○○
B列に契約先の種類を1と2で区別して、1か2の値を返したいです。

調べた結果、IF COUNTIFだと文字列の条件は一つに限るとの事で、文字列を複数にしたい場合どのような数式で値が返せますでしょうか。
下記のような数式ではだめでした。
=IF(COUNTIF(A1,"*(株)*",A1,"*(有)*",A1,"(同)"),"1","2")
ちなみにCOUNTIFSというのもだめでした。

ほかにIF関数で文字列の複数条件で1か2を返せる数式がありましたら教えてください。
よろしくお願い致します。

投稿日時 - 2016-06-05 16:25:00

QNo.9183149

すぐに回答ほしいです

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

こんにちは。

> B列に契約先の種類を1と2で区別して、1か2の値を返したいです。

よくある話として、括弧の【全角/半角】の不統一や混在、という問題があります。
基データに対して、
括弧の【全角/半角】を統一する形で置換処理をしても構わないないなら、
より簡素な数式に出来ますけれど、取り敢えず、ASC()関数で半角統一してみます。
後はOR()関数と組み合わせて、左3文字の一致にて判別します。
 {"(株)","(有)","(同)"}の何れかで始まるならば、"1"、それ以外は"2"、を返す。
 =IF(OR(ASC(LEFT(A1,3))="("&{"株","有","同"}&")"),"1","2")
因みに、数値の1、または2を返したい場合は、
 =IF(OR(ASC(LEFT(A1,3))="("&{"株","有","同"}&")"),1,2)
のようになります。
(配列を扱いますが配列数式ではないので、普通に扱えます。)
こんな感じが扱い易くて簡単そうですけれど如何でしょう?

投稿日時 - 2016-06-05 17:31:04

お礼

教えて頂きました数式で、できました!ありがとうございます。

投稿日時 - 2016-06-05 19:25:11

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

VLOOKUPという関数があります。
VLOOKUPで検索して下さい。

投稿日時 - 2016-06-05 17:01:58

あなたにオススメの質問