• 締切済み

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

  • 文字列と数字を含むセルから数値のみをとりだす関数と、文字列のみを取り出す関数があれば両方教えてください!

    (Excel 2003 ) 文字列と数字を含むセルから数値のみをとりだす関数と、文字列のみを取り出す関数があれば両方教えてください!

  • 文字列が数値に変換されない

    文字列の数字をVALUE関数で数値に変換したくても数値になりません。 ♯N/Aと表示されるだけです。 関数を入れたあとに表示形式を数値にしても変わりません。 元の文字列はVLOOKUP関数で検索した数字です。 これができないと仕事が進みません。急いでます。お願いします。

  • EXCEL関数 数値セルが何個下に出てくるか?

    EXCEL関数で質問です。 A1:A5セルそれぞれに、文字列、空白、数値のいずれかが入っています。 そのうち数値のセルが最初に出てくるのは上から何番目か、というのを B1セルに関数で表示したいのです。 たとえば、A列上から、 あ、A、100、100、0 なら3、 愛、(空白)、百、8、ZZZ なら4 という具合です。 お知恵をお貸しください!

  • エクセルで半角数字には数値と文字列がある?

    http://okwave.jp/qa/q6473596.html の質問を見て私も納得がいかず質問させていただきます。 たとえば、A1セルの書式を文字列に設定してから半角で数字を打ち込むと数字は数値でなく文字列としてセルに入ります。 この入力後、A1セルの書式を標準や数値に直してもそのセルの中の数字は左に寄ったままで文字列のままでいるようです。 (でもこれをセルの中でエンターキーを押したりすると数値になってしまいますが) 次にB1セルの書式を標準あるいは数値にして数字を打ち込むと、当然のことですが数字は数値としてセルに入ります。 この入力後、B1セルの書式を文字列に変えると数字は左に寄りますから一見文字列になったように見えます。 ところが上記のセルとこのセルをA1=B1で試してみるとFALSEが返ります。 逆に同じ数字を数値として打ち込んだセルと=で試すとTRUEが返ります。 これはA1とB1は同じ文字列としての数字ではないという証拠だと思います。 B1セルの書式を標準に戻すとまた数字は右よりにもどりますから、セルの中の数字は数値のままのようです。 つまり、半角の数字にはセルの書式にかかわらず文字列と数値の二つがあるということなのでしょうか? だとしたらこの二つはどうやって区別すればいいのでしょうか?

  • 適当な数字を入れて文字列を出す(EXCEL97)

    セルに適当な数字を入れると その数字によって違う文字列が もう一つのセルに表示されるには どのような関数式を入力すればよいのでしょうか。 例えば、 0~10までの数字を入れれば「あ」 11~20までの数字を入れれば「い」 21~30までの数字を入れれば「う」 31~40までの数字を入れれば「え」 41~50までの数字を入れれば「お」 とそれぞれ出てくる、という風に。 0<=A1<=10 10<A1<=20 20<A1<=30 30<A1<=40 40<A1<=50 上記の式とIF構文を利用すればいいのかと考えてはみましたが、 なかなかうまくいきません。 ご教授頂ければ幸いです。

  • 文字列から数値への変換

    セルの書式設定(表示形式タブ)で文字列を数値に変えるのと、 VALUE関数で文字列を数値に変えるのとでは何か違いがありますか? (excel2000です。)

  • EXCEL2007で文字列の右側から特定文字を抽出

    EXCEL2007で1つのセルの文字列の右側から最初の"/"が出現したときまでの文字を抽出する方法を教えてください。 (例)  A 1エクセル/関数/123456/ここがターゲット 2 3 ⇒関数を使用し、上記A1セルの「ここがターゲット」の文字列を抽出したいのです。 神様、どうか教えてください!

  • エクセル2000で文字列から数値を抽出したい。

    エクセル2000で文字列から数値を抽出したい。 ワークシートのA列に下記の文字列が入力されています。 A1セル="123456 日本男子 54,321 7,654,321 12,345" A2セル="234567 東京都子 1,234 2,345 5,321" A3セル="345678 大阪太郎 99 689 9,876" データ間はスペースで区切られています。 後方2番目の数値をB列に取出す方法を教えて下さい。 B1セル=7,654,321 B2セル=2,345 B3セル=689 よろしくお願い致します。

  • 半角・全角が混ざった文字列の抽出方法について

    Excel2000での操作です。 A1に『あぃうぇぉABcdef』という文字列が入力されており、この文字列の中から6バイトの文字数とそれ以降の文字数とをA2、A3に分けて表示させる方法がないか調べています。 文字の抽出方法としてMIDBの関数を探し出して先頭から6バイトの文字数をA2に置く事は確認が取れていますが同時にそれ以降の文字数をA3に置くという作業がわからず困っています。 MIDBの関数でなくてもっと簡単な方法がありましたら教えて頂きたいです! よろしくお願いします。

  • 文字列の数字での計算(エクセル)

    学校でエクセルやってるんですけど、難題をふっかけられて困っています。 ある列にあるデータ(数値)をFIXED関数で数値を文字列にしたデータが縦に並んでいて、それにはそれぞれ & を使って数字の後に"m"(メートル)かなんかの単位が入力されているとします。 3.8m  [=fixed(〇〇,0)&"m"] ・ ・ ・ そしてこのデータの平均を出したいのですが、どうすればいいのでしょうか? valueとかleft使うんでしょうか?? 説明不足かもしれませんがよろしくご回答お願いします。

専門家に質問してみよう