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

よろしくお願いします

このQ&Aに関連する最新のQ&A

A 回答 (7件)

セル内の文字列の中に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
    • 6
この回答へのお礼

有難うございました

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

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

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


因みに数字(半角、全角)をそのまま抽出します。
(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
    • 9
この回答へのお礼

有難うございました

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

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

お礼日時: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
「エクセルのセル内から数字だけを抽出する方」の回答画像6
    • good
    • 5
この回答へのお礼

回答有難うございました

おかげ様で解決しました

お礼日時: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

備考欄が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に関連する人気のQ&A

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

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

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

このQ&Aと関連する良く見られている質問

Q数字の書き方

数字の書き方(1・4・5・6・7)について質問します。
添付した紙の左側に書いてある数字は、印刷物で見かける数字です。
添付した紙の右側に書いてある数字は、私が普段書く数字の書き方です。

印刷物で見かける数字と私が普段書く数字の書き方では、形がちょっと違います。書類に数字を書く時、
私が普段書く数字の書き方で書いた方がよいですか?

私が普段書く数字の書き方(1・4・5・6・7)は、正しく書けてますか?

細かい質問になりますが、宜しくお願いします。



                

Aベストアンサー

数字は実用的な目的で書かれると仮定します。つまり芸術ではなく、美を追求するものではないとします。そうすると誤解のない字であることが最大の条件になります。そのほかに早くかけるとか、親しめる文字であるとか、いくつかの付帯的な問題はありますが、この際それは無視しましょう。
 そういう条件で見ると質問者の数字は誤解される恐れはなく、「正しくかけている」といえます。
 書類に数字を書く時、
>私が普段書く数字の書き方で書いた方がよいですか?
これは何を聞きたいのか、わかりません。
 もっと左の字に似せたほうがよいかという質問ですか。それなら、その必要はないといえます。
 それとも個性の感じられる字の方が良いかということですか。別に取り立てて特徴があるとも見えないので、その場合もノーです。

Qエクセル 複数の列や行にある数字で二個以上ある数字だけを抜き出す方法は?

データをまとめたいのですが、なかなか上手くいかず、皆様の御知恵を拝借させていただけたら有難いです。


まず、四列(ABCD)、三行(1、2,3)に数字が入っています。

表)
7 8 1 6
3 0 4 3
5 1 3 8
この中で、重複する数字は、どれか?を抜き出したいのです。
例えば、上の表では、1、3、8にあたります。
なので、答えが=1,3,8と抜き出す方法はありますか?

とりあえず、=COUNTIFを使ってみたのですが、”検索条件”に、どう入力したら良いか分かりません。

逆に、一つしかない数字を抜き出す方法も教えて頂けたら有難いのですが・・・。

Aベストアンサー

> まず、四列(ABCD)、三行(1、2,3)に数字が入っています。

1列にした方が処理しやすいですが。

A1~D3の範囲に数字が入ってるとして、1列開けて右側のF1~I3の範囲に、

F1:=IF(COUNTIF($A$1:$D$3,A1)>=2,A1,"")
(A1~D3の範囲でA1と同じ数字をカウントし、それが2以上だったらA1の数字、そうでなければ空白)

F1をコピー、F1~I3に貼り付け。

とか。


> 逆に、一つしかない数字を抜き出す方法も

上の式の「>=2」を「=1」とかで良いハズ。

Q正式な数字の書き方

普通の数字(アラビア数字?)には、正式な書き方があったとおもうのですが、
それらをまとめたようなサイトはないでしょうか?

正式な書き方とは、3本か4本の線上に数字を書く書き方です。
説明が下手ですみません。よろしくお願いします。

Aベストアンサー

No.2です。
数字が上下に出入りするスタイルは"non-lining figures" というらしいですね。
これは小文字と一緒に使うもので、大文字と混ぜるときはベースラインをそろえるのだと説明がありました。
http://typo.lomo.jp/typo_13.html
http://www.fontsite.com/Pages/RulesOfType/ROT1297.html
http://www.emigre.com/EFoGC.php
http://www.usgennet.org/family/smoot/oldhand/romannumerals.html

質問の意味自体わかっていないので、「それのことだ」とか、「そんなのじゃない」とか、補足をください。

参考URL:http://www.fontsite.com/Pages/RulesOfType/ROT1297.html

Qエクセル2003@(ちょい難)別シートからある固定値の全セルを抽出し、同じ列にある値を合計する

お世話になります。
エクセルは簡単な関数が扱える程度です。
2時間近くググったり質問サイトの過去ログを
調べたりしても解決出来なかった計算があるので、
ご教授の程よろしくお願い致します。

やりたいことの説明
↓(ここから)
==================================
(1)シート1に次のような表を作成

    |A列|B列|
