今だけ人気マンガ100円レンタル特集♪

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

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

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


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

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

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

A 回答 (6件)

[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行目以降に示したように、全角アルファベットおよび全角カナは、何れも半角文字になってしまいます。

以上の解説で分からなければ、貴方の「レベル」に合った回答に従ってください。
「Excel 文字列の中から数字だけを削除」の回答画像5
    • good
    • 9
この回答へのお礼

mike_gさん 大変丁寧な解説ありがとうございます。

早速手元のデータで試してみました。
「B1」「C1」「D1」のセルが何を行っているのかがわかり、それを結果として
1つの式にまとめたものだということが良くわかりました。
「99」の謎解きも出来、胸につっかえていたものがとれてすっきりしました。

関数は長くなると訳がわからなくなるので、このように短くご説明いただくと
とてもわかりやすかったです。はい私のレベルでも。

この盆の期間中に作成しなければならないものがあるので、四苦八苦いたしております。

また質問するかもしれませんが、よろしくお願いいたします。

どうもありがとうございました。

お礼日時:2011/08/12 17:40

参考までに。



分離したい位置に必ずスペースが入っているわけでなく、文字列中にある最後の数字より右側の部分を抽出したい場合は以下のような数式で抽出できます(10文字目までに数字がある場合の数式)。

=TRIM(MID(A1,MAX(INDEX(ISNUMBER(MID(A1,ROW($1:$10),1)*1)*ROW($1:$10),))+1,100))
    • good
    • 5
この回答へのお礼

MackyNo1さん 
早速の回答ありがとうございます。

前出のmike_gさんから色々とお教えいただいていたので、長い式でも少し理解出来るようになってきました。
お教えいただいた式も自分なりに分解して考えてみます。

どうもありがとうございました。

お礼日時:2011/08/12 17:45

=IF(ISNUMBER(FIND(" ",TRIM(ASC(A1)))),REPLACE(TRIM(ASC(A1)),1,FIND(" ",TRIM(ASC(A1))),),A1&"")



と言う方法もあります。(こちらは文字数に限界はありません)
    • good
    • 2
この回答へのお礼

kagakusukiさん

早速の回答ありがとうございます。

皆さんから沢山の方法をお教えいただき助かっております。

一つの答えを導き出すのにも多くの方法があって、EXCELは奥が深いですね。
私は中々やり方が思いつかなくて苦労しております。

どうもありがとうございました。

お礼日時:2011/08/12 17:51

=MID(TRIM(ASC(A1)),FIND(" ",TRIM(ASC(A1)))+1,99)

    • good
    • 1
この回答へのお礼

早速の回答ありがとうございます。
一番すっきり答えが出て助かりました。

ただ大変申し訳ございませんが、知識不足のために
関数の中身が良くわかってないなく、式の内容が理解できていません。

色々と変更してみたのですが、何がどう機能しているのか
お時間がおありでしたら、お教えいただけると幸いです。
どうして最後に「1+99」があるのかも良くわかっておりません。

恥ずかしながらよろしくお願い申し上げます。

お礼日時:2011/08/12 13:56

ご質問が、スペースの前の部分を削除したいという意味なら、ワイルドカード文字を使った置換操作が簡単です。



対象範囲を選択し、Ctrl+Hで置換ダイアログを出して、検索する文字列に「* 」(アスタリスクに半角スペース)を入力し、痴漢する文字列には何も入力せず「すべて置換」します。
    • good
    • 1
この回答へのお礼

早速の回答ありがとうございます。
検索・置換にこんな機能があったのかと感心した次第でございます。

ただ私の説明が悪くデータの中に「半角スペース」が1個だけではなく

12345-001 ABC株式会社 営業管理部 ○○様

のように複数あるために、お教えいただいた方法ですと、一番最後の
スペースの後のみが残ってしまいました。

検索・置換でもっと何か方法があると助かるのですが....

どうもありがとうございました。

お礼日時:2011/08/12 14:03

一例です。


前提ですが、顧客コードと顧客名はスペースで区切られている事とします。
該当データ列がA列とし、以下の操作をお試しください。
(1)B列を選択→右クリックで挿入
(2)A列を選択→データタブ→区切り位置→次へ→区切り文字でスペースを選択→完了
(3)A列を削除
    • good
    • 2
この回答へのお礼

早速の回答ありがとうございます。
助かりました。

区切り文字を使うノウハウは盲点でした。
いただいた回答が私のレベルには一番理解しやすかったです。
この方法ですと、文字列の中にいくつスペースがあっても先頭の不要部分を削除するには
とても便利ですね。

どうもありがとうございました。

お礼日時:2011/08/12 14:09

このQ&Aに関連する人気のQ&A

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

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

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

Qエクセルの数字だけを削除したい

15-株式会社●●● 790

同一セル内に例えば上記のような文字列が会った場合、
数字のみを削除したいのですが、どうすればよろしいでしょうか?

数値のみを選択して削除したいと思い、下記の手順を踏みますが、
「該当するセルが見つかりません。」と表記されるのみです。

Ctrl+G⇒セル選択⇒選択オプションにて定数の数値のみをクリック⇒OKをクリック

なぜ該当するセルが見つからないのでしょうっか?

Aベストアンサー

ワークシート関数Replace, Substitute, または置換機能で、0から9までの数字を半角、全角とも""(空文字列)に置き換えればできますが、けっこう手間がかかる面倒くさいやりかたです。

いったんExcelのワークシートをCSVファイル形式で保存してから、正規表現が使えるテキスト置換ツール(ReplaceAllなど)で、([0-9]+)を""に置換してからExcelに読み込みExcelブック形式で保存するのが手軽です。

なおExcel VBAでも、正規表現を使った検索、置換はできます。VBEの参照設定で、Microsoft VBScript Regular Expressions をチェックすることでRegExpオブジェクトをVBA内で利用できます。今後も何度も必要な機能であれば、身近のExcel VBAプログラマに頼んで、ユーザー定義ワークシート関数として作ってもらっておくといいでしょう。
サンプルコードは以下。Excel VBAの作成、保存先、実行許可設定については調べるなり、身近のExcelパワーユーザーに教えてもらってください。

Function RemNum(Mytxtcell As String)
With CreateObject("VBScript.RegExp")
.Pattern = "([0-9]+)"
.Global = True
RemNum = .Replace(Mytxtcell, "")
End With
End Function

使用例)
=RemNum(a1)

