• ベストアンサー

電話番号に - を入れたい

郵便番号で1234567の番号があったら、REPLACE(リプレイス)関数で123-4567ってすぐつけれるのですが、 電話番号で0123456789という電話番号が有った場合、0123-45-6789のように、 - を2つ入れたいのですが、それはリプレイス関数は無理でしょうか?リプレイス関数で可能なら、どのような式にしたら良いか教えてください。  リプレイス関数じゃなく、他に関数が有るなら、是非教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.4

1番さんの回答が一番スマートだと思いますが。 REPLACE関数を使うならREPLACEをネストさせるという方法で対応できます。 =REPLACE(REPLACE("0123456789",5,0,"-"),8,0,"-")

noname#248169
質問者

お礼

IF関数がネスト出来るのは知ってましたが、リプレイス関数がネスト出来るなんて、初めて知りました。 これだったら、色々な事に対応できそうです。 ありがとうございました。

その他の回答 (7)

  • Faye
  • ベストアンサー率24% (601/2496)
回答No.8

皆さんおっしゃっているとおり、地域によって市外局番の桁数が違います。 (必要な番号がすべて同じ桁数なら問題ないんですが) 私はそのような場合、セルを分けていました。 市外局番・市内局番・個別番号と。 データーがすでに大量に入力されていれば今から直すのは大変かもしれませんが… 自動で正しい桁数にすることはまず不可能なので…

noname#248169
質問者

お礼

3つに分ける‥‥そうですね。やりやすいですね。 手動で正しい桁数に直すのはやはり無理なのですね。 今使っているデータは、桁数が決まっているのでまずは一安心ですが、桁がばらばらなデータに出くわしたときは、セルを分けてみようと思いました。 ありがとうございました。

  • hinebot
  • ベストアンサー率37% (1123/2963)
回答No.7

見た目だけ変わればよいのなら、No.1の方の方法(セルの書式設定を使う)、データを変えたい(関数を使う)なら、No.2の方の方法でよいと思います。 ただ、電話番号の場合、郵便番号と違って、市外局番や市内局番の桁数が地域によってまちまちです。 東京や大阪なら0x-xxxx-xxxx ですが、 0xx-xxx-xxxx とか、0xxx-xx-xxxx もありますよね。 なので例えば、市外(A1)、市内(B1)、番号(C1)とセルを分けて、 =A1&"-"&B1&"-"&C1 のようにした方がいいのではないでしょうか。 (扱いたい電話番号の桁が、全て同じであれば関係ないですけど。)

noname#248169
質問者

お礼

やはり、桁数が問題ですよね。 私のデータは、400件は市外局番は4桁で、その中に1件2桁があるかないかなので、それは手動でやるしかないかなぁとも思います。 でも、かなり混在している場合は、わけてやると確かにやりやすいですね。 そのようなデータに出くわしたときには使ってみようと思います。

回答No.6

パターンが123-4567と0123-45-6789だけであるならば、 セルA1に郵便番号があるとして、 =IF(LEN(A1)=9,LEFT(A1,4)&"-"&MID(A1,5,2)&"-"&LEFT(A1,4),LEFT(A1,3)&"-"&RIGHT(A1,4)) では、いかがですか。

noname#248169
質問者

お礼

ちと長い‥‥(^_^;) でも‥‥そうか!IF関数を使えば、より使いやすくなるし、応用も利くんですね。 IF関数‥‥気が付かなかったです。 ありがとうございました

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

こんにちは。maruru01です。 REPLACEの入れ子の方法が出たので、別の方法。 A1にデータがある場合、 =TEXT(A1,"0000-00-0000") です。 ちなみに、市外局番と市内局番の桁数を自動で判別させるのは、至難の業ですよ。

noname#248169
質問者

お礼

へぇ~。そんな便利な関数もあるのですか。 これって、いろんな事にも使えそうですね。 ありがとうございました。 市外局番の桁数‥‥ハッ!そういえば!!

  • Faye
  • ベストアンサー率24% (601/2496)
回答No.3

EXCELですか? でしたら「セルの書式設定」「表示形式」タブ内の分類「その他」で、「種類」欄にある「電話番号(東京)」を選択します。 いったん「OK」をクリック、再度「セルの書式設定」を開き、「ユーザー定義」を選択、一番下が [<=99999999]####-####;(00) ####-#### となっていると思いますので、それを [<=99999999]####-####;(0000) ##-#### に直します。 こういうことでしょうか? 的はずれだったらすみません。

noname#248169
質問者

お礼

表示形式って、いろんな風に使えるのですね。 関数だけに頼らず、表示形式もドンドン使ってみようかな? 市外局番の直し方が勉強できて良かったです。

  • paruru
  • ベストアンサー率37% (154/407)
回答No.2

すいません、すっごくうっとおしいのですが =LEFT(A1,4)&"-"&MID(A1,5,2)&"-"&RIGHT(A1,4) ではだめでしょうか。。。

noname#248169
質問者

お礼

ちょっと長いですね(汗)。 でも、LEFT関数とMID関数とLIGHT関数を、一つの式で使えるなんて知りませんでした! 別の意味ですごい勉強になりました。

  • esprei
  • ベストアンサー率56% (718/1271)
回答No.1

Excelのことでしょうか? Excelなら表示形式を使えば出来ると思います。 セルの書式設定を出して表示形式のタブ。 ユーザー定義で、 ####-##-#### このように設定すると、0123456789が0123-45-6789に表示されます。

noname#248169
質問者

お礼

ありがとうございます。 表示形式でも簡単に出来るんですね。 一度にやる場合に重宝できるかもしれない♪

関連するQ&A