• 締切済み

エクセル 複数の文字列を分別したい。

エクセル2003で質問です。 1列に複数の文字列が並んで入力しています。 「ABC01」「BBC03」「ABS49」などです。 例えば前3文字アルファベット部が複数の指定した文字列を「A」「B」などに分類Aしたいのです。 「ABC01」「ABC54」など前3文字が「ABC」のものと 「BBD03」「BBD58」など「BBD」を「A」 それ以外を「1」とするという式を作りたいです。 下2桁の数字がバラバラなので"ABC*","BBD*"を使って いろいろ試してみましたが・・・ 限界です。よろしくお願いいたします。

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>下2桁の数字がバラバラなので"ABC*","BBD*"を使っていろいろ試してみましたが・・・ 左から3文字でチェックすると云うことなのでLEFT関数を使うと分かり易くなります。 =IF(OR(LEFT(A2,3)="ABC",LEFT(A2,3)="BBD"),"A",1) IF関数の論理式にOR関数を組み込めば"ABC"または"BBD"と一致するとき"Y"と言う論法が成り立ちます。

s1023
質問者

お礼

ありがとうございます。 3人の方に回答を頂き、明日、会社で試してみます。 皆さんにそれぞれベストアンサーを差し上げたいです ありがとうございました

回答No.2

セルA1から下に「ABC01」「ABC054」・・・と入力していたとして次の式で「A」か「1」を返す事が出来ます セルB1に =IF(OR(LEFT(A1,3)="ABC",LEFT(A1,3)="BBC"),"A",1) の式を入れて下方向へ式をコピーします。 画像のバージョンはExcel2010ですが式は2003も変わりません。

s1023
質問者

お礼

ありがとうございます。 3人の方に回答を頂き、明日、会社で試してみます。 皆さんにそれぞれベストアンサーを差し上げたいです ありがとうございました

回答No.1

以下でいかがですか? A列にデータ、B列に下式をいれる。 =IF(LEFT(A1,3)="ABC","A",IF(LEFT(A1,3)="BBD","A",1)) なお、これでは大文字小文字区別なしで"abc"とか"Abc"も可となります。 区別するならば、下記としてください。 =IF(EXACT(LEFT(A2,3),"ABC"),"A",IF(EXACT(LEFT(A2,3),"BBD"),"A",1)) なお、R1C1形式ならば =IF(LEFT(RC[-1],3)="ABC","A",IF(LEFT(RC[-1],3)="BBD","A",1)) =IF(EXACT(LEFT(RC[-1],3),"ABC"),"A",IF(EXACT(LEFT(RC[-1],3),"BBD"),"A",1))

s1023
質問者

お礼

ありがとうございます。 3人の方に回答を頂き、明日、会社で試してみます。 皆さんにそれぞれベストアンサーを差し上げたいです ありがとうございました