----|---|---|----
1行 |AA| 5 |
2行 |BB| 4 |
3行 |AA| 3 |
4行 |CC| 7 |
5行 |CC| 9 |
6行 |BB| 6 |

(2) シート2の任意、例えばC1に「AA」と入れる。
この時、シート1のA列の中に「AA」が含まれる行を全て抽出し、
その隣のセルの値の合計をシート1のセルに出力されるようにしたい。

例えばこの場合だと、シート2のC1に「AA」と入れることにより、
シート1のB1(値は5)とB3(値は3)を加算し、シート2のD1に計算結果(値は5+3で8)を出力したい。

==================================
↑(ここまで)

以上、宜しくお願い致します。

質問の内容がちょいややこしいので、
分かり辛ければエクセルの画像をつけて
説明させていただこうと思います。

お世話になります。
エクセルは簡単な関数が扱える程度です。
2時間近くググったり質問サイトの過去ログを
調べたりしても解決出来なかった計算があるので、
ご教授の程よろしくお願い致します。

やりたいことの説明
↓(ここから)
==================================
(1)シート1に次のような表を作成

    |A列|B列|
----|---|---|----
1行 |AA| 5 |
2行 |BB| 4 |
3行 |AA| 3 |
4行 |CC| 7 |
5行 |CC| 9 |
6行 |BB| 6...続きを読む

Aベストアンサー

SUMIF関数で

Sheet2のD1に =SUMIF(Sheet1!A1:A6,C1,Sheet1!B1:B6)

Q外国語で数字の「0(ゼロ)」の書き方と読み方を教えて下さい。

どこの国の言葉でもいいのですが、外国語で数字の「0(ゼロ)」の書き方と読み方を教えて下さい。いろんな種類の「0(ゼロ)」を探しております。宜しくお願い致します。

Aベストアンサー

書き方というと、文字の形のことでしょうか?
…多分違いますね。でも一応書いておきます。

ゼロは大抵の言語で「○」型をしていますね。
例外的にアラビア語では「・」で表します。
また、マラヤーラム語という言語のゼロはσが右に伸びたような形をしているようです。
あとは「零」。

読み方では、大抵ヌル系かゼロ系です。
ロシア語でноль[ノリ], нуль[ヌリ]
フランス語でZe´ro[ゼロ]
他には
ギリシャ語でΜηδε´ν[メーぜン](←"ぜ"は英語のth)
韓国語で零[ヨン(yeong)]
中国語で零[リン(ling)]
など。

参考URL左下の「他の言語」から各国のゼロの表記が分かります。
発音は分かりませんがローマ字なら大体想像がつくでしょう。

参考URL:http://ja.wikipedia.org/wiki/0

QEXCEL セル内い表示される文字が指定範囲内に何文字あるかカウントしたです。

  A  B  C  D  
1 4     明 明日
2 2     投 投手
3 1     答 回答
4 5     情 個人情報
5 3     確 慎重に確認
: :
: :
このような表があり、
A列にはランダムで数字を出して、
A列の数字を下に、C列にvlookupを使って、まず漢字一文字を返します。
さらに、C列の一文字に対応する熟語や文章を
別の表からD列に表示させています。
今、B列1行~5行にそれぞれC列1行~5行の文字が
範囲C:D内の熟語内や文章内にいくつあるかを返したいのですが、
どうすればよいでしょうか。

注意点として、
・C列の文字はころころと変わるようにしてあります。
そのためFIND("明",c:d)などでは対応できません。
・C列には一文字だけ表示され、D列は必ずその一文字を含みます。
ただし、文字列の先頭にあったり、真ん中にあったりと配置パターンは一定しません。
countif(C1:D5,C1)でもだめです。

どうぞよろしくお願いします。

Aベストアンサー

D列の1セル中に同じ文字が2文字あるもの、例えば”一長一短”の
”一”には対応できませんがこれを1つと数えてよい前提であれば
下記で可能です。

B1に =COUNTIF(C$2:C$XX,C2)+COUNTIF(D$2:D$XX,"*"&C2&"*")
 但しC$XX、D$XX はデータの最終行を設定してください。
B1セルを必要分下方向にコピー

以上で少なくとも、補足に書かれている内容はクリアします。

Q調剤薬局事務に適した数字の書き方とは

 調剤薬局で働くため調剤薬局事務の資格を取るつもりです。
しかし、最近、知人に調剤薬局で働くためには、資格より調剤薬局で働くのに適した文字があると聞きました。具体的には簿記の資格を持っておられる方、経理の仕事をされている方の様な数字の書き方が必要だと。初めて聞きました。私は決して上手な字を書くとは言えません。その分、丁寧な字を書く事を心がけてはおりますが・・・そこで質問です。やはり調剤薬局事務の仕事をするためには、簿記の資格を持っておられる方、経理の仕事をされている方の様な数字の書き方が必要なのでしょうか。また、その書き方とはどの様なものなのでしょうか。お教え頂ければ幸いです。よろしくお願いします。 

Aベストアンサー

医療系の仕事をしています。
が、そんな話は聞いたことはありません。
ただ、経理などには文字のかきかたはありましたけど・・・・

自分が思うに、きちんとだれでも読める字ならありではないかと思います。
私も自慢できるような字ではないですけど、メモなど残すときはちゃんと
識別できるような文字を書くように心がけています。
それでいいと思いますよ。
調剤など医療系は命にかかわることですし、同じようなお薬はたくさんあります。
その読みを間違えただけで・・・ぞっとしますね。
それがなければいいのではと思いますよ。
レセプトなどはシステムがするので書くことはまずないし…。

Qセル内の条件にあった文字の抽出

お願い致します。
A1に 1, A2に 3, A4に5, A7に2
とあり、A1:A7の4つのセルを数字として
セルごとにひとつずつB1*B4に抽出したいのですが、
どのようにすれば良いでしょうか?できればVBAは使わずに
エクセルの関数で処理したいです。
どうぞ宜しくお願い致します。

Aベストアンサー

空白セルを無視する 関数 で検索すればHitします

参考URL:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1123782411

Q数字の書き方色々

7に横棒を入れたり、4の横棒をつきださなかったり、9を反対に書いたり、国によって数字の書き方が違いますね。

それらの一覧できるサイトはないでしょうか。

自分で探したのですが、うまく見つかりません。

情報よろしくお願いします。

Aベストアンサー

国によって数字(1234567890)の書き方が『違う』ことはありません。全世界共通です。

実際に手書きで、「7」に横棒を入れるのは、「1」との区別がその人の筆跡(というよりも「クセ」)で混同し易いので、横棒を入れているものです。私の実体験では、フランス人は「1」を、左上部分を大きく(長く)書く傾向にあり、一般日本人の目では「7」のようにも見えます。同国人でも多分同様で、誰かが横棒を入れることを思いつき、これが一般化したものでしょう。しかし横棒つきの「7」は、あくまでも便宜的な区別で『正しい』字ではありません。日本人でもそのように書く人が(まれですが)います。

「z」の中央にヽを付けるケースも少なくないようですが、これは「2」と区別するためです。

手書きでは一般化していませんが、「0」(ゼロ)と「O」(大文字のオー)を区別するために、前者に斜線を加えるのも同ケースでしょう。ただ(私の知る範囲で)「1」と「l」(小文字のエル)を区別する便宜的方法は、日本でも欧米でも無いようです。

古い欧文タイプライターでは、「1」キーが存在せず、小文字のエルや大文字のアイに代えるのが普通でした。「0」も同様です。もちろんその当時、斜線入りの「0」は存在していませんでした。

「9」の反対、というのは目にした体験がありません。ただ、欧米人は「8」を日本人のようにひと筆で書かず、マル2つで書く人が少なくありません。時として上のマルとしたのマルが離れてしまって、それこそ目をマルくします。ことによると、マルを書いて、その下に棒を引いて「9」にしているので、そのように見えるのかもしれません。

国によって数字(1234567890)の書き方が『違う』ことはありません。全世界共通です。

実際に手書きで、「7」に横棒を入れるのは、「1」との区別がその人の筆跡(というよりも「クセ」)で混同し易いので、横棒を入れているものです。私の実体験では、フランス人は「1」を、左上部分を大きく(長く)書く傾向にあり、一般日本人の目では「7」のようにも見えます。同国人でも多分同様で、誰かが横棒を入れることを思いつき、これが一般化したものでしょう。しかし横棒つきの「7」は、あくまでも便宜的な区別で『...続きを読む

QエクセルでA列をB列の数だけ縦に並べたデータ

添付画像を見ていただいて、A列の名前をB列の数だけ縦に並べたD列のようなデータを作りたいのですが、関数などでできるでしょうか。

詳しく質問を書きます
A2が佐藤でB2が2なので佐藤を縦に2つ並べて、その下にA3が鈴木でB3が1なので鈴木を縦に1つ並べていくというものです。名前の数は100名前後になると思います、B列の数は1~4です。

D列のようなデータを作るために毎回コピー&ペーストをしています。
もし自動でできるようになれば仕事の能率が格段にアップすると思い質問をさせていただきました。
回答よろしくお願いします。

Aベストアンサー

D1やD2セルでもよいのですが、先の式よりも次の式を入力して下方にオートフィルドラッグコピーすればよいですね。

=IF(ROW(A1)>MAX(C:C),"",INDEX(A:A,IF(ROW(A1)<=B$2,2,IF(COUNTIF(C:C,ROW(A1)),MATCH(ROW(A1),C:C,0),MATCH(ROW(A1),C:C,1)+1))))


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

人気Q&Aランキング

おすすめ情報