提示されているデータ例では、数字列を取り除いたあと余分な空白が残るので、場合によってはTRIM関数も使うといいかも。
使用例)
=TRIM(RemNum(a1))

データによっては企業名や部署名にアラビア数字を含むかもしれません(例、センチュリー21,20世紀フォックス)ので、取り除けるアラビア数字が文字列の先頭と末尾に限定される感じはしますから、こまかい修正は必要だと思います。

ワークシート関数Replace, Substitute, または置換機能で、0から9までの数字を半角、全角とも""(空文字列)に置き換えればできますが、けっこう手間がかかる面倒くさいやりかたです。

いったんExcelのワークシートをCSVファイル形式で保存してから、正規表現が使えるテキスト置換ツール(ReplaceAllなど)で、([0-9]+)を""に置換してからExcelに読み込みExcelブック形式で保存するのが手軽です。

なおExcel VBAでも、正規表現を使った検索、置換はできます。VBEの参照設定で、Microsoft VBScript Regular Ex...続きを読む

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文字列から英数字のみを抽出する関数

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

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

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

数字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文字列(セル)から一部の文字だけ削除する方法

質問させて頂きます。

エクセル等で下記のような編集をしたいと考えております。

A列      A列
12345     123
67890     678
01234  ⇒  012
56789     567
98765     987

ようは、右側の2文字などを指定して削除をする方法です。

少し説明が分かり辛いかもしれませんが、もし、分かりましたら、ご教授いただければ、幸いです。

どうぞ、宜しくお願い致します。

Aベストアンサー

右側の2文字を削除するなら、セルA1に文字が入っているとき
=LEFT(A1,LEN(A1)-2)
とすれば、取り出せます。
「LEFT」関数は文字列の左側から指定文字数分取り出す関数。
「LEN」関数は、指定文字列の長さを計算してくれる関数です。
なので、左側から「文字数-2」文字取り出せば質問のとおりになります。

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

Qエクセル:式は消さずに数値だけ消す方法

ドラッグして式の部分は消さずに数値だけ消す方法ってあるのでしょうか?毎回数値箇所をドラッグして消してるので面倒です。

Aベストアンサー

F5(ジャンプ)のセル選択で「定数」にチェックを入れて[OK]
数値のみ選択されますので、[Delete]キーで削除できますよ。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qエクセルで、頭に0をつけて数字の桁を揃える方法

エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

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

Aベストアンサー

次の方法は如何でしょうか。
(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除


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

人気Q&Aランキング