• 締切済み

EXCEL関数 文字列の一部の数字文字を数値化して計算につかいたい

EXCEL関数について質問です。 あるセルの文字列に記載されている一部の数字文字を 数値化して計算につかいたいと思っています。 <例>  あるセルの文字列(A1)⇒あいうえお12345番目の方  出力したい数字文字⇒12345 知る限りの関数を使って以下の関数式を作ってみました。 (1) MID関数を使う  最初の文字「あいうえお」は10バイトなので開始は「11」としました。 (2)後に登録されている「番目の方」を除きたいので  SEARCHB関数を使って、「番目」の開始バイトを見つけ  そこから最初の文字バイト「11」を引き、抽出するバイトを求める。 (3)抽出した文字列を数値に変換するVALUE関数を使う。 次の関数式を作ってみました。   =VALUE(MIDB(A1,11,SEARCHB("番目",A1,1)-11)) でも結果は「」となります。 何がいけないのかわかりません。エラーの原因がわかれば教えて下さい。 ほかによい方法があれば教えてください。 よろしくお願いします。  

みんなの回答

  • a987654
  • ベストアンサー率26% (112/415)
回答No.2

>=VALUE(MIDB(A1,11,SEARCHB("番目",A1,1)-11)) NO1の方と同じ回答ですが、問題なく表示されます。 A1セルは本当に あいうえお12345番目の方 が入っています でしょうか? どうしてもわからないときには1つずつ関数をバラしてみることです。 例えば SEARCHB("番目",A1,1) → 16 MIDB(A1,11,5) → 12345 (但し文字列) になりますよね? ちなみにMIDB、SEARCHBはわざわざ考え方を難しくしています。 MID、SEARCHで充分いけますよ。 =VALUE(MID(A1,6,SEARCH("番目",A1)-6))

sawacco1335
質問者

お礼

実践してみたところ、本当にうまくいきました。 難しく考えすぎていたようです。 有難うございました。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

結果が空白になると言うことでしょうか VALUE関数は数値として判断できる文字列が渡されないとエラーになります ですので普通では空白になることはありません  マクロなどでエラー表示を空白に置き換えている  エラーの時は背景色と同じ色で文字を書くように条件付書式を設定されている のではないでしょうか あるいは…  VALUE関数ではなく他の関数を使用している  VALUE関数の結果を他の関数に渡している  実はExcelではなく互換ソフトを使用している …とか ちなみに、質問にある数式で普通に表示できます

sawacco1335
質問者

お礼

すみません。空白ではなくエラー表示です。 私も実践してみましたところ、確かにうまくいきました。 もともと使っていたEXCELの問題のようです。 有難うございました。

関連するQ&A