• ベストアンサー

【Excel】特定の文字間の数字を取り出す

Excel2003を使用しています。 あるセルに「●●●A9B××…」と入力してあった場合、AとBの間にある数字“9”を取り出すにはどうしたらいいでしょうか? 全体の文字数は変化しますが、AとBという文字は必ずあって、その間にある数字だけを取り出して、それを別の計算で使用したいのです。数字は1桁か2桁のいずれかですが、関数の組み合わせ等で可能でしょうか? よろしくお願いします。

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

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

素直に考えるとmid関数でAが現れた次の文字から(Bが現れた場所- Aが現れた次の場所)文字分を取り出すんでしょうね。 Aを2回も検索するのが悔しい私みたいなバカは、midでAの次から2文 字取り出しておいて末尾に残るかもしれないBをsubstituteで落とし ます。 =substitute(mid(A1,search("A*B",A1)+1,2),"B","") こんな感じ。数字が1ないし2桁と判明しているおかげですね。

rx-z5815
質問者

お礼

回答ありがとうございます。 なるほど~!な数式を教えていただき、大変参考になりました。 条件をいかしていますね! 数字は1桁か2桁のいずれかということを質問文に書いておいて良かったです。(書かなくてもいいかなと迷ったので…) ありがとうございました。

その他の回答 (4)

回答No.5

>その間にある数字だけを取り出して、それを別の計算で使用したいのです。 ちょっと見落としていましたが、数字を取り出しても、文字列のままなので、 計算しても数字認識しない為、数値に変換してやる必要があると思います。 ので、 =VALUE(MID(A1,FIND("A",A1)+1,IF(COUNT(MID(A1,FIND("A",A1)+2,1))=1,2,1))) と、先頭に=VALUE()と付けて下さい。

rx-z5815
質問者

お礼

再度の回答ありがとうございます。 幸い(?)、No.2で回答いただいた数式で得た結果を、そのまま別の計算で利用しましたが、エラーは出ませんでした。 ご丁寧にありがとうございました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

次の方法は如何でしょうか。 =MID(A1,FIND("A",A1)+1,FINDB("B",A1)-FINDB("A",A1)-1)*1

rx-z5815
質問者

お礼

回答ありがとうございます。 教えていただいた数式で、実際に試してみたところ、エラーが出てしまいました。 数式中のFINDBをFINDにすることで、うまくいきましたが、質問文に挙げた例だと、エラーは出ませんでしたので、例の挙げ方がよくなかったようです…。 ありがとうございました。

回答No.2

別例で、 A1を"あるセル"とすると、 =MID(A1,FIND("A",A1)+1,IF(COUNT(MID(A1,FIND("A",A1)+2,1))=1,2,1))

rx-z5815
質問者

お礼

回答ありがとうございます。 こちらの数式でも、うまくいきました。 こういう方法もあるのですね。勉強になります。 ありがとうございました。

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.1

=IF(ISERROR(SEARCH("A*B",A1)),"",MID(A1,SEARCH("A*B",A1)+1,SEARCH("B*",A1)-SEARCH("A*B",A1)-1))

rx-z5815
質問者

お礼

回答ありがとうございます。 教えていただいた数式で、実際に試してみたところ、うまくいきました。 ありがとうございました。