- ベストアンサー
エクセルで必要な数字を抜き出す方法
- エクセルで特定のセルからページ数の数字だけを抜き出す方法を教えてください。
- セルには数字やアルファベットが混ざっており、ページ数の前にスペースがある場合もあります。
- エクセルのバージョンは2003です。マクロを使用せずに実現する方法があるか教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
桁数不定版です。 ※ただし「数字部分の始まりから"page"の直前まで」が「カンマ・スペースを含めて8文字以内」。 =--RIGHT(LEFT(A1,FIND("page",A1)-1),9-MATCH(0,--ISERR(-(RIGHT(LEFT(A1,FIND("page",A1)-1),{8,7,6,5,4,3,2,1}))),0)) ●動作の概要 A1セルの文字列から、"page"を探し、その直前8文字について、 「数値と解釈しうる最長の文字列」を切り出して、数値化して返す。 Ex. ・1桁でも可 abcdef 2 page ghijklmnopqrstu ⇒ 2 ・全角数字やカンマを含んでも可 abcdefghijklmn 1,234 page opqrstu ⇒ 1234 ・前後のスペースの有無は問わない abcdef56789pageghijklmnopqrstu ⇒ 56789 Excel2003で動作確認。ご参考まで。
その他の回答 (3)
- KURUMITO
- ベストアンサー率42% (1835/4283)
A1セルにデータがあるとしたら次の式ではどうでしょう。 なお、ページ数は4桁までの対応ができます。ページ数の前後には半角のスペースがあるものとします。 =IF(ISNUMBER(VALUE(MID(A1,FIND("page",A1)-5,1))),MID(A1,FIND("page",A1)-5,5),IF(ISNUMBER(VALUE(MID(A1,FIND("page",A1)-4,1))),MID(A1,FIND("page",A1)-4,4),IF(ISNUMBER(VALUE(MID(A1,FIND("page",A1)-3,1))),MID(A1,FIND("page",A1)-3,3),IF(ISNUMBER(VALUE(MID(A1,FIND("page",A1)-2,1))),MID(A1,FIND("page",A1)-2,2)))))
お礼
お礼がすっかり遅くなってしまい申し訳ありません どうもありがとうございました
「上のような感じのセル」A1 に使われない文字を仮に「_」とすれば、 =MID(A1,FIND("_",SUBSTITUTE(A1," ","_",LEN(LEFT(A1,FIND(" page",A1)-1))-LEN(SUBSTITUTE(LEFT(A1,FIND(" page",A1)-1)," ",""))))+1,FIND(" page",A1)-FIND("_",SUBSTITUTE(A1," ","_",LEN(LEFT(A1,FIND(" page",A1)-1))-LEN(SUBSTITUTE(LEFT(A1,FIND(" page",A1)-1)," ",""))))-1)
お礼
お礼がすっかり遅くなってしまい申し訳ありません どうもありがとうございました
- mshr1962
- ベストアンサー率39% (7417/18945)
" page"の前の数値の桁数は固定でしょうか?固定なら =MID(A1,FIND(" page",A1)-桁数,桁数)*1
お礼
お礼がすっかり遅くなってしまい申し訳ありません どうもありがとうございました
お礼
お礼がすっかり遅くなってしまい申し訳ありません どうもありがとうございました