• ベストアンサー

エクセルで文字を含むセルから特定の数値を抽出したい

エクセル2007で下記のように関数で処理したいのです。 【A1セル】 2本で31,900円(1本15,950円) 【B1セル】 31,900 と関数で表示したいのです。 この表示したい数値は常に 「で」 と 「円(1」 の間に存在しています。 SUBSTITUTE関数でやろうとしたのですが、 変化する可能性のある「2本で」の部分や 「15,950円」の部分をどう処理したらいいのか分かりません。 「円」を消すだけなら簡単なのですが・・・ どなたか教えてください。 よろしくお願いいたします。

  • golf90
  • お礼率55% (878/1594)

質問者が選んだベストアンサー

  • ベストアンサー
  • moon00
  • ベストアンサー率44% (315/712)
回答No.2

=RIGHT(LEFT(A1,FIND("円",A1)-1),FIND("円",A1)-FIND("で",A1)-1) というのでどうでしょう? ただし、取りだされたものは「文字列」なので、数字として認識されるにはもうひと手間必要です。

golf90
質問者

お礼

無事にできました! 一番短い式だったので、ベストアンサーにさせていただきます。 他の方もご回答ありがとうございました。

その他の回答 (3)

回答No.4

1兆円まで かつ お遊びで =LOOKUP(10^13,1*LEFT(MID(A1,FIND("で",A1)+1,15),{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15})) 失礼しました m(_ _)m

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.3

A列の値の前半部分(「2本で31,900円」まで)が必ず「<販売単位、ロット数など>で<価格>円」となっているのであれば =MID(A1,FIND("で",A1)+1,FIND("円",A1,FIND("で",A1)+1)-FIND("で",A1)-1)*1 でどうでしょうか。 A1の文字列から最初の"で"と、最初の"で"以降で最初の"円"を探し、その間の部分の文字列を抜き出して数値に置き換える。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

B1セルには次の式でもよいですね。 =IF(A1="","",MID(A1,FIND("で",A1)+1,FIND("円",A1)-FIND("で",A1)-1))*1

関連するQ&A

  • EXCEL 桁数を合わせた数値型セルの結合

    EXCELでのセル操作に関して下記のような結果を求めたいのですが、どういう関数なり操作を行えばいいのでしょうか? よろしくお願いします。 セルA(数値型) 123 セルB(数値型) 89 → セルC 12300089 セルA(数値型) 4567 セルB(数値型) 765 → セルC 456700765 ※セルBの部分を5桁扱いにしてセルCを完成させたいのです。 セルBの桁数が何桁になってもうまくいく方法を 教えてください。よろしくお願いします。

  • エクセルで数値と文字が入ったセルからの数値の抽出

    皆さんこんにちは。 エクセルの使い方についての質問です。 添付画像の例のようにA列に 「XXYYYZZ(XとZは文字、Yは数値で3桁または4桁)」というフォーマットで 数値と文字が入っているセルがあります。 同様にB列には「WWZ(Wは数値)」というフォーマットで、 同様に数値と文字が入っているセルが並んでいます。 これらからDやE列にあるように数値のみを取り出すためには DやE列にどのような関数を入れてやればよいのでしょうか。 どなたか教えていただければ幸いです。 よろしくお願いします。

  • エクセル 隣のセルの数値によって文字を表示させる

    こんにちわ。 いろいろ試したのですがいまくいかないので質問させてください。 C1セルに計算式(=B2/A2)が入っていて数値が出ているんですが、 その数値が20より小さいとき、隣のセルD1に「←!!!」 20より大きいときは空白にしたいのです。 今D1に入力しているのは下記の関数ですが↓ =IF(C1<=20,"←!!!","") これでは20以上の数値でも「←!!!」が表示され、 どうしたらいいのかわかりません。 助けてくださいー!よろしくお願いいたします。

  • 同一セル内で大きい方の数字のみ抽出する関数について

    エクセルの同一セル内で大きい方の数字のみ抽出する方法がわからず困っております。 1つのセルには下記の2行のような情報が含まれます。 -------------------------------------- (A1セル) 189,815円 (税込 205,000 円) 送料込 (A1セル)中古品 ¥ 138,000より -------------------------------------- (A1セル) 189,815円 (税込 205,000 円) 送料込 の場合、 下記関数にて税込の金額が正しく表示されますが、 (A1セル)中古品 ¥ 138,000より を入力した場合正しく表示されません。 =TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),99*3-99,99))*1 (A1セル)中古品 ¥ 138,000より の場合、下記関数にて正しく表示されますが、 (A1セル) 189,815円 (税込 205,000 円) 送料込 の場合、正しく表示されません。 =LOOKUP(10^10,MID(A1,MATCH(0,INDEX(0/MID(A1,COLUMN(1:1),1),),),COLUMN(1:1))*1) 両方の形式に対応する関数を教えて頂けましたら幸いです。 要は、文字と数字が同一セル内に混同する場合、数値のみを抽出するが、 その際に大きい方の数値のみを抽出するということです。 どうかご存知の方がいらっしゃいましたら、お知恵をお貸し頂きたく、何卒、宜しくお願い申し上げます。

  • エクセル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 よろしくお願い致します。

  • Excelセル内にある数値に或る数値を付け加えたい

    Excelのセル内にある数値に或る数値を付け加えたいのです。 言葉だけでは判り難いと思いますので下記のような事です。 10043 の前に33を付け加えたい → 3310043 2つの会社のコード番号を1つにして管理したいのです。 各コード番号の前に認識出来る数字を付け加えて認識します。 簡単に出来る関数?教えて下さい。 皆様方、何卒宜しくお願い申し上げます。

  • エクセルでふたつのセルから数値を選択し、抜き出す

    エクセルでふたつのセルの数値から選択し、抜き出す エクセル2002を使っています。 少し難しい事があったので教えて頂けませんか? 画像の様なデータがあります。 異なる二つの 機器A と 機器B があります。 画像の通り、検査A、検査Bとふたつの検査をするのですが、両方に数値が入ることはありません。 それで、機器Aの良の検査結果をT29から33に 機器Bの検査結果をVの29~V33に図のように 【下から表示させる】 にはどうしたら良いでしょうか? ただし、検査Aと検査Bは、毎回変化しますので、検査Aと検査Bを両方見て、データのあるほうを表示するという条件があると思います。 それと、この検査結果の表示は最大で5個です 5個を超えた場合無視で構いません。 これを出来れば関数で実現したいです。

  • エクセル2002で関連セルの数値を並べ替える

    エクセル2002を使っています。 画像の様なランキングがあり、それを関連するセルの数値順に並べ替えるにはどうしたらよいでしょうか? この場合、G9セルに41365782と表示させたいです。 これを関数のみでやりたいと思います。 よろしくお願いいたします。

  • エクセル セルの表示形式「文字列」だけを抽出したい

    エクセル2007を使用しています。 A列に数字が入力されていますが、そのセルの表示形式は、「標準」「数値」「文字列」とバラバラです。 この「文字列」のセルだけを抽出したいのです。 例えば、関数などを利用して、B列に表示するなど。 よろしくお願いします。

  • Excel 加算数値の個数

    Excelで加算数値の個数を返してくれる関数、または方法がありますか。 たとえば B1セルに =7+6+4 と入っていたら3つの数値を足し算しています のでB2セルに3がはいってほしいのです。もちろんB1セルには17が表示されます。 同様に B1セルに =5+5+5+5+9 と入っていたらB1セルには29、B2セルに5が入る ように、ということです。 よろしくお願いいたします。

専門家に質問してみよう