[[20210125113516]] 『3つのセルに分かれた電話番号』(0126) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『3つのセルに分かれた電話番号』(0126)

よろしくお願いします。

電話番号1 電話番号2 電話番号3    結果
 90     123    4567    09001234567

上記のように3つのセルに電話番号が分かれています。

先頭の0はどのセルも表示されていません。
結果のように不足している0を入れて合わせて表示したいです。

携帯電話だけでしたら
=TEXT(A3,"000")&"-"&TEXT(B3,"0000")&"-"&TEXT(C3,"0000")
でできたのですが

桁数が違う固定電話も混在しているためうまくいきません。

・00-0000-0000
・000-000-0000
・0000-00-0000
・00000-0-0000

これを識別して一つのセルに表示したいです。
よろしくお願いします。

< 使用 Excel:unknown、使用 OS:unknown >


電話番号1の先頭はおそらく必ず0になりますよね?
A3のセルの文字列の長さで条件分岐させるのが手っ取り早いかと。(見やすくするため改行を入れてます。)

 =IF(LEN(A3)=1,TEXT(A3,"00")&"-"&TEXT(B3,"0000")&"-"&TEXT(C3,"0000"),
  IF(LEN(A3)=2,TEXT(A3,"000")&"-"&TEXT(B3,"000")&"-"&TEXT(C3,"0000"),
  IF(LEN(A3)=3,TEXT(A3,"0000")&"-"&TEXT(B3,"00")&"-"&TEXT(C3,"0000"),
  IF(LEN(A3)=4,TEXT(A3,"00000")&"-"&TEXT(B3,"0")&"-"&TEXT(C3,"0000")))))

エクセルのバージョンが新しければIFS関数も使えると思うので参考にしてみてください。

データ量が膨大な場合、関数で処理をするとどうしても重くなってしまうため、vbaでの対応も検討してみてください。
(クラファン) 2021/01/25(月) 12:34


 真ん中のブロックが0で始まる番号ってあるんですか?
(コナミ) 2021/01/25(月) 12:41

0から始まる市内番号は無いようです。
市外番号に頭に、一桁の0を追加すればいいんじゃないですか?

(γ) 2021/01/25(月) 12:52


むろん、最後の加入者番号は4桁になるように頭に0を入れることは必要ですね。

(γ) 2021/01/25(月) 12:54


市内番号の仕様について勉強になりました。
私も失念していたのですがもしかしたら海外番号もありうるんですかね?
それぞれのブロックに入る値の条件を教えてもらえると正しい回答ができるかと思います。
一応γさんの回答を踏まえて修正まで

 =0&A3&"-"&B3&"-"&TEXT(C3,"0000")

これなら条件分岐も必要なくスマートですね。
(クラファン) 2021/01/25(月) 13:30


ありがとうございます。

説明不足で申し訳ございません。

固定電話の場合は今までのデータを見るとこんな感じです。
Xは0が入ることはないです。

・0X-XXXX-000X
・0XX-XXX-000X
・0XXX-XX-000X
・0XXXX-X-000X

それと携帯電話です。

教えていただきました関数を入れてみたのですが携帯電話の真ん中の4ケタの部分が3ケタ以下ですと
3ケタの表示になります。

説明がうまくできず申し訳ありません。
よろしくお願いします。
(0126) 2021/01/25(月) 14:27


 携帯で真ん中が3桁の場合は、最後のブロックが5桁になってませんか?
(コナミ) 2021/01/25(月) 14:48

ありがとうございます。

それぞれのセルが 90 12 345となっていた場合、090-012-0345となっています。

クラファン様が2回目にご回答いただきました方は、090-12-0345となります。

よろしくお願いします。

(0126) 2021/01/25(月) 15:10


 そもそも、

 >90 12 345となっていた場合

 このような形式の携帯番号はあり得ないのでは?
 手書きすると090-0012-0345ということですよね?

 日本の携帯番号は2ブロック目の最初の2桁は事業者ごとに振られた番号です。
 10から始まるので00などはないと思います。その番号が正しいという確証はあるのですか?
 また、海外の携帯ということはあるのですか?(海外に番号にそういうのがあるのかは
 知りませんが)

http://www.saturn.dti.ne.jp/~hijirin/keitai_cde.html
(コナミ) 2021/01/25(月) 15:29


コナミさんに付随する質問ですが、携帯電話、固定電話全てを含めた上で、
 000-0000-0000
 1    2   3

1,2,3のブロックで先頭に0が来る可能性のあるブロックはどこになるのでしょうか?
逆に先頭に0が来ないブロックはどこになるのでしょうか?
また、必ず先頭が0になるブロックはあるのでしょうか?
条件さえ分けることが出来ればIF、LEFT、MID、TEXT辺りでなんとかなると思います。
(クラファン) 2021/01/25(月) 15:42


https://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html
を参考にして下さい。

そもそも、固定と携帯では桁数が異なりますし、固定の場合のブロックごとの
桁数も一律ではありません。

固定電話は10桁で、3つのブロック(市外、市内、加入者番号)について決まりがあります。
携帯電話は11桁で、それもコナミさんから紹介のあったように決まりがあります。

第一ブロックは、すべて0で始まります。(これは固定、携帯問いません)
第二ブロックは、0から始まることはありません。
第三ブロックは、自由です。0から始まることもあります。

例外的に市内局番がないところがあるようですが、無視しうる例外です。

(γ) 2021/01/25(月) 16:04


ありがとうございます。

すみません。私の確認不足でした。
コナミ様、γ様のおっしゃる通り携帯番号の2ブロックは4ケタでした。

クラファン様が教えてい下さいました関数でできました。
ありがとうございました。
(0126) 2021/01/25(月) 16:31


私も勉強になりました。
みなさんありがとうございます。
(クラファン) 2021/01/25(月) 16:32

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.