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

よろしくお願いします

A 回答 (7件)

ワークシート関数では非常に厳しいと思いましたので専用の関数で如何でしょうか。


因みに数字(半角、全角)をそのまま抽出します。
(1)alt+F11キー押下→挿入→標準モジュール→以下のコードを貼り付け→alt+F4
(2)任意セルに=numget(対象セル)を入力、数値とするならば、=numget(対象セル)*1で下方向にコピー

ユーザ定義関数
Function numget(rng As Range)
For i = 1 To Len(rng)
ch = Mid(rng, i, 1)
If ch Like "#" Then
wk = wk & ch
End If
Next i
numget = wk
End Function
    • good
    • 6
この回答へのお礼

有難うございました

こちらの回答を見る前にベストアンサーを決定しましたが、
数値として合計も出したかったので、業務にはこちらを利用しました!!

(関数の意味は全く分かりませんが・・・)   笑

お礼日時:2010/09/14 18:04

こんにちは!


一例です。

↓の画像でE2セルに
=IF(D2="","",MID(D2,MATCH(TRUE,ISNUMBER(MID(D2,ROW($A$1:$A$10),1)*1),0),COUNT(MID(D2,ROW($A$1:$A$10),1)*1)))

これは配列数式になってしまいますので、この画面からコピー&ペーストしただけではエラーになると思います。

E2セルに貼り付け後、F2キーを押す、またはE2セルをダブルクリック、または数式バー内で一度クリックします。
編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定します。
数式の前後に{ }マークが入り配列数式になります。

これをオートフィルで下へコピーすると画像のような感じになります。

尚、D列の10文字まで対応できる数式にしています。
そして、数値が連続していれば最初に数値が出てきたところから入っている数値は全て表示されます。

以上、参考になれば良いのですが・・・m(__)m
    • good
    • 2
この回答へのお礼

回答有難うございました

おかげ様で解決しました

お礼日時:2010/09/14 18:05

回答No1です。


F列が備考であるとしてさまざまな文字が入っているとのことを見落としていました。
G1セルには次の式を入力して下方にオートフィルドラッグしてください。

=IF(OR(D1="",COUNTIF(D1,"*名*")=0),"",IF(ISNUMBER(MID(D1,FIND("名",D1)-2,2)*1),MID(D1,FIND("名",D1)-2,2)*1,IF(ISNUMBER(MID(D1,FIND("名",D1)-1,1)*1),MID(D1,FIND("名",D1)-1,1)*1,"")))

この式でしたら数字の前に文字列が入っている場合にでも問題なく対応できます。
    • good
    • 0
この回答へのお礼

再回答までして頂いて有難うございました

お礼日時:2010/09/14 18:06

セル内の文字列の中に2桁までの数字が入っている場合に、その数字部分を抽出したいなら以下のような数式になります。



=MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A2)&1234567890)),1)&IF(ISNUMBER(MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A2)&1234567890))+1,1)*1),MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A2)&1234567890))+1,1)*1,"")
    • good
    • 3
この回答へのお礼

有難うございました

コピペで簡単に出来ました!!

お礼日時:2010/09/14 18:01

備考欄がA列だとすると、隣のB列に以下のように関数を記述して下さい。


(例は1行目の場合)

=IF(ISNUMBER(VALUE(MID(A1,1,2))),MID(A1,1,2),IF(ISNUMBER(VALUE(MID(A1,1,1))),MID(A1,1,1),""))


但し以下の様な条件があります。

・先頭が数字で始まっていること。
 「約1名」などは対象になりません。

・数字は2桁以内であること。
 3桁以上の場合は3桁目以降を無視して抽出します。
 「123名」の場合「12」と抽出されます。

・備考欄に2バイト(全角)で入力されている数字は、
 そまま2バイト(全角)で抽出します。
 「12名」の場合「12」と抽出され、
 「12名」の場合「12」と抽出されます。

また数字の後ろ(2または3桁目以降)の文字が何であれ
先頭が数字であれば抽出します。

 「12名」でも「12個」でも「12」と抽出されます。


例えば、何らかの人数を抽出することが目的だが、
中には「○個」という不要な情報も混ざっている、などの場合でも
先に「名」という文字を特定する方法はありますが、
もう少し複雑な関数になってしまいます。
    • good
    • 0
この回答へのお礼

回答有難うございました

お礼日時:2010/09/14 18:07

○○名が最後にあれば簡単なんですがそうではなく、



あいうえお55名かきくけこ
やゆよ8名ん

のような任意の文字列中で場所不特定の「名」の前の1文字または2文字の数字のみを取り出すんですね?
数字の前以外に「名」という文字は存在しないんですね?

そうであれば、
・備考セル内に「名」が無ければ表示しない。
・「名」の前の2文字を取り出し、数値化できなければ「名」の前の1文字だけを取り出す。
・そうでなければ「名」の前の2文字を取り出し、数値化する。
という式でいけますね。

仮に対象がA1セルだとすると

=IF(ISERROR(FIND("名",A1)),"",IF(ISERROR(VALUE(MID(A1,FIND("名",A1)-2,2))),VALUE(MID(A1,FIND("名",A1)-1,1)),VALUE(MID(A1,FIND("名",A1)-2,2))))
    • good
    • 1
この回答へのお礼

回答有難うございました

お礼日時:2010/09/14 18:08

例えばF列に備考があるのでしたらG1セルには次の式を入力して下方にオートフィルドラッグします。



=IF(F1="","",SUBSTITUTE(F1,"名","")*1)
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

今、見られている記事はコレ!

  • エルフ田さん:第70話「絵と向き合うということ」

    エルフ(ファンタジーとかに出てくる長寿の種族)の「エルフ田」と、ただの人間である女子社員2人による日常ギャグ。エルフならではのズレたツッコミでバシバシ人間界の話題を斬っていきます。

  • たまランチ:第46話「エビチリ」

    外ランチを愛してやまない元気な女子社員・たまちゃん(26)。オシャレなお店より「安くておいしい」お店が大好き! そんな女子力低めなたまちゃんの、色気より食い気な日々をつづります。

  • 女子必見!2016年のトレンド水着最新ナビ

    夏目前、今年もデパートでは水着がお目見えするようになった。「教えて!goo」には、スタイルに自信の無いという女性から「どんな水着を買えばいいのか わかりません」という質問が。これに対し、「ワンピースは、生...

  • ポイっと捨てる前に…卵の殻でふきんを漂白できるか実験してみた

    毎日のように出るゴミのひとつに卵の殻がある。捨てるたびにこれが何かに使えないかと思っていた。そこで「教えて!goo」で「卵の殻の処分について」という質問を発見。さっそく、のぞいてみると卵の殻の再利用につ...

  • 真面目に働かない同僚への賢い対処法

    皆さんは今の職場に何か悩みがないだろうか。特に人間関係の悩みともなると、それが原因で退職や転職も考えるほど深刻なこともある。「教えて!goo」を見ていても、沢山の仕事の悩みが寄せられている。そんな中で今...

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード

コンピュータやスピーカーなどのオーディオ、スマートフォンをはじめとした携帯電話とそのサービスに関する質問が充実。急なトラブルの対策案もここで得られるかもしれません。

このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