プロが教えるわが家の防犯対策術!

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

A 回答 (3件)

データの中の数字と数字以外のパターンが一定なら、


LEFT関数 、RIGHT関数、MID関数で取り出すことができます。
「ABC1234」「1234ABC5678」などで、すべて同パターン。

「A1B2CD3」→「ABCD」と「123」でも、パターンが同じなら面倒ですが可能です。

ランダムな中からだと普通では不可能です。
http://srcedit.pekori.jp/tool/excelre.html
のアドインを利用して正規表現が使えるなら、
=REREPL(A1,"\d","")
で「A1B2CD3」→「ABCD」

=REREPL(A1,"\D","")
で「A1B2CD3」→「123」
ただし「123」は文字列なので、数値にしたければ、
=VALUE(REREPL(A1,"\D",""))
とします。

ご参考まで...

この回答への補足

rerepl 関数ははじめてしりました。
Google 検索でも解説ページは見つかりませんでした。よろしければ教えてくださいませんか?

補足日時:2008/05/27 16:12
    • good
    • 0
この回答へのお礼

とても参考になりました!おかげさまです。

セルP1に =value(replace(c1,1,5,"")) と入力したら、期待通りに数値が得られました。でもこの数値の右側にすきまのスペースができました。なぜスペースができたんでしょうか?試しに P2 に =P1*3 としたら数値が得られたので実際上は問題がないのですが.

お礼日時:2008/05/27 16:06

#2です。


> rerepl 関数ははじめてしりました。
ご存じないのも当然のことで、これはエクセルの関数ではありません。
#2で書いたように、そこのURLにあるアドインをダウンロードして、
インストールしないとダメなのです。
エクセル用に特化したフリーソフトと考えてください。

しかし、正規表現を使えると複雑な文字列操作が非常に楽にできるようになります。
    • good
    • 1
この回答へのお礼

なるほど、アドインという便利ソフトがあるんですか。
正規表現をいうのも面白そうです。
ありがとうございました。

お礼日時:2008/05/27 17:10

どのように「文字列と数字を含むセル」になっているか例を示すべきです。

この回答への補足

C1のセルには文字列と数値を含む次の記述を、
Age: 48

P1 のセルには次の数式を、
=REPLACE(C1,1,5,"")

書き込みました。P1のセルには 48 という文字列が得られましたが、質問のような関数があればもっと便利です。よろしくお願いします

補足日時:2008/05/27 15:31
    • good
    • 0

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

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

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

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

Q文字列に数字を含むセルを調べたい

Excel2007を使っています。

A列の文字列に数字を含む場合、B列に「含む」と表示させたいです。

どういった関数でできるのでしょうか?

A列    B列
ABC1   含む
DEFG
23HIJK  含む
I4M5N   含む
OPQ
RSTUV
W6X    含む
7YZ8    含む

Aベストアンサー

B1=IF(COUNT(INDEX(FIND(ROW(1:10)-1,A1),)),"含む","")
★下にコピー

Qエクセル 数値だけ抽出するには?

エクセルで、文字列+スペース+数字と入力されているセルから数値だけ取り出す方法を教えていただけますか?
文字列とスペースの字数は一定で、数値の桁数は6-8桁と変動します。
A列からb列のように変換したいのです。

A列          B列
PMID:_12345678    12345678
PMID:_123456     123456

宜しくお願いいたします。

Aベストアンサー

B1に
VALUE(REPLACE(A1,1,6,""))
でよいでしょう.

数値の桁数には依存しません.

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

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

よろしくお願いします

Aベストアンサー

セル内の文字列の中に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,"")

Qエクセルで文字と数字が入っているセルを足すには

エクセルで文字と数字が一緒に入っているセルの数字
だけを合計することはできるでしょうか?
例えば、休8のようなセルです。
よろしくお願いいたします

Aベストアンサー

こんばんは。

もう少し、具体的な例がほしいですね。
ただ、基本的な使い方をもう少し考えたほうがよいです。数字は計算できますが、文字はカウントしかできません。

以下のようなテクニックで可能ですが、あまり標準的ではありません。


休1
休3
休6
休5
休2
休7

A8:
=SUM(IF(LEN(A1:A7)>1,SUBSTITUTE(A1:A7,"休","")*1,0))

配列数式ですから、一旦式を入力したら、F2を押して、『ShiftとCtrlを押しながらEnterキー』を押して、再確定してください。

