• ベストアンサー

エクセルで文字の切り出し

皆さんコンニチは ある特定の文字を切り出すのに苦労しています。    A列    B列   C列 1行 a1234    OK 2行 m4056    OK 3行 ay658    NO 4行 mr698    NO 上記のように、A列にデータがありB列には先頭文字が 「 a 」又は「 m 」の場合のみ「OK」を表示させる 関数を入力したいのですが、どのようにすればよいのでしょうか VLOOKUP関数も考えたのですが、データ量があまりにも多くて実用にならないと断念しました。 よろしくお願いいたします。 エクセル2000

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.5

No.1の回答、No.2の回答共に1~4行全てが「OK」になるのでは? この内容からは、左1文字目に"a" または "m"で、且つ 2文字目が数字のものが 「OK」、そうでないものが「NO」を表示するものと解釈します。 セルB1に下記の式を入れ、必要分下へフィルハンドルコピーします。 =IF(AND(OR(LEFT(A1,1)="a",LEFT(A1,1)="m"), ISNUMBER(VALUE(MID(A1,2,1)))),"OK","NO") これでどうでしょうか。

JOX
質問者

お礼

ありがとうございました。 ANDとORを駆使して出来るんですね 分りやすくて、他にも利用できそうなので色々と 試してみます。

その他の回答 (4)

  • comv
  • ベストアンサー率52% (322/612)
回答No.4

こんにちは 例のように2文字目も判断の対象になる(2文字目 が英字の場合NO)のであれば =IF(AND(OR(CODE(A1)=97,CODE(A1)=109),CODE(MID(A1,2,1))>48,CODE(MID(A1,2,1))<58),"OK","NO") てことでしょうか?

JOX
質問者

お礼

ありがとうございます。 この関数で出来ました。 CODE(A1)=97,CODE(A1)=109・・・は「a」や「m」の事 なんですね、 少し戸惑いましたが、なんとか解決しました

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

>VLOOKUP関数も考えたのですが、データ量があまりにも多くて実用にならないと断念しました。 ???無理にやろうとすれば出来ますよ。 既回答が正解ですが、敢えてVLOOKUPでも出来るのではないですか。 例えば使わない範囲として、D1:E2に a OK m Ok と入れます。 B列にOKを出すとして B1に=VLOOKUP(MID(A1,1,1),$D$1:$E$2,2,FALSE)を入れます。B2以下、下方向に複写します。 Falseにすること。大文字もOKならD3:E3以下に A OK M OK を増やせば良い。式が少し変りますが。 第1字がa,m以外だと#N/Aがでて目ざわりですが ISERRORで防止する方法は、ご存じとして略。

JOX
質問者

お礼

ありがとうございます。 VLOOKUPも使えそうですね でも、二文字目以降も判断対象にした場合の関数がほしいので よろしくお願いいたします。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.2

=IF(OR(LEFT(A1,1)="a",LEFT(A1,1)="m"),"OK","NO") LEFT関数が文字の切り出しを行います。 OR関数で、「a」か「m」いずれかに該当する場合、TRUEを返します。 IF関数で、OR関数の結果がTRUEの時OK,FALSEのときNOを表示させています。

JOX
質問者

お礼

ありがとうございます。 この関数ですと2文字以降の記号までは判断されません 私の説明が稚拙で申し訳ありませんでした。 例えば a1234 は「OK」で、as123 は「NO」でなければならないのです。 あくまでも最初の一文字目のみが「a」か「m」の時に 「OK」を表示したいのですが・・・・・

  • sero
  • ベストアンサー率47% (916/1944)
回答No.1

b1に「=IF(LEFT(A1,1)<>"a",IF(LEFT(A1,1)<>"m","","OK"),"OK")」 と入力してオートフィルして下さい。

JOX
質問者

お礼

ありがとうございます。 この関数ですと2文字以降の記号までは判断されません 私の説明が稚拙で申し訳ありませんでした。 例えば a1234 は「OK」で、as123 は「NO」でなければならないのです。 あくまでも最初の一文字目のみが「a」か「m」の時に 「OK」を表示したいのですが・・・・・