• 締切済み

EXCEL セル内の特定の数値のみを抽出したい (関数だけで)

セル内に数値・文字列を両方含む列があります。 数値(1) 文字列(1) 数値(2) 文字列(2) 【例】 11213234 AIUEO 21213 ABC 42321243 KAKIKUKEKO 32480 CBAAA 59343124 SA 85727 BBAC 数値(1)の桁数は同一 文字列(1)の文字数は変動 数値(2)の桁数は同一(だが、文字列(1)が変動のため、スタート位置はことなってくる) 文字列(2)の文字数も変動 ここから「数値(2)のみ」を関数で抽出したいのですが、どのようにすればよいのでしょうか? ご教授よろしくお願いいたします!!

みんなの回答

回答No.4

文字列(1)の始まりは10文字目固定。それより後ろのスペースの位置 は、=find(" ",A1,10)で発見できるので、数値(2)の開始位置はその1 文字後ろ。 =MID(A1,FIND(" ",A1,10)+1,5) ちゃんと数値として扱うなら1でもかけてね。

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

>特定の数値のみを抽出したい  内容からするとこの表現はおかしいのでは。「数値部分をとり出したい」ではないか。「特定」では無いのでは。 ーーー (1)は先頭から定桁分を取り出すので =MID(A1,1,8)か=LEFT(A1,8) (2)が出現位置が変動するので=RIGHT(A1,LEN(A1)-9)について 数字先頭を求める。 これが結構難しくて、定石として、学習するほか無いと思うが、 A12に 11213234 AIUEO 21213 ABC B12に =RIGHT(A12,LEN(A12)-9) で AIUEO 21213 ABC C12に =MID(B12,MIN(FIND({"0","1","2","3","4","5","6","7","8","9"},B12&"0123456789")),5) で 21213 上記のC12へ,B12をネスト(含める、合体)して1つの式にしてください。 本件は間のスペースに頼らない式です。 ーーー >関数だけで VBAで、ユーザー関数で、数値桁の先頭位置を割り出すプログラムを組むと、上記のような技巧的な関数を使わなくて済むのだが(記述略) 上記のほうはん後半のの式(MIN(FIND・・)など、何年考えても相当関数を勉強しないと思いつかない。私も学んだもの。 VBAだと各桁が数字かどうかIsNumeric関数で判別できる。すぐ思いつく。

noname#204879
noname#204879
回答No.2

=MID(SUBSTITUTE(TRIM(A1)," ","_",2),FIND("_",SUBSTITUTE(TRIM(A1)," ","_",2))+1,5)+0

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆「数値(1) 文字列(1) 数値(2) 文字列(2)」の順番で、その間に必ず、スペースがあるのであれば =TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",99)),99*3-99,99))*1 ★下にコピー

studyingex
質問者

補足

前回に続きご回答ありがとうございます! 早速試してみたのですが#VALUE!とエラーになってしまいました。 もしお願いできるのであれば、上記数式の簡単なご説明をいただくことはできないでしょうか? (勉強のため理解してから使いたいと思っています!)