• ベストアンサー

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

Excel 2007で各セルに文字列として入力されている、数字を削除し文字だけにしたい。 数字は先頭に入力されています。(顧客コード) 例: 12345-001 ABC株式会社 98765- ZYX有限会社ごお商会 等 数字を削除し文字列だけで元のセルにセットしたいです。 きっと簡単なことなんでしょうけど、過去を検索しても良くわかりませんでした。 よろしくお願いいたします。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.5

[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行目以降に示したように、全角アルファベットおよび全角カナは、何れも半角文字になってしまいます。 以上の解説で分からなければ、貴方の「レベル」に合った回答に従ってください。

happy_rio123
質問者

お礼

mike_gさん 大変丁寧な解説ありがとうございます。 早速手元のデータで試してみました。 「B1」「C1」「D1」のセルが何を行っているのかがわかり、それを結果として 1つの式にまとめたものだということが良くわかりました。 「99」の謎解きも出来、胸につっかえていたものがとれてすっきりしました。 関数は長くなると訳がわからなくなるので、このように短くご説明いただくと とてもわかりやすかったです。はい私のレベルでも。 この盆の期間中に作成しなければならないものがあるので、四苦八苦いたしております。 また質問するかもしれませんが、よろしくお願いいたします。 どうもありがとうございました。

その他の回答 (5)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

参考までに。 分離したい位置に必ずスペースが入っているわけでなく、文字列中にある最後の数字より右側の部分を抽出したい場合は以下のような数式で抽出できます(10文字目までに数字がある場合の数式)。 =TRIM(MID(A1,MAX(INDEX(ISNUMBER(MID(A1,ROW($1:$10),1)*1)*ROW($1:$10),))+1,100))

happy_rio123
質問者

お礼

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

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

=IF(ISNUMBER(FIND(" ",TRIM(ASC(A1)))),REPLACE(TRIM(ASC(A1)),1,FIND(" ",TRIM(ASC(A1))),),A1&"") と言う方法もあります。(こちらは文字数に限界はありません)

happy_rio123
質問者

お礼

kagakusukiさん 早速の回答ありがとうございます。 皆さんから沢山の方法をお教えいただき助かっております。 一つの答えを導き出すのにも多くの方法があって、EXCELは奥が深いですね。 私は中々やり方が思いつかなくて苦労しております。 どうもありがとうございました。

noname#204879
noname#204879
回答No.3

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

happy_rio123
質問者

お礼

早速の回答ありがとうございます。 一番すっきり答えが出て助かりました。 ただ大変申し訳ございませんが、知識不足のために 関数の中身が良くわかってないなく、式の内容が理解できていません。 色々と変更してみたのですが、何がどう機能しているのか お時間がおありでしたら、お教えいただけると幸いです。 どうして最後に「1+99」があるのかも良くわかっておりません。 恥ずかしながらよろしくお願い申し上げます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

ご質問が、スペースの前の部分を削除したいという意味なら、ワイルドカード文字を使った置換操作が簡単です。 対象範囲を選択し、Ctrl+Hで置換ダイアログを出して、検索する文字列に「* 」(アスタリスクに半角スペース)を入力し、痴漢する文字列には何も入力せず「すべて置換」します。

happy_rio123
質問者

お礼

早速の回答ありがとうございます。 検索・置換にこんな機能があったのかと感心した次第でございます。 ただ私の説明が悪くデータの中に「半角スペース」が1個だけではなく 12345-001 ABC株式会社 営業管理部 ○○様 のように複数あるために、お教えいただいた方法ですと、一番最後の スペースの後のみが残ってしまいました。 検索・置換でもっと何か方法があると助かるのですが.... どうもありがとうございました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

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

happy_rio123
質問者

お礼

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

関連するQ&A

  • Excel 文字列の中から不要文字だけを削除したい

    以前にも同様の質問をして賢者の皆様から、ご教授いただき快適に使用しておりました。 今回もちょっと苦労しております。お力お貸しください。 Excel 2007で各セルに文字列として入力されている、中間にあるハイフン以降の3文字を 削除した文字列としたい。 数字は先頭から5桁-3桁となっておりますが5桁-のものもあります。(顧客コード) 最終的に5桁で集計を取れればと思っております。 例: 12345-001 ABC株式会社 98765-有限会社ごお商会 等 -XXXを削除し文字列だけで元のセルにセットしたいです。 きっと前回の応用なのでしょうけど、REPLACEやらMIDやら試しましたが良くわかりませんでした。 よろしくお願いいたします。

  • エクセルで数字を文字列として確定する

    エクセルで顧客ID10桁の管理をしたいと思っています。 アルファベットなどではなく、数字だけを使用した10桁の顧客IDで 先頭は必ずゼロが4つ並びます。 入力をする際に数値としての要素は、全く必要ないので 純粋に文字列として扱いたいのですが セルの書式で「文字列」としても セルの左上に緑色の三角が表示され ダブルクリックをすると先頭のゼロが削除されてしまいます。 ものすごく作業に不便さを感じるのですが 普通に「abcdefg」と文字列を入力した場合と 全く同じ扱いとするようにはできないのでしょうか? エクセルに詳しい方教えてください。 ちなみに使用しているエクセルは2010です。

  • Excelの数字の文字列入力で

    Excel2003です。 セルに   "651,652,653" のような3ケタ分の数字とカンマの文字列を入力しようとすると    651652653 という数値にみなされてしまいます。 入力するときに、文字列の先頭に ’ を付けると文字列に みなしてもらえるのですが、つい忘れてしまい面倒です。 セルに指定などで設定する方法は何かありますでしょうか。 よろしくお願いします。

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

    15-株式会社●●● 790 同一セル内に例えば上記のような文字列が会った場合、 数字のみを削除したいのですが、どうすればよろしいでしょうか? 数値のみを選択して削除したいと思い、下記の手順を踏みますが、 「該当するセルが見つかりません。」と表記されるのみです。 Ctrl+G⇒セル選択⇒選択オプションにて定数の数値のみをクリック⇒OKをクリック なぜ該当するセルが見つからないのでしょうっか?

  • EXCELで、文字列の中から数字を抽出したいのですが。

    お世話になります。 EXCELにおいて、A1のセルに文字と数字が入力されています。この中から、最初の数字のみを、B1に抽出したのですが、ご教示お願いします。 文字の長さと数字の位置は、様々な文字列です。 宜しくお願い致します。

  • エクセル 文字列で入力した数字を数値にする

    エクセルで、文字列の設定で入力した数字は、[セルの書式設定]で、数値として設定しても、文字列のままになります。 (セルの左上に、文字列と分かる緑の三角が付いたままになり、表を作ってもグラフの表示は出来ません。) 数値として数字を入力をした後、[セルの書式設定]で文字列にして、再び[セルの書式設定]で数値にすると、数値にはなります。 (この場合、文字列にしても、セルの左上に緑の三角が付かず、このまま表を作ると数値(小数点以下が0の場合は小数点以下が削除されます。)の扱いとなりグラフの表示が出来ます。) 文字列で入力した数字は、数値にはならないのでしょうか? よろしくお願いいたします。

  • エクセルで頭に入っている文字列だけを削除する方法

    エクセルで列に対して、文字列を削除する方法を教えて下さい。セルA1には100010001、A2には100010532、A3には100002310など、A列のあたまには、必ず1000が入力されています。 この文字列の頭の1000を一括で削除したいのですが、A列を指定して、1000を「データ無し」に置換してしまうと、A1のように100010001が1になってしまうなど、たまたま入っていた先頭ではない同じ文字列も置換されてしまいます。 頭に入っている文字列だけを削除する方法を教えていただきたいです。 どうぞよろしくお願い致します。

  • エクセルで半角数字には数値と文字列がある?

    http://okwave.jp/qa/q6473596.html の質問を見て私も納得がいかず質問させていただきます。 たとえば、A1セルの書式を文字列に設定してから半角で数字を打ち込むと数字は数値でなく文字列としてセルに入ります。 この入力後、A1セルの書式を標準や数値に直してもそのセルの中の数字は左に寄ったままで文字列のままでいるようです。 (でもこれをセルの中でエンターキーを押したりすると数値になってしまいますが) 次にB1セルの書式を標準あるいは数値にして数字を打ち込むと、当然のことですが数字は数値としてセルに入ります。 この入力後、B1セルの書式を文字列に変えると数字は左に寄りますから一見文字列になったように見えます。 ところが上記のセルとこのセルをA1=B1で試してみるとFALSEが返ります。 逆に同じ数字を数値として打ち込んだセルと=で試すとTRUEが返ります。 これはA1とB1は同じ文字列としての数字ではないという証拠だと思います。 B1セルの書式を標準に戻すとまた数字は右よりにもどりますから、セルの中の数字は数値のままのようです。 つまり、半角の数字にはセルの書式にかかわらず文字列と数値の二つがあるということなのでしょうか? だとしたらこの二つはどうやって区別すればいいのでしょうか?

  • 特定の文字列を削除

    こんにちは perlで特定の文字列からその後ろをすべて 削除したいのですが、うまくできなくて質問します。 Ex)123.12abc   ⇒123.12 012.123abc   ⇒012.123 123.1234|| ⇒123.1234 上記のようなデータの少数点までの数字の後ろにabc、||、半角、全角スペースなど文字列があります. 少数点までの数字の後ろの文字列すべてを削除したいですが、 特定の文字列からその後ろにある文字列全てを指定する方法(正規表現)はありませんでしょうか? どうかご存知の方、教えてください!! よろしくお願いいたします。

  • エクセル 文字列の中の数字を揃えるには?

    セルの書式設定について教えて下さい。 セルの文字列の数字に小数点以下のあるものと小数点以下のないものがあります。 例: 高度5km , 高度10.1km 「高度」という文字と「km」という文字は列全体のセルで同じです。 これを、このように揃えて表示させることは可能でしょうか? 高度 5. km 高度10.1km 「高度5km」の方は「高度」と「5」の間、「.」とkmの間にスペースを入れてあります。 要はセルの中で小数点の位置で揃えたいです。 教えて下さい、宜しくお願いします。

専門家に質問してみよう