• ベストアンサー

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

電話番号データを検索用にハイフンを抜いたデータに置き換えたいのですが、「置換」や「区切り位置」等でハイフンを抜いても、数値に置き換わってしまい、先頭に入っている「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

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

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

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

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

  • excel2007 電話番号先頭の0処理 文字列へ

    excel2007を使っています。 csvで得た、顧客データで、電話番号があります。-ハイフンがある場合です。 ファイルを、ダブルクリックで開きます(データ、CSVで開くとまた違うかもしれませんが) 090-5555-5555 など。 これを、09055555555という形にしたいのですが、 1)書式を文字列にする 2) - を、空欄に、置換すると、 最初の0がなくなります。 また、 9055555555 になったとしても、次善の策として、 '0 とかをくっつけたり、なにか一括処理ができればよいのですが、それもうまくできず、(& でくっつけることもできないですし)、困っています。 何か良い方法はありますでしょうか。

  • Excelで電話番号の0を保持して-を取り去るには

    Excelのシートに、 052-123-4567 080-1234-5678 のような電話番号が A1~A999のセルに入力されています。 これらのすべての電話番号の -(半角ハイフォン)を取り去って、 0521234567 08012345678 というようにしたいのですが、 置換で 検索する文字列のボックスに - (半角ハイフォン) 置換する文字列のボックスに空白 (何も入力しない) を指定して置換すると、 521234567 8012345678 というように-は削除されますが、 頭の0が取り省かれてしまいます。 これは、数値として扱われているため0が取り省かれていると思われます。 頭に'(半角アポストロフィー)を付けけばうまくいきますが、 すべての電話番号に'を付ける必要があり現実的ではありません。 (問1) セルの書式を文字列にして、 置換してみましたが、それでも0が取り省かれてしまいます。 先に、セルの書式を文字列にしてから、その後で、電話番号を読み込ませて、セルの書式が文字列になっていることを確認してから置換しても、0が取り省かれてしまいます。 なぜ、セルの書式を文字列にしても、0が取り省かれてしまうのでしょうか? (問2) 置換ダイアログのオプションで、 置換後の文字列の書式の表示形式で文字列を指定して、 置換してみると、 -が取れ省かれずに 052-123-4567 のままになっています。 置換後の文字列の書式の表示形式で文字列を指定しないと -が取り省かれるのに、 置換後の文字列の書式の表示形式で文字列を指定すると、 なぜ、-が取り省かれなくなるのでしょうか? (問3) 0が取り省かれずに-を取り除くように置換するには、 どのようにすればよいのでしょうか。 よろしくお願いします。 (Windows10)

  • 電話番号のハイフンを追加したい

    こんにちは。 過去質問を検索してもわからなかったので質問します。 エクセルで既に電話番号として0333333333と入力されています。 このデータを03-3333-3333のハイフンを入れた状態で 表示させたいのですが、どうしたらよいでしょうか? ちなみに電話番号は東京だけでなく日本全国のデータです。 セルの書式設定→郵便番号ではうまくいきませんでした。 関数でも置換えでも構いませんが、プログラミングはできません。 環境はWin2000、Excel2000です。 よろしくお願いします。

  • エクセルで郵便番号の7ケタ数値をハイフン付の書式

    エクセルで郵便番号の7ケタ数値をハイフン付の書式にしたいのですが、 セルの書式設定だけで対応できますか。 入力は数値、表示は郵便番号としたい次第です。 0123456⇒012-3456 2140014⇒214-0014 マクロや関数は、使用せずに、セル書式だけで対応を考えてます。

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

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

  • セルの書式が標準なのに文字列にできるのはなぜ?

    会社のシステムで吐き出したデータですが セルの書式設定が標準なのに文字列となっています。 マクロを利用して、あるセルの値を別セルへ転記すると、 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示になってしまいます。 会社のシステムが吐き出したエクセルはセルの書式が標準なのに 中の数字が文字列でいられるのが疑問です。 会社のシステムの吐き出したデータは Microsoft Excel 2.1ワークシートで 全てのセルの書式設定は「標準」です。 で例えば 12345678901234 は 12345678901234 と表示されていて 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) 0101という値のセルでも 表示は0101ですが 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) それらのセルの値をマクロとかで別セルに転記すると 転記先では1.23457E+13 と表示されてしまいます。 (0101は101になります。) まっさらなエクセルに自分で手入力すると ・セルの書式設定が標準だと 12345678901234 ↓ 1.23457E+13になります。 ・セルの書式設定が数値だと 12345678901234 ↓ 12345678901234 ・セルの書式設定が文字列だと 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) なのに会社のシステムの吐き出しデータは セルの書式設定が標準なのにもかかわらず 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) となっています。 手入力で書式設定が標準の状態でセルに12345678901234 と表示させるには先頭に ' をつける方法しか知りませんが ' が無いのに表示されています。 でもこの該当セルをマクロで別セル(書式設定:標準)に転記すると 1.23457E+13 となります。 またシステムが吐き出したエクセルの同じシート内に 以下のマクロで転記すると ↓ Sub 転記() 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Range("A2") Else Cells(行, 7).Value = Range("A3") End If 行 = 行 + 1 Loop End Sub ↓ このマクロだと A列~F列が書式設定が標準なのに文字列として表示されているのですが 転記先のG列が書式設定が標準であっても 12345678901234 (数値が文字列と保存されています と注釈有) と同じ状態のまま転記できます。 新しいBOOKのシート2に 会社の吐き出しデータをシートコピーした後、 (セルの書式設定:標準だが文字列で表示されている) そのBOOKに登録されているマクロで シート2のセルからシート1のセル(書式設定:標準)に転記すると 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示 となってしまいます。 ちょっと混乱しています。 理屈等教えていただければと思います。お願いします。

  • エクセルにて郵便番号のハイフンを追加したい

    エクセル2000にて作業中です。 郵便番号が文字列で「7900007」というように 入力してあります。 これを一括で「790-0007」と ハイフンを追加したいのです。 セルの書式設定のユーザー定義で 「000-0000」としてみたのですが、 ダメでした。 いい方法はありますか。

  • エクセルで郵便番号のハイフォン消す置換方法

    はじめまして、 郵便番号だけのセルで、ハイフォンを消したいのですが、 ハイフォンを無しに置換すると先頭が0である郵便番号は全て消されてしまいます。セル列は書式設定で文字列としているのですが上手くいきません。 解決方法はありますか? 例 647-1223なら6471223になるのですが 012-1522なら121522となってしまいます。 よろしくお願いいたします

専門家に質問してみよう