• ベストアンサー

Excelで置換が意図したようにできない(ハイフンを消したい)

Excel97です。 電話番号のデータからハイフンを取りたいので 置換で検索する文字列に「-」、置換後の文字列に 何も入れないで置換を押したら頭1ケタの0(ゼロ)まで 消えてしまいました。書式設定は文字列にしました。 ハイフンを消す方法は他にもあるとは思いますが、 どうして上記のような現象になってしまうのか 知りたいです。お願いします。

  • yuko6
  • お礼率90% (445/491)

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 おそらく、"-"を""(空の文字列)に置換後、いったん数値として認識しているからではないでしょうか。書式設定が標準のセルに、「0123」と入力すると、「123」と表示されるのと同じで、最初に先頭の「0」を取った状態にしてからセルに表示するので、いくらセルの書式を文字列にしてもダメなんじゃないでしょうか。 私の憶測ですが。 ちなみに、"-"をとったものを別のセルに書くには、次のような面倒な方法があります。 A1に「03-1111-2222」と入力してあったとして、B1に   =REPLACE(REPLACE(A1,FIND("-",A1,1),1,""),FIND("-",REPLACE(A1,FIND("-",A1,1),1,""),1),1,"") と入れれば、B2に「0311112222」と表示されます。 多分これより簡単な方法を他の回答者が教えてくれると思いますので、あくまで参考程度に。 では。

yuko6
質問者

お礼

早々に回答をいただいたのにお礼遅くなってすみません。 ありがとうございました。 それにしてもなんで0消えちゃうんでしょうね。 maruru01さんが例えに出してらした、「0123」も文字列にすれば 問題なくゼロも表示されますよね。それと同じなら 消えるのはおかしくないですか?

その他の回答 (3)

  • kbonb
  • ベストアンサー率51% (254/492)
回答No.4

こんにちは  以下のページがご参考になるのでは? 【エクセル技道場】-関数-セル内のスペースを削除 http://www2.odn.ne.jp/excel/waza/function.html#SEC56

参考URL:
http://www2.odn.ne.jp/excel/waza/function.html#SEC56
yuko6
質問者

お礼

ありがとうございました。 早速ブックマークに登録しました。 しかしやはりここでも置換の方法が書いてありましたね。 実は会社でそんなにExcelとかに詳しくない人に 教えるにはこの方法が一番だと思ったのですが 関数を使わないとできないというのは残念ですね。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

間違っていたらごめんなさい。私のエクセルの経験から、 エクセルのセルは、数字の連なりの中に「-」が入った データを入力すると、全体を文字と解するのではないで しょうか。 類似して、数字の連なりの中に「英字」が入ったデータが 入力されても、文字と解するのではないでしょうか。 そしてセルの左詰で表示されます。 (例)1123a12 したがって、置換により、データの中に「-」がなくなると 数字データと解釈され、先頭の「0」は省かれ、右詰に 表示される。そこで 例えば、A列に電話番号が入っているとする。(10行までとする。) 対策としては, (1)B列に空白列を挿入する。 (2)ツール-マクロ-VBEをクリックし、 VBEの画面を出し、該当シートをクリックし、   左上でWorksheet、右上でActivateをクリックして選択する。   (1)と(5)が出るから、その間に(2)、(3)、(4)を打ち込んで   下さい。   Private Sub Worksheet_Activate()           (1)   For i=1 to 10        (2) Cells(i,2)="'" & Cells(i,1)  (3) Next i             (4) End Sub             (5)  内容は、A列の先頭に「’」(シングルクオーテイション)をつけ、B列にセットするプログラムを作っている。 (3)VBE画面で、「実行」(横三角マークをクリック)する。  するとB列の各データの先頭に「’」がつく。 (4)B列について、普通の置換(「-」から空)を行う。 上記(2)のVBのところが、操作か関数で出来れば良いが小生は判らず、ごめんなさい。誰か教えてください。

yuko6
質問者

お礼

ありがとうございました!

  • xruz
  • ベストアンサー率50% (72/143)
回答No.2

こんばんわyuko6さん、xruzです。 A1に電話番号があった場合、A2に=SUBSTITUTE(A1,"-","")と入れればできるはずですが。。。 できない場合はA2をセルの書式で「文字列」にしてみてください。 SUBSTITUTE関数は変換値を文字列として返すので0が消えない(はず?)。 がんばってくださいね。

yuko6
質問者

お礼

お礼遅くなってすみません。 この方法は簡単そうですね。 それにしても何で消えちゃうんでしょう。 納得がいきません。

