Excel文字列から不要文字を削除する方法

このQ&Aのポイント
  • Excelで文字列の中から不要文字を削除する方法について教えてください。
  • 具体的には、Excel 2007で各セルに入力されている文字列から、ハイフン以降の3文字を削除したいです。
  • また、5桁の数字の後にハイフンがあり、それ以降に文字列が続く場合もありますが、最終的には5桁の数字だけを残したいです。
回答を見る
  • ベストアンサー

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

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

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

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

関数でなくても編集→置換で検索文字列欄に「-*△(△はスペース)」、置換文字列欄に「-」でも可能と思いますが如何でしょうか。

happy_rio123
質問者

お礼

mu2011さん 回答いただきありがとうありがとうございます。 なっなっ何と「編集・置換」であっさりとできるとは考え及びつきませんでした。 関数ばっかりに気を取られておりました。 「眼から鱗」とはこんなことを言うのでしょうね。 他の方からも、貴重な回答をいただき、どれも満足いたしておりましたが 基本的機能で解決できたので、mu2011さんをベストとさせていただきます。 ありがとうございました。

その他の回答 (4)

  • shorun
  • ベストアンサー率42% (133/310)
回答No.5

12345-001 ABC株式会社 から 001 を削除して12345- ABC株式会社にするには 「001」は 001から999の範囲で附番されるとすると、 6桁目が-なので7桁目は 0から9となる。 質問のコード番号7桁目の0から9の「数字」は「数値」ではなく「文字」なので 7桁目=mid(A1,7,1)=<9 ではなく <"9"になります。 その他はNo1回答どおりなので次の式をC1セルに入力して下にコピーで良いと思います。 =LEFT(A1,6)&IF(MID(A1,7,1)>"9",RIGHT(A1,LEN(A1)-6),RIGHT(A1,LEN(A1)-9))

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

いろは(株)とExcelクリニックで結果が違ってるのは単なる誤記でご質問とは関係ないとして。 >中間にあるハイフン以降の3文字を削除した文字列としたい。 =REPLACE(A1,7,ISNUMBER(MID(A1,8,1)*1)*3,"") とかでいいです。

happy_rio123
質問者

お礼

keithinさん 早速の回答有難うございます。 助かりました。 やはり「REPLACE」を使用するのですね。 他の方の回答にも使用されていましたが、「ISNUMBER」はしっかりと学習します。 ありがとうございました。

  • Yu-Kuman
  • ベストアンサー率0% (0/1)
回答No.2

追加です。 よく見ると空白があるようなので 空白を取る場合は =LEFT(A1,6) & IF(ISNUMBER(MID(A1,7,3)),TRIM(RIGHT(A1,LEN(A1)-6)),TRIM(RIGHT(A1,LEN(A1)-9))) となります。

happy_rio123
質問者

お礼

Yu-Kumanさん 早速の回答有難うございます。 思うような結果が出て助かりました。 自分でもいろいろトライしたのですが、うまく行かずお知恵を拝借したしだいです。 文字列操作では、やはり「LEFT」「RIGHT」「MID」今回は「ISNUMBER」も出てきましたので もっと勉強しないといけませんね。 空白削除も追加していただき助かります。 どうもありがとうございました。

  • Yu-Kuman
  • ベストアンサー率0% (0/1)
回答No.1

=LEFT(A1,6) & IF(ISNUMBER(MID(A1,7,3)),RIGHT(A1,LEN(A1)-6),RIGHT(A1,LEN(A1)-9)) ではどうでしょうか? A1は調査対象のセルです。 家にはOpenOfficeしかないのでMSOfficeでもちゃんと行くと思います。 意味としては 左6文字は判断なしで取り出す。 7文字目から3文字が数字だったら右から文字全体数-6文字を取り出す。 でなかったら 右から文字全体数-9文字を取り出す。 となっております。

