携帯電話番号をまとめるとよくあるのが,ハイフンありなしの混在です。ハイフンありに揃えるにはどうしたらいいでしょうか。LEN関数を応用して他の関数と組み合わせれば,かんたんにハイフンを挿入して揃えることができます。
携帯電話番号などを入力する時に最初の0が消える場合の対処方法は,以下の関連記事で書いています。表示形式の設定で携帯電話番号にハイフンを入れる方法も解説しています。

やりたいこと

画像のように,ハイフンありなしが混在したリストを,LEN関数を応用してすべてハイフンありにします。
LEN関数

文字列の文字数を返す

構文は,LEN(文字列)です。画像のようにセルを指定すれば,そのセルにある文字列の文字数を返してくれます。

非常にシンプルな関数ですね。
携帯電話番号のハイフン

携帯電話番号の表記は,人によって異なりますね。画像のように,ハイフンのありなしが混在することもあります。この表で解説します。

LEN関数で文字数をカウントしてみると,ハイフンありが13文字,ハイフンなしが11文字になりますね。
このLEN関数を応用して,他の関数と組み合わせればハイフンありに揃えることができます。
ハイフンありに揃える
IF関数を使う
論理式と比較して,真の場合と偽の場合を判断し結果を返す

構文は,上の画像の通りです。
今回やりたいことは,「もし文字数が11文字の場合はハイフンを追加する。そうでない場合は,そのまま表示する」ということになります。
- 論理式:LEN(セル)=11
- 真の場合:ハイフンを入れる
- 偽の場合:そのまま(セル)表示する

画像のように論理式を入れてみます。TRUE(真)とFALSE(偽)で結果が返されますね。
この結果を基に,TRUEの場合はハイフンを入れ,FALSEの場合はそのまま表示するようにIF関数を記述します。
結論的には,次の数式になります。
=IF(LEN(A2)=11,LEFT(A2,3)&”-“&MID(A2,4,4)&”-“&RIGHT(A2,4),A2)
見た目は少しややこしいかもしれませんが,かんたん解説しますね。
LEFT,MID,RIGHT関数を使う
これらの関数は,ハイフンを追加する位置を指定するために使います。携帯電話番号は通常,左から「3-4-4」文字に分けて間にハイフンを入れますね。

LEFT関数で,左の3文字を,MID関数で真ん中の4文字を,RIGHT関数で右の4文字を取り出すイメージです。
先程のリストで,携帯電話番号の最初のデータがあるA2セルを基準に考えます。
LEFT関数
文字列の先頭(左端)から指定された数の文字を返す
A2セルにある文字列から左の3文字を取り出したいので,以下のように記述します。
LEFT(A2,3)
MID関数
文字列の指定された位置から指定された文字数の文字を返す
構文は,MID(文字列, 開始位置, 文字数)です。
開始位置は,文字列から取り出す先頭文字の位置を数値で指定します。文字列の先頭文字の位置が 1です。文字数は,何文字取り出すかです。今回の場合,真ん中の4文字ですね。以下のようになります。
MID(A2,4,4)
RIGHT関数
文字列の末尾 (右端) から指定された文字数の文字を返す
A2セルにある文字列から末尾の4文字を取り出したいので,以下のように記述します。
RIGHT(A2,4)
ハイフンを入れる
これはかんたんで,&でつなぐだけです。文字列なのでハイフンをダブルコーテーションで囲み,該当箇所に “-“ と入力します。
=IF(LEN(A2)=11,LEFT(A2,3)&”-“&MID(A2,4,4)&”-“&RIGHT(A2,4),A2)

上の画像のようにA2セルの場合,IF関数の論理式の比較結果は「FALSE」ですから,偽の場合となり「A2」セルの内容がそのまま表示されます。
オートフィルで,数式をD列の他のセルにも反映させます。

A3セルの場合,「TRUE」ですから,真の場合の結果,つまり「080-3320-3368」というハイフンを入れた値が返ります。
論理式の比較結果が「TRUE」のところは,すべて相対参照されてハイフンが挿入されました。
まとめ
いかがでしたか。今回は携帯電話番号をハイフンありに揃えるLEN関数の応用方法でした。
数式だけを見ると複雑そうに見えますが,意味合いが分かればかんたんな数式ですね。
では,次回もお楽しみに!