後は、#1さんのご指摘のように、マクロ等で、数字を拾い出して計算するしかありません。

QEXCELで、特定の文字を含むセルを抽出したいのですが。

仕入れ帳のようなシートで、B列に商品名があります。
商品名に特定の文字(数字又は文字)を含む時、空白列のC列に、その文字を抽出する方法をご教示ください。B列の商品名は変化させずにです。
意図は、当シート内で並べ替えをする時に、C列をキーとするためです。
商品名が、各種文字と数字で構成されており、そのままでは、希望する並べ替えができないのです。
宜しくお願い致します。

Aベストアンサー

「IF」関数、「ISERR」関数、「FIND」関数を組合せれば可能ですね。
たとえば、文字「a」を検索するなら、B2セルを対象として、C2セルに、

=IF(ISERR(FIND("a",B2)),"","aが入っています")

と入れます。

注意事項として、アルファベットを検索する場合、大文字と小文字を区別します。
つまり、上の例ではB2セルに「a」があれば、「aが入っています」、と表示されますが、「A」では表示されません。
(「FIND」を「SEARCH」にすれば「a」・「A」どちらでも表示される)

Qエクセルcountif である数字を含むセルを数える

エクセルの基本的な質問で失礼します。

現在、以下のようなエクセルを作っています。
ちょっと分かりにくくて恐縮ですが…
元データであるシート「2」のA列にカンマ区切りで入力されている複数の数字を、
シート「1」で1つの数字ごとに横列に並べて、該当しているものには○を出すとしたいのです。

ただ、シート「1」のA1で
『=IF(COUNTIF('2'!A1,1)=1,"○","")』とすると、
セルが「1」のみの時しか○が表示されず、「1を含む場合」は○が出ません。

『=IF(COUNTIF('2'!A1,"*1*")=1,"○","")』ともしたのですが、
そうすると「1」のみの時にも○が表示されなくなってしまいました。

この場合、どういう式にするのが適切でしょうか?
恐れ入りますが、ご教示のほどよろしくお願い申し上げます。

-------------------------------------
シート「1」
-------------------------------------
A1「シート2のA1で1を含んでいる場合には○」
 B1「シート2のA1で2を含んでいる場合には○」
  C1「シート2のA1で3を含んでいる場合には○」
以下同様…
-------------------------------------
シート「2」
-------------------------------------
A1「1,2,3,4」
A2「3,5」
A3「2」

エクセルの基本的な質問で失礼します。

現在、以下のようなエクセルを作っています。
ちょっと分かりにくくて恐縮ですが…
元データであるシート「2」のA列にカンマ区切りで入力されている複数の数字を、
シート「1」で1つの数字ごとに横列に並べて、該当しているものには○を出すとしたいのです。

ただ、シート「1」のA1で
『=IF(COUNTIF('2'!A1,1)=1,"○","")』とすると、
セルが「1」のみの時しか○が表示されず、「1を含む場合」は○が出ません。

『=IF(COUNTIF('2'!A1,"*1*")=1,"○","")』ともしたの...続きを読む

Aベストアンサー

回答No1、No3です。No3の回答は数値が二桁以上での対応の仕方ですが、一部誤りがありましたのでていさせてください。シート2でデータを区切り位置でそれぞれの列に分解するまでは良いのですがそれをコピーしてシート1に貼り付けると述べてしまいましたが、貼り付ける操作は必要ありません。
シート1のA1セルに次の式を入力して右方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。

=IF(COUNTIF('2'!1:1,COLUMN(A1))=0,"","〇")

この式では並んだセルの範囲内に列番号と同じ数値があるかどうかを調べるものでCOUNT関数を使っています。

Q空白でないセルの値を返す方法について

空白でないセルの値を返す方法について


いつもお世話になっております。



A   B   C   D   E   F   G

名前 住所  あ          あ


A~Cは入力は固定です。
D~Gは可変で月毎に入力しなおします。
10月はFに入力、11月はDに入力…みたいな感じでどこか1箇所に入力します。

上記の内容の表でD~Gの入力してあるセルを検索してCに反映させてたいのですが、上手く行きません。
COUNT、COUNTAは空白以外のセルの個数を返しますが、空白以外のセルの値そのものは返しません。
MATCHやINDEXも見ましたが、上手くイメージできません。
お詳しい方、お教えいただければと思います。

Aベストアンサー

