- ベストアンサー
【Excel】特定の文字間の数字を取り出す
Excel2003を使用しています。 あるセルに「●●●A9B××…」と入力してあった場合、AとBの間にある数字“9”を取り出すにはどうしたらいいでしょうか? 全体の文字数は変化しますが、AとBという文字は必ずあって、その間にある数字だけを取り出して、それを別の計算で使用したいのです。数字は1桁か2桁のいずれかですが、関数の組み合わせ等で可能でしょうか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
素直に考えるとmid関数でAが現れた次の文字から(Bが現れた場所- Aが現れた次の場所)文字分を取り出すんでしょうね。 Aを2回も検索するのが悔しい私みたいなバカは、midでAの次から2文 字取り出しておいて末尾に残るかもしれないBをsubstituteで落とし ます。 =substitute(mid(A1,search("A*B",A1)+1,2),"B","") こんな感じ。数字が1ないし2桁と判明しているおかげですね。
その他の回答 (4)
- guchi_yama
- ベストアンサー率47% (57/119)
>その間にある数字だけを取り出して、それを別の計算で使用したいのです。 ちょっと見落としていましたが、数字を取り出しても、文字列のままなので、 計算しても数字認識しない為、数値に変換してやる必要があると思います。 ので、 =VALUE(MID(A1,FIND("A",A1)+1,IF(COUNT(MID(A1,FIND("A",A1)+2,1))=1,2,1))) と、先頭に=VALUE()と付けて下さい。
お礼
再度の回答ありがとうございます。 幸い(?)、No.2で回答いただいた数式で得た結果を、そのまま別の計算で利用しましたが、エラーは出ませんでした。 ご丁寧にありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 =MID(A1,FIND("A",A1)+1,FINDB("B",A1)-FINDB("A",A1)-1)*1
お礼
回答ありがとうございます。 教えていただいた数式で、実際に試してみたところ、エラーが出てしまいました。 数式中のFINDBをFINDにすることで、うまくいきましたが、質問文に挙げた例だと、エラーは出ませんでしたので、例の挙げ方がよくなかったようです…。 ありがとうございました。
- guchi_yama
- ベストアンサー率47% (57/119)
別例で、 A1を"あるセル"とすると、 =MID(A1,FIND("A",A1)+1,IF(COUNT(MID(A1,FIND("A",A1)+2,1))=1,2,1))
お礼
回答ありがとうございます。 こちらの数式でも、うまくいきました。 こういう方法もあるのですね。勉強になります。 ありがとうございました。
- redowl
- ベストアンサー率43% (2140/4926)
=IF(ISERROR(SEARCH("A*B",A1)),"",MID(A1,SEARCH("A*B",A1)+1,SEARCH("B*",A1)-SEARCH("A*B",A1)-1))
お礼
回答ありがとうございます。 教えていただいた数式で、実際に試してみたところ、うまくいきました。 ありがとうございました。
お礼
回答ありがとうございます。 なるほど~!な数式を教えていただき、大変参考になりました。 条件をいかしていますね! 数字は1桁か2桁のいずれかということを質問文に書いておいて良かったです。(書かなくてもいいかなと迷ったので…) ありがとうございました。