• ベストアンサー

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

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

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

  • ベストアンサー
  • 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/17069)
回答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
質問者

お礼

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