関連するQ&A

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

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

  • エクセル VBA "-"ハイフンの削除

    お世話になります。 セルに含まれる文字列の中から"-"ハイフンを削除しようと思い、 Cells.Replace What:="-", Replacement:="" と記述したのですが、例えば 0-0-0-111 は 111 となってしまい、"0"も消えてしまいます。もちろん、"0-0-0-111 "は文字列です。 また、シート内の全てのセルが文字列にならなければいけないので関数式を入れることはできません。ハイフンの位置もその都度バラバラです。 よろしくお願いいたします。

  • Excelの置換機能で文字列の部分削除

    Excelの置換機能を使って、あるパターンの文字列の特定の部分のみ削除すると言うことは可能でしょうか? <文字列例> AB01234-56789 のハイフン以下(-56789)のみを削除したい 対象の文字列パターンは、最初の2桁がアルファベットで固定、そのあと数字が5桁(ユニーク)続き、ハイフン、その後ユニークな文字列(数字5桁) さらに言うと、ファイル内にはこのパターン以外の文字列も存在している(ハイフン含む)ので、上記のパターンの文字列のみをマッチングさせ、ハイフン以下を削除したいのです。 やはり、VBAとかで正規表現使わないと無理ですかね?? 数万件の大量のデータの中から上記処理をせねばならず困っております・・ ご教授いただけると幸いです。

  • エクセルで文字列の右から4文字を削除してセルに表示したい

    明けましておめでとうございます。宜しくお願いします。 エクセルの文字表示で、A列(A1~A20)に文字数の違う文字列が20行程入力されています。それを、A列(A1~A20)のセルに入力されてされている文字列から4文字だけ削除して、B列(B1~B20)に表示(入力)したいのですがどうすればいいのでしょうか? 例えば、A列(A1~A20)のセルにそれぞれ「今年は2008年です。etc.」とか「今年は2008年1月3日です。etc.」、、、など文字数の違った文字列が入力されているセルの右から4文字分「etc.」だけ削除してB列(B1~B20)に「今年は2008年です。」とか「今年は2008年1月3日です。」というふうに表示(入力)したいのです。テキストを読んでMID関数で出来るかなと思ったのですが、MID(文字列の、何文字目から、何文字分)というもので、文字列の左から何文字目を先頭に、何文字分を表示ということで、私のやりたい事の逆なのです。いい方法を教えて下さい。

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

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

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

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

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

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

  • エクセルでの文字列の操作(エクセル初心者)

    地域の私的なグループのデータの修正を頼まれました。 エクセルで作成されたファイルなのですが、次のようなことをする必要がある。 1.123456という文字列を3桁で区切り、123-456というようにハイフンを入れる 2.12 34 5678というようにスペース混じりの文字列のスペースの部分をハイフンにして12-34-5678というようにする 3.ある列の全カラムのうち、文字数が20文字を超えるセルを抽出する エクセル初心者ばかりなので、手で修正することも考えたのですが、全員、仕事のある身、省力化したいと考えています。 折角、エクセルになっているのだから良い方法はあるのでは思うのですが、如何でしょうか。 よろしくお願いいたします。

  • 文字列から、特定の文字を削除したい

    アンケートで入力された値を受け取り、メールで送信しているのですが、受け取った値から、特定の文字列を削除することは可能でしょうか? 例えば電話番号の入力の場合、 03-xxxx-xxxx →03xxxxxxxx 077-xxx-xxxx →077xxxxxxx のように、-(ハイフン)が入力されていたら、-を削除した文字列に置換してメール送信したいのです。 入力する時に、3つのテキストエリアに分けるのは諸事情でできないので、特定の文字を削除する関数か処理方法がありましたら、教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 文字列の分解

    1つのセルに入力された文字列を分解したいのです。 例えばφ20 +0.010/+0.001と有る場合別のセルにφ20、+0.020、+0.001と分解したいのです。 =MID(C1,1,FIND(" ",C1)-1) =MID(C1,FIND(" ",C1)+1,6) =MID(C1,FIND("/",C1)+1,FIND("/",C1)) としているのですが、文字列に” ”や”/”がない場合は#VALUE!となり表示出来ませんし、+0.010の部分の桁が増減すると上手く表示が出来なく成ります。 何かいい方法は無いでしょうか?

専門家に質問してみよう