• ベストアンサー

エクセルの式の質問

エクセルの式の質問 「A1」のセルの文字列に「(株)があれば、1」、「(有)があれば、2」、「両方なければ、0」を返す式を教えてください。

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

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

チョ~いい加減な方法ですが、 =countif(A1,"*(株)*")+countif(A1,"*(有)*")*2 というのを思いつきました。(株)と(有)が同時に存在すると破綻す るんですが、まさかそんなことは無いだろうと高をくくってます。

age1118
質問者

お礼

どうもありがとうございます。 この式のワイルドカードを見て、No1の方のと合わせて、 =IF(A1="*(株)*",1,if(A1="*(有)*",2,0))ならどうかな、と思ったのですが、 IF関数では、ワイルドカードは使えないんですね。 本当にどうもありがとうございます。助かりました。

その他の回答 (5)

noname#204879
noname#204879
回答No.6

別解として =NOT(ISERR(FIND("(株)",A1)))+NOT(ISERR(FIND("(有)",A1)))*2

age1118
質問者

お礼

どうもありがとうございます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! 一例です。 ↓の画像で説明させていただきます。 とりあえず画像のようにD・E列に表を作っておきます。 そして、B2セルに入れる数式は配列数式になってしまいますので、 もしこの画面から直接コピー&ペーストしただけでは正確な結果が表示されないと思います。 B2セルに貼り付け後、F2キーを押す、又は数式バー内でクリック、又はB2セルをダブルクリックします。 編集可能になりますので Shift+Ctrl+Enterキーで確定してください。 数式の前後に{ }マークが入り配列数式になります。 これをオートフィルで下へコピーすると画像のような感じになります。 B2セルは =IF(A2="","",IF(OR(ISNUMBER(FIND($D$2:$D$3,A2))),INDEX($E$2:$E$3,SUMPRODUCT((ISNUMBER(FIND($D$2:$D$3,A2)))*ROW($A$1:$A$2))),0)) として、Shift+Ctrlを押しながらEnterキーで確定です。 以上、参考になれば良いのですが 他に良い方法があれば読み流してくださいね。m(__)m

age1118
質問者

お礼

どうもありがとうございます。

回答No.4

NO3です ちょっと間違えました(誤字共々・・・^^;) I列とJ列に作業列ではなくて範囲指定の場所でした B列が作業列になります お詫びして訂正します 彡O┓ペコリ

回答No.3

別セルに作業領域を設けてVLOOKUP関数から「0」「1」「2」を導く方法がありますね 一応H列とI列に差行列を作ってみました B2=IF(ISNA(VLOOKUP(RIGHT(A2,4),$I$1:$J$3,2,0)),0,VLOOKUP(RIGHT(A2,4),$I$1:$J$3,2,0)) B2セルに式を入れて、B14セルまでオートフィルコピーします(添付画像参照) こんな感じでどうでしょう・・・?

age1118
質問者

お礼

どうもありがとうございます。 県名のように分ける文字が多いときには、この方法が利用できそうですね。

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.1

=if(A1="(株)",1,if(A1="(有)",2,0))

age1118
質問者

補足

回答ありがとうございます。私の書き方がまずかったです。すみません。 正確には、A1に「(株)を含む文字列があれば、1」「(有)を含む文字列があれば、2」「どちらも含まれなければ、0」です。 セルの中に、いろんな事業所の名称があり、株式会社、有限会社、個人事業で分けたいのです。

関連するQ&A