• ベストアンサー

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

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

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

Excelのことだと思いますが、  =SUBSTITUTE(A1,"-","") で、抜いてみたらいかがですか? その後を、コピー-右クリック-形式を選択して貼り付け 「値」 で、貼り付けてしまえば、良いと思います。 区切り位置の場合は、列のデータ形式を文字列(T)に選べば、「0」がなくなることはないと思います。

chirop
質問者

お礼

ご回答ありがとうございます。 そうです。エクセルです。うっかり書くのを忘れていました。すいません。 出来ました!こんな便利な関数があったのですね。助かりました。 今後よく使う関数の1つになると思います。 ありがとうございました。

その他の回答 (5)

回答No.6

セルA1に0を入力 B1が電話番号 例9077776666 C1に =CONCATENATE(A1,B1) と入力 C1には 09077776666 と表示されます。

chirop
質問者

補足

ご回答ありがとうございます。 今回はたまたまわかりやすい電話番号を例に出したのですが、頭に入る0の数が様々なデータの場合も知りたいです。

  • komet163
  • ベストアンサー率51% (22/43)
回答No.5

わたしも「区切り位置」の使い方を教えてgooで最近知りました。 推測ですが、質問者さんは最初の列のみ「文字列」に設定しているのでは? 「列のデータ形式」の設定は、「データのプレビュー」にて各列をクリックし、それぞれの列に「文字列」を設定できます。 言い変えると、2列目以降を指定しない場合、列のデータ形式は「G/標準」となって、先頭の0は無視されてしまいます。

chirop
質問者

お礼

わかりました。 区切り位置の中のプレビューですね! この機能は適当に触ってみて全貌をよく理解しないまま使っていました。 とても参考になりました。ありがとうございました。

chirop
質問者

補足

ご回答ありがとうございます。 シート全体を文字列にしてもダメなのです・・・。 「データのプレビュー」というのは使ったことないのですが、どのような機能ですか? いろいろ触ってみましたが、どこで設定するのか見つかりません。

  • 1ryokutya
  • ベストアンサー率34% (19/55)
回答No.4

こんなのはどうでしょうか? 置き換える前に、電話番号データの書式設定を変更します。 ★電話番号データを範囲選択→セルの書式設定→表示形式→ユーザー定義→0######### と入力する→OK その後に置き換えてください。先頭に0が表示されるようになりますよ。(実際にやってみましたので)

chirop
質問者

補足

ご回答ありがとうございます。 今回はたまたまわかりやすい電話番号を例に出したのですが、頭に入る0の数が様々なデータの場合も知りたいです。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

>先頭の「0」を消さずにハイフン無のデータに置き換える方法を教えてください。 そうですねー。実際やってみると意外とうまくいかなかったです。そこで、安直ですみませんが、マクロで一括処理です。 電話番号のセル範囲を選択した状態で、実行して下さい。 【手順】 1. EXCEL画面で[Alt]+[F11]キーを同時に押す。   -->Visual Basic Editor起動(以下VBE) 2. VBE画面のメニュー[挿入]-[標準モジュール]クリック 3. 2.で開いたウインドウに以下のVBAコードをコピー&ペースト 4. VBEを閉じる 5. [ツール]-[マクロ]-[マクロ]から実行 【以下VBAコード:場所=標準モジュール】(次行から終わりまで) Sub Sample()   Dim rngCurrent As Range   Dim strVal As String      On Error Resume Next   For Each rngCurrent In Selection     With rngCurrent       '全角ハイフン半角化       strVal = StrConv(.Text, vbNarrow)       'ハイフンカット       strVal = Replace(strVal, "-", "")       'セル表示形式を文字列に       .NumberFormat = "@"       '書込み       .Value = strVal     End With   Next rngCurrent End Sub

chirop
質問者

補足

いつもありがとうございます。 他の人達にも教えたいので、出来ればマクロじゃない方法を探しています。 上記の内容はマクロ勉強のネタ帳に加えさせていただきます。

  • Cbay
  • ベストアンサー率50% (41/81)
回答No.2

こんにちは。 もっとスマートなやり方があるかもしれませんが、私がやっている方法をご紹介しますね^^ A列(A2~A10)に電話番号が入っていると仮定しますね。(置換後の0が抜けた数値で結構です。) 1) 任意のセル(仮にA1)に「'0」という値を入力します。 2) B2に「=$A$1&A2」と入力し、その式をB10までコピーします。('0が入っているセルの指定をする場合必ず$○$○の形式で入力してくださいね^^) 3) B列をまるごとコピーして、A列にかぶせ、「形式を選択して貼り付け」で「値」を選びます。 これで電話番号の表示ができますが、説明すると長いですね。実際の作業は簡単です^^

chirop
質問者

補足

ご回答ありがとうございます。 今回はたまたまわかりやすい電話番号を例に出したのですが、頭に入る0の数が様々なデータの場合も知りたいです。

関連するQ&A