関連するQ&A

  • エクセル 電話番号のハイフンを置換後の0表示

    エクセルファイル 電話番号のハイフンを置換後の0表示方法 Excel2007使用 電話番号表示 03-1111-2222 をハイフン無の 0311112222 にしたい。 03-1111-2222 で「-(ハイフン) を 無に置換」 311112222 になってしまう。 オプション「ゼロ値表示」 書式「文字列」 設定済み どうにか 0311112222 に変換したい。 至急教えてください(>_<)

  • Excelで、ハイフンを消したいけど000は残したい

    A列に、 00033-11-55 00432-12-01 00022-11-56 ・・・・・・ と、5桁-2桁-2桁 の数字がずーっと並んでいます。 これを、B列の、各となりのセルに、 000331155 004321201 000221156 ・・・・・・ というふうに、 ハイフンは消すが、000や00は残した数字を表示させたいです。 単に置換で、「-」を「」に置き換えると、00や000が消えてしまいます。。。。。 A列の、セルの書式設定を文字列にしても駄目でした。 どうすればいいでしょうか? 何かうまい関数などは、ありませんでしょうか?

  • エクセルの置換で・・

    文字列に書式設定したセルに、01-123といったゼロ始まりの数値が入っています。ハイフンを取りたいため、置換で空白にすると上記の場合、 1123といったように頭のゼロまで消えてしまいます。ゼロを残したままに置換えってできないものなんでしょうか?

  • 文字列の状態で電話番号からハイフンを抜きたい

    電話番号データを検索用にハイフンを抜いたデータに置き換えたいのですが、「置換」や「区切り位置」等でハイフンを抜いても、数値に置き換わってしまい、先頭に入っている「0」はカットされてしまいます。 もちろん、セルの書式設定は文字列にしていますが、どうやってもハイフンを抜いた時点で数値に置き換わってしまいます。 先頭の「0」を消さずにハイフン無のデータに置き換える方法を教えてください。 簡単に出来そうな気がするのですが、意外と苦戦しています。

  • エクセルで、半角に置換すると日付に

    使用機種はxp、エクセル2003で作業をしています。 住所録の番地部分のみのセルなのですが、 「1ー2ー1」←このように、全角「長音」でつないである部分を「半角ハイフン」にしたいため、検索&置換しています。 セルの書式設定は「文字列」になっているのに、どうしても年月日に変換されてしまうセルがでてきてしまいます。 どうしたら文字列のままで置換できるでしょうか。 よろしくお願いいたします。

  • Accessでの置換

    Access97を使用しています。 置換のマクロ化って出来ますか。 具体的に言うとボタン一つで 「電話番号」のハイフンを消したいのです。 今はテーブルを開いて編集-置換で検索する文字列に 「-」、置換後の文字列に何も入れずにすべて置換しています。 Excelですと「SUBSTITUTE」という関数が一番近いのですが、 Accessでそれに準ずるものってあるのでしょうか? イベントプロシージャでの記述で教えて いただけると一番助かります。

  • 郵便番号のハイフンを入れたい エクセル2000

    エクセル2000で文字列のセルに 1234567 のように7桁郵便番号が入っています。 これを 123-4567 のように前から4桁めにハイフンを入れる方法を 教えていただけませんでしょうか。 *データ件数が3万件ほどあり、その変換のためです。

  • エクセル2002です。

    住所録の電話番号からハイフンを消そうとしています。 電話番号の列を選んで 「編集」→「置換」と進んでハイフンを消す事に成功しました。 しかし、市外局番の頭に付いている「0」まで消えてしまいました。 この元データは他の住所録ソフトから吐き出したCSVファイルです。ですのでエクセルが数字と見ていると思い、文字列に書式を変えて見ましたが、効果が無いようです。 どうすれば「0」が消えるのを防ぐ事が出来るのでしょうか?よろしくお願いします。

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

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

  • エクセルで「ー」(ハイフン)と「ー」(マイナス)を

    エクセルにデータをエクスポートするソフトがあります。 このデータをさらに処理するのですが、ある列にはデータがない場合「ー」(ハイフン)が出力されます。 これにある関数を施したいのですが、「ー」では処理できないため、これを「0」にする必要があります。 そのため、「ー」を「0」に置換するという方法を用いたのですが、そうしますと負の値「-」(マイナス)の「ー」も置換されて正の数になってしまうという弊害が発生します。 この、「ハイフンは置換するがマイナスはしない」ということができるのでしょうか。 どなたかご存じの方がいらっしゃいましたら、ご教授くださると幸いです。 どうぞ宜しくお願い申し上げます。

専門家に質問してみよう