アプリ版:「スタンプのみでお礼する」機能のリリースについて

セル内に数値・文字列を両方含む列があります。

数値(1) 文字列(1) 数値(2) 文字列(2)

【例】
11213234 AIUEO 21213 ABC
42321243 KAKIKUKEKO 32480 CBAAA
59343124 SA 85727 BBAC

数値(1)の桁数は同一
文字列(1)の文字数は変動
数値(2)の桁数は同一(だが、文字列(1)が変動のため、スタート位置はことなってくる)
文字列(2)の文字数も変動

ここから「数値(2)のみ」を関数で抽出したいのですが、どのようにすればよいのでしょうか?

ご教授よろしくお願いいたします!!

A 回答 (4件)

文字列(1)の始まりは10文字目固定。

それより後ろのスペースの位置
は、=find(" ",A1,10)で発見できるので、数値(2)の開始位置はその1
文字後ろ。

=MID(A1,FIND(" ",A1,10)+1,5)

ちゃんと数値として扱うなら1でもかけてね。
    • good
    • 1

>特定の数値のみを抽出したい 


内容からするとこの表現はおかしいのでは。「数値部分をとり出したい」ではないか。「特定」では無いのでは。
ーーー
(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関数で判別できる。すぐ思いつく。
    • good
    • 0

=MID(SUBSTITUTE(TRIM(A1)," ","_",2),FIND("_",SUBSTITUTE(TRIM(A1),

" ","_",2))+1,5)+0
    • good
    • 0

◆「数値(1) 文字列(1) 数値(2) 文字列(2)」の順番で、その間に必ず、スペースがあるのであれば


=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",99)),99*3-99,99))*1
★下にコピー

この回答への補足

前回に続きご回答ありがとうございます!

早速試してみたのですが#VALUE!とエラーになってしまいました。

もしお願いできるのであれば、上記数式の簡単なご説明をいただくことはできないでしょうか? (勉強のため理解してから使いたいと思っています!)

補足日時:2008/10/11 06:46
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!