• ベストアンサー

Excelで数字だけ抽出

 Excelを最近になって職場で使い始めました。 初心者ですのでよろしくお願いします。  「パソコン(25%)」,「プリンタ(55%)」のような列の中から %の前の数字の部分だけを抽出したいのですがうまくできません。 MIDやLEFTだと、%の前の部分の文字数が同じでないといけないし、、。  今は隣の列に数字だけを手入力して、その数値を使って 計算しているのですが面倒なので、なにかいい手段があれば 教えてください。    

  • aisim
  • お礼率45% (17/37)

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

  • ベストアンサー
  • surounin
  • ベストアンサー率28% (30/106)
回答No.3

以下の条件を仮定して作ってみました。 ご参考になれば^^; 条件 文字列がA列に入力されている。 数字は1箇所だけで、連続して入力されている。 数字の左側は半角の(、右側は半角%が入力されている B列に、=FIND("(",A1,1) C列に、=FIND("%",A1,1) D列に、=MID(A1,B1+1,C1-D1-1) と入力するとD列に数値が表示されるはずですが^^; はずしてたらごめんなさい

その他の回答 (5)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.6

残念 ネスト数の壁に阻まれてしまいました =sumproduct(VALUE(CHAR((1-ISERROR(VALUE(MID($B$4,COLUMN(OFFSET($A$1,0,COLUMN(A1)-1,1,LEN($B$4))),1))))*CODE(MID($B$4,COLUMN(OFFSET($A$1,0,COLUMN(A1)-1,1,LEN($B$4))),1))+ISERROR(VALUE(MID($B$4,COLUMN(OFFSET($A$1,0,COLUMN(A1)-1,1,LEN($B$4))),1)))*48))*10^(LEN($B$4)-COLUMN(OFFSET($A$1,0,0,1,LEN($B$4)))))/100 最後の「/100」が情けないですが参考にどうぞ 基本的な考え方は 「プリンタ(55%)」を「{"プ","リ","ン","タ","(","5","5","%",")"}」に分解し それぞれの要素に対し数値かの判定をして 数値でないものに「0」を割り振って 「{"0","0","0","0","0","5","5","0","0"}」として これを再数値化 「{0,0,0,0,0,5,5,0,0}」として その上で各要素に 「{10^8,10^7,10^6,10^5,10^4,10^3,10^2,10^1,10^0}」を掛けて 「{0,0,0,0,0,5000,500,0,0}」としておいて これの総和を求めて0を2つ切り捨ててます 0を2つ切り捨てる部分も関数でフレキシブルに表現できるのですが 既にこの時点でネストの壁に引っかかったので 思考が止まりました (ーー;)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

◆%の前に限らず、文字と文字の間の数字を抽出します   A          B 1 パソコン(25%)  25 2 プリンタ(55%)   55 B1=--MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)),LEN(A1)*10-SUM(LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},)))) ★下にコピー

aisim
質問者

お礼

返信が遅くなりました。 ありがとうございました。 まさしくこれです。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

文字列に必ず数字と、その後ろの"%"が存在するなら =MID(ASC(A1),MIN(FIND({1,2,3,4,5,6,7,8,9,0},ASC(A1)&1234567890)),FIND("%",ASC(A1)&"%")-MIN(FIND({1,2,3,4,5,6,7,8,9,0},ASC(A1)&1234567890))) で数字部分のみを取り出せます。数値と"%"がない場合は#VALUE!エラーとなります

  • driverII
  • ベストアンサー率27% (248/913)
回答No.2

A1に文字列が入ってるとして、 =MID(A1,FIND("(",A1,1)+1,FIND("%",A1,1)-FIND("(",A1,1)-1) などで出来ます。合わない部分は修正して使用してください。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。 文字列として取り出す =SUBSTITUTE(RIGHT(A1,FIND("(",A1)-1),")","") さらに数値化したいなら =VALUE(SUBSTITUTE(RIGHT(A1,FIND("(",A1)-1),")","")) とか。

