Introduction
Ver. all 2013 2016 2019 2021 365
エクセルで電話番号の間のハイフンを抜く方法です。
削除する方法としては、関数を使用する方法と置換後に表示形式を使用する方法があります。
また、削除すると同時に「0」まで消えてしまうことがあります。それを修正する方法を順番に説明していきます。
※説明に使用している画像の電話番号は、数字をランダムに組み合わせたものです。
方法は大きく2つに分かれるにゃ
ハイフンが表示されている状態をチェックする
最初に、ハイフンがどのように表示されているかチェックしましょう。
今回使用するのは、下の表です。わざと、携帯の電話番号を混ぜて、数字が10桁と11桁の2種類になるようにしています。
電話番号が入力されているセルをクリックして、数式バーをチェック。
実際にハイフン「-」が入力されているかチェックです。
下の画像は「-」ハイフンが入力されてる状態です。この場合は、関数を使用して削除しましょう。
入っていない場合は、表示形式(見た目の変更)機能が使用されています。
この場合は、表示形式の変更で対応します。
ハイフンが表示形式で入っている場合の削除方法
では、最初にハイフンが入力されていない場合です。表示形式(見た目)でハイフンが設定されているので、表示形式を戻してあげればOKですね。
元の表示形式に戻しましょう。
削除したいセル範囲を選択したら、
[数値の書式]ボックスの右側▼をクリックします。
一覧から[標準]を選びましょう。
これでハイフンが表示から消えます。
あれ?最初の「0」が消えてしまった。
表示形式を変更すると、最初の「0」は消えてしまいます。これでは困りますね。
後半の説明「表示形式で最初の「0」を表示する方法」で「0」を付けてあげてください。
文字でハイフンが入力されている場合の削除方法
関数を使用してハイフンを削除する方法
では、関数を使用して削除する方法です。
使用する関数はSUBSTITUTE関数。
SUBSTITUTE関数・・・文字列中の指定した文字を、新しい文字で置き換える関数
SUBSTITUTE(文字列,検索文字列,置換文字列,置換対象[省略可])
- 文字列・・・置換対象のセルを選択
- 検索文字列・・・置き換え前の文字列を指定
- 置換文字列・・・置き換え後の文字列を指定
- 置換対象・・・置き換え前の文字列で同じものがある場合、何番目を削除したいか数字で指定
今回の場合は、ハイフンを空欄に置き換えることになります。
では、やってみましょう。ハイフンを削除した電話番号を表示したいセルを選択して、[関数の挿入ボタン]をクリック。
[関数の分類]を「文字列操作」にするか[すべて表示]にして[SUBSTITUTE]関数を選んで[OK]をクリック。
入力する引数は下のようになります。
- [文字列]・・・「C2」
- [検索文字列]・・・「”-“」・・・元のハイフンが半角か全角か確認しましょう
- [置換文字列]・・・「””」
- [置換対象]・・・省略
=SUBSTITUTE(C2,”-“,””)
言葉で説明すると、「C2」の文字列の中で「-」を「””」に置き換えてという意味です。
ポイントは、文字列を式中で使用する時は、必ず「”」で囲む必要があるということ。
また、「””」は空欄の意味。これはエクセルでは良く使用しますね。
引数を入力して[OK]をクリックすれば、「-」が削除されます。
あとは、オートフィル機能を使用して下にコピーすれば完了です。
置換機能を使用して削除する方法
次に置換機能を使用して削除する方法です。
電話番号のセル範囲や列を選択して、
[ホーム]タブ → [検索と選択]をクリック。
一覧から[置換]を選択します。
[置換]のダイアログボックスが表示されます。
※【Ctrl】+【H】で簡単に同じ画面を表示することができます。
※ハイフン「-」ですが、全角半角など多くの文字種類が存在します。完全に文字の種類が一致している必要があるので、うまくいかない場合は、元の電話番号のハイフンをコピーして使用するのがおすすめです。
[置換後の文字列]は空欄のままで、[すべて置換]をクリックしましょう。
下のような結果画面が表示され、
すべてのハイフンが空欄に置き換わってくれます。
確かにハイフンは削除されたのですが、市外局番の「03」「090」の最初の「0」まで消えてしまいました。
これは、置換後にセル内の数字が数値に置き換わったことにより「0」が消えてしまったためです。
エクセルにとって、例えば「0123」という数値があっても、最初の「0」は必要ないと見なされ、「123」に変換されてしまうということ。確かに計算に最初の「0」は必要ないですね。
このままでは困っていしまいます。ということで、次の説明をご覧ください。
表示形式で最初の「0」を表示する方法
無理やり最初の「0」を見た目(表示形式)で追加してしまいましょう。
数字の桁数が固定電話の10桁、もしくは携帯電話の11桁だけの場合は簡単です。
例えば10桁の場合は、その範囲をセル選択もしくは列選択して、
[ホーム]タブ → [表示形式]起動ツールをクリック。
表示された画面で、左側1番下の[ユーザー定義]をクリックします。
赤枠で囲んだ部分で表示形式を自分で作成します。
「0」を含めた数値を表示するには、表示形式でも「0」を指定します。
桁が足りない場所でも「0」を表示してくれますよ。
※この数値の表示形式に関して詳しく知りたい方は、下のリンク先をご覧ください。
では、今回のデータでは10桁の番号しかないので「0」を10個入力してみましょう。
※最初に入力されている「G/標準」は削除します。
結果が下の画像です。ちゃんと最初に「0」が付いてくれました。
携帯電話番号だけの場合は、「0」を「11」個にすればOKですね。
さて、問題は10桁の固定電話と11桁の携帯電話が混在している場合です。次に説明します。
10桁と11桁が混在している場合に、最初の「0」を表示する方法
では、下の画像のように桁数の違う電話番号が混在している場合の対処方法です。
とりあえず、長い方の携帯電話番号が11桁なので先ほどと同じ方法で「0」を11個入力してみましょう。
※最初に入力されている「G/標準」は削除します。
結果が下の画像です。最初の「0」は付いてくれたのですが、「03」の場所は全部で10桁なので、1つ「0」が多くなってしまいました・・・。
うーーーん、携帯番号は11桁だけど、それ以外は10桁にしたい・・・。
全て同じ桁数の電話番号だけの場合は、10桁か11桁で対応できますが、今回の場合は困ってしまいます。
困ったにゃー
表示形式でIF関数が使えれば・・・と思いますが、残念ながらIF関数は使用できません。しかし2つまでなら条件分岐しながら表示形式を指定することができます。
その条件の作り方は
- 条件は[]の中に入力する
- 区切りには「;」を使う
では、やってみましょう。
まず条件の作成です。
「03」の場合は、「03********」になりますね。赤い場所を数えると9桁。つまり9桁しか数字が存在しません。9桁の1番大きい数字は「999999999」。これより大きい数字は携帯電話番号(11桁)ということになります。
これを先ほどの表示形式のルールに直すと下のようになります。
「999999999より大きい数字の場合は数値を「0」を含めた11桁表示にするよ。
という感じ。
この条件を待たさない場合は、「0」が10個分必要になります。ということで先ほどのルール通りに「;」を入力して、その先を作成すると下のようになります。
これで完成。実際に入力すると、
ちゃんと表示されます。
表示形式に関して詳しく知りたい方は、下のリンク先をご覧ください。見た目に色を付けることもできますよ。
まとめ
データとして入力されているハイフンを削除するには、関数を使用するのが一番簡単かもしれません。
最初に「0」を表示する方法は、他の場面でも活躍しますので覚えておくのがお勧めです。
表示形式は便利だにゃー