電話番号のハイフンを一括で削除する方法【LibreOfficeで計算して確認】
名簿の電話番号が「03-1234-5678」「(03)1234-5678」「03-1234-5678」とばらばらで、システムに取り込めない、重複を探せない、という場面は多いものです。この記事では、ハイフンなどを一括で外す式を、パターン別に実際に計算して確かめた結果だけを紹介します。
出典: 筆者がLibreOfficeで計算して確認(検証スクリプト: site/verify/phone_hyphen.py)。外部サイトの説明は参照していません。Excelでは未確認です(SUBSTITUTE関数とASC関数はExcelにもありますが、動作の細かな差はありうるため、お使いの環境で必ず少数の行で試してください)。
先に結論
- ハイフンだけなら
=SUBSTITUTE(A2,"-","")で足ります。 - 括弧やスペースも混じるなら、SUBSTITUTEを入れ子にして1つずつ外します。
- 全角の数字・ハイフンが混じるなら、先に
ASCで半角にそろえてから外します。 - ただし、長音符「ー」など、ハイフンに見えて別の文字は、この式では消えません。
手順1: ハイフンだけ外す
A2に電話番号が入っているとして、B2に次の式を入れ、下へコピーします。
=SUBSTITUTE(A2,"-","")
SUBSTITUTEは「文字列の中の指定した文字を、別の文字に置き換える」関数で、置き換え後を空("")にすれば削除になります。実際に計算した結果は次のとおりです。
| 入力 | 結果 |
|---|---|
| 03-1234-5678 | 0312345678 |
| 090-1234-5678 | 09012345678 |
| (03)1234-5678 | (03)12345678 ※括弧が残る |
| 03 1234 5678 | 03 1234 5678 ※スペースが残る |
ハイフン以外は残るので、括弧やスペースが混じる名簿では、次の手順が必要です。
手順2: 括弧とスペースも外す
SUBSTITUTEを入れ子にして、外したい文字の数だけ重ねます。
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"-",""),"(",""),")","")," ","")," ","")
内側から順に、ハイフン、左括弧、右括弧、半角スペース、全角スペースを外しています。計算結果は、次の表のとおり、上の4パターンすべてが「0312345678」の形にそろいました。
| 入力 | 結果 |
|---|---|
| (03)1234-5678 | 0312345678 |
| 03 1234 5678 | 0312345678 |
ただし、入力が全角の「03-1234-5678」の場合、この式では何も外れず、そのまま残りました。半角の「-」と全角の「-」は別の文字だからです。
手順3: 全角が混じるときはASCで半角にそろえる
ASC関数は、全角の英数字・記号・カタカナを半角に変換します。先にASCをかけてから外すと、全角の数字やハイフンも対応できます。
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(ASC(A2),"-",""),"(",""),")","")," ",""),"-","")
実際に計算すると、「03-1234-5678」は「0312345678」になりました。全角の数字が半角になり、全角ハイフンも外れています。この式は半角スペースのみ外します(全角スペースの扱いは今回確認していないため、必要な場合は手順2のように全角スペースの置換を足してください)。
注意点: 消えない文字がある
ハイフンのように見えても、別の文字は消えません。たとえば、長音符「ー」を使った「03ー1234ー5678」は、手順3の式でも「03ー1234ー5678」となり、記号が残りました。しかも、ASCによって半角の「ー」に変わった状態で残ります。
こうした文字がある場合は、その文字を式に1つ足して外します。どの文字が混じっているかは、該当セルを=CODE(MID(A2,3,1))のような式で調べると見当がつきます(この調べ方自体は、本記事では検証していません)。
注意点: 結果は「文字列」になる
SUBSTITUTEの結果は文字列です。数値として入っているセル(たとえば312345678)に使っても、結果は文字列の「312345678」になり、ISNUMBERで確認するとFALSEでした。電話番号は計算に使わないので通常は問題ありませんが、先頭の「0」が消えた数値を元に戻す作業は、この式の役目ではありません。
元のデータに戻すとき
式の結果を残したいときは、結果の列をコピーして「値として貼り付け」をしてから、元の列を削除します。いきなり元の列を上書きすると、やり直せなくなるので、列を分けておくのが安全です。
名簿全体を整えるなら
電話番号のほかに、会社名の「株式会社」の位置、全角・半角、スペースの混在など、名簿には直したい表記ゆれが重なりがちです。運営者が作った「名簿クレンジングシート」は、そうした整形をまとめて行うExcelのシートです。まず試したい方向けに、50行までの無料お試し版があります。この記事の方法で足りる場合は、使う必要はありません。
まとめ
- ハイフンだけなら
SUBSTITUTE(A2,"-","") - 括弧・スペースも外すならSUBSTITUTEを入れ子にする
- 全角が混じるなら先に
ASCで半角にそろえる - 長音符など別の文字は残るので、混じる文字を調べて式に足す
- 結果は文字列。元の列は残して、別の列で作業する
式はいずれもLibreOfficeで計算した結果です。Excelでは未確認のため、本番のデータに使う前に、数行で結果を確かめてください。
参考にした情報
- 出典: 筆者がLibreOfficeで計算して確認(検証スクリプト: site/verify/phone_hyphen.py)