関連するQ&A

  • エクセル 文字列から数字だけを抽出

    エクセル2016の操作について教えて下さい。 セル内の文字列から数字だけを抽出したいです。 例えばAの列にこのような文字列が入っているとします。 高度5km 高度10.1km この中の数字だけを取り出して隣のB列の同じ行に数字だけを表示させる方法がありましたら教えて下さい。 宜しくお願いします。

  • エクセルで数字、文字列混在のセルから数字のみを抽出し、その合計をスマー

    エクセルで数字、文字列混在のセルから数字のみを抽出し、その合計をスマートに計算する方法を探しています。 現在は他のWEBサイトから数字を抽出する方法が探せたので、それを元に、こんな式を使って計算しています。 =SUM(LOOKUP(10^17,LEFT(L34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(N34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(P34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(R34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(T34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(V34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(X34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(Z34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AB34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AD34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AF34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AH34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AJ34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AL34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AN34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AP34,COLUMN(2:2))*1)) このLEFT(xx34,・・・)の部分をまとめてくくれれば式が単純になると思いますが、いい方法が探せません。 もしこれ以外で、スマートになる方法があればそれでも歓迎します。 ちなみにセルに入力されているデータの例としては「150(4年間)」、「2000(6年間)」などです。 この数字だけの部分を足したいのです。 データが膨大になりフォーマットを変えるのは至極大変なので上述のことを考えた次第です。 皆さんのお力でなんとか出来ればと思っています。 よろしくお願いします。

  • EXCELで同じ数字だけを抽出する方法

    Windows XP です。 A列に数字が入力されています。 この中には、 Aという数値の数字が複数個 Bという数値の数字が複数個 入力されている可能性があり、それ以外の数字は それぞれ1個づつ入力されています。 このような場合、A、Bだけを抽出する方法を 教えてください。 宜しくお願いいたします。

  • 特定の文字や数字だけを抽出

    14H010 14S001 14005 14H001B 14H010B 14005 14S004 1)左から2つだけの数字だけを取り出す方法 2)もし左から二つの数字の隣の文字だけ(HやS)を取り出す方法(2文字の可能性もある) 3)真ん中の3つの数字を取り出す方法(010,001,005) 4)右の文字(B)だけを取り出す方法(2文字の可能性もある) それぞれの方法をIF関数とLEN, RIGHT, LEFT, MID関数の組み合わせを使って抽出できるようなのですが、何時間かけても抽出ができません、、、。 たくさんの質問になりますがお答えいただけると幸いです。

  • エクセルで英数字の文字列から数字を抽出

    エクセルで英数字を含む文字列から数字を抽出く =1*MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$9),1)),0),COUNT(1*MID(A1,ROW($1:$9),1))) 小数点にも対応させるにはどうしたら良いでしょうか。 「AA0.45」→0.45 「0.65BB」→0.65 「CC0.85CC」→0.85 http://office.microsoft.com/ja-jp/excel-help/HA001154901.aspx を参照しました

  • エクセルで個数の抽出

    エクセルで1から100までの数字が1列にランダムに入力されています。 数値は整数だけではなく少数も含まれます。 その数値の中から  1以上2未満、2以上3未満、、、、 という条件の個数の抽出をしたいのですが、COUNTIFでは条件を文字列(">=1")等と入力しなければいけないため、面倒です。 条件のところに例えば>=R[-1]Cなど式を入れることは出来ないのでしょうか。 また、他にもっといい方法があるのでしょうか。 質問の意図が伝わりにくいかもしれませんが、宜しくお願い致します

  • Excel 特定条件でのMAX値を抽出

    こんにちは。 エクセルである特定のMAX値を抽出したいのですがうまく抽出出来ません。具体的には、下のようになっています A列       B列 1       2 7       3 5       6 4       6 3       6 7       6 上のような並びがあるとして、B列の最大値を満たしている数値(この場合は複数の6)に関して、その隣のA列の数値の中で、最大になる数値(この場合は7)を抽出するような関数を作りたいのです。 そのまま読めばいいのかもしれませんが、エクセルを学びたいという気持ちもありますので、どうか分かる方は教えて下さい。

  • エクセルのデータ抽出について

    エクセルにデータが入っています。G列に様々な数値が入力されていて、その中から奇数の数字のみを抽出したいのですが、どのような方法がありますか?ご存じの方、教えて下さい。

  • エクセルのセル内から数字だけを抽出する方法を教えて下さい

    エクセルのセル内から数字だけを抽出する方法を教えて下さい あるデータの列(備考欄)には様々な文字が入っていて、 その中に●名(●は数字)が入っています その数字だけを取り出して 別の列に移す関数を教えて下さい ※この列には他の数字は入っていません、最大で2ケタです よろしくお願いします

  • エクセルで指定した数字以下の数字を抽出して抜き出す

    エクセルで指定した数字以下の数字を抽出して抜き出したいです 例としては A列 B列 いぬ 1 ねこ 2 うし 3 とら 1 はと 2 この表から空いているセルに任意の数字を入力して それ以下の数字を別のセルに抽出したいです たとえば2を入力したら いぬ 1 ねこ 2 とら 1 はと 2 このような結果を別のセルに抽出したいです オートフィルターとマクロは使わない方向でお願いします 似たような質問としては下のURLでしたが http://okwave.jp/qa/q3200952.html?from=recommend これでは指定した数字と同じものしか抽出出来なかったので質問させていただきました

専門家に質問してみよう