こんばんは!
すでに簡単な方法は MackyNo1さんが回答されていらっしゃるので
余計なお世話になりかもしれませんが・・・

データは2行目からあるとします。
どうしても関数で処理したいのであれば、一例ですが
C2セルに
=IF(COUNTA(D2:G2)=0,"",INDEX(D2:G2,,SUMPRODUCT((D2:G2<>"")*COLUMN($A$1:$D$1))))
という数式を入れ、オートフィルで下へコピーする方法もあります。

ただ、質問の内容だけで判断するのであれば
MackyNo1さんの方法がすっきりしていると思います。
どうも失礼しました。m(__)m

QExcel 文字列の中から数字だけを削除したい

Excel 2007で各セルに文字列として入力されている、数字を削除し文字だけにしたい。
数字は先頭に入力されています。(顧客コード)

例:
12345-001 ABC株式会社
98765- ZYX有限会社ごお商会 等

数字を削除し文字列だけで元のセルにセットしたいです。


きっと簡単なことなんでしょうけど、過去を検索しても良くわかりませんでした。

よろしくお願いいたします。

Aベストアンサー

[No.3お礼]へのコメント、

私が提示した式の意味が分かる(と思う)添付図を参照ください。
B1: =TRIM(ASC(A1))
C1: =FIND(" ",B1)
D1: =MID(B1,C1+1,99)

最後の式中の B1、C1 に上2つの式を代入すれば、提示式になります。

セル A2 の「ZYX有限…」の直前は全角スペースだったので、半角スペース1個にするために、先ずはASC関数で全角スペース1個を半角スペース2個にし、TRIM関数で複数個の半角スペースを1個に置き換えています。ちなみに、文字列の左端や右端にスペースがあればそれらを除去します。
最初のスペースの「次」から文字列を切り出すので「+1」になっています。
A列の文字数は百文字以上は考えなくてよかろうと推測して「99」にしました。

【注意】3行目以降に示したように、全角アルファベットおよび全角カナは、何れも半角文字になってしまいます。

以上の解説で分からなければ、貴方の「レベル」に合った回答に従ってください。

Q文字列から英数字のみを抽出する関数

文字列から英数字のみを抽出する関数を教えていただきたいです。

セルの文字列にはひらがな、カタカナ、数字、アルファベット、記号等を含みます。

色々調べてはみたのですが、数字のみを抽出する関数の説明はたくさんありますが、
アルファベットも含むとなると見つかりませんでした。

数字0~9とアルファベット27個の計37個の文字なので、どうにか関数でできると思うのですが。

具体的には下記のようにしたいのです。

●A列
今日iPhone5をauで購入
最新のNEWSを15時~PCで見る 
Moonshotを生み出す「Google X」

●B列にこう表示したいのです。
iPhone5au
NEWS15PC
MoonshotGoogleX


スペースは残ったままでも結構です。

詳しい方、どうかよろしくお願いいたします。

Aベストアンサー

>数字のみを抽出する関数の説明はたくさんありますが

文字列の中に数字が「一塊だけ」ある場合の説明は多分沢山ありますが、(今回のご質問のように)「文字数字文字数字文字数字」と不定数入り混じってる場合の数式は、全く見つからなかったと思いますよ。

たとえば「英数字が最大限3カタマリまで」といった制約を付けて無理矢理関数をくっつける事は出来なくはありませんが、正直不細工ですし、そもそもあんまり現実的じゃありません。



手順:
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける

public function myf(a) as string
 dim i as long
 for i = 1 to len(a)
 if mid(a,i,1) like "[0-9a-zA-Z ]" then
  myf = myf & mid(a,i,1)
 end if
 next i
end function

ファイルメニューから終了してエクセルに戻る

任意のセルに元の言葉を記入し、
=myf(A1)
のように計算する。

>数字のみを抽出する関数の説明はたくさんありますが

文字列の中に数字が「一塊だけ」ある場合の説明は多分沢山ありますが、(今回のご質問のように)「文字数字文字数字文字数字」と不定数入り混じってる場合の数式は、全く見つからなかったと思いますよ。

たとえば「英数字が最大限3カタマリまで」といった制約を付けて無理矢理関数をくっつける事は出来なくはありませんが、正直不細工ですし、そもそもあんまり現実的じゃありません。



手順:
ALT+F11を押す
現れた画面で挿入メニューから標準モ...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?


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

人気Q&Aランキング