こんにちは。
過去質問を検索してもわからなかったので質問します。
エクセルで既に電話番号として0333333333と入力されています。
このデータを03-3333-3333のハイフンを入れた状態で
表示させたいのですが、どうしたらよいでしょうか?
ちなみに電話番号は東京だけでなく日本全国のデータです。
セルの書式設定→郵便番号ではうまくいきませんでした。
関数でも置換えでも構いませんが、プログラミングはできません。
環境はWin2000、Excel2000です。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (7件)

市外局番の桁数には2、3、4桁があり、携帯やフリーダイヤルも対応するのでしょうか。


市外局番、市内局番の長さを指定するユーザー定義関数を書いてみました。
貼り付けるだけなので大丈夫でしょう。

使い方は、=HyojiTEL(セル,市外局番の長さ,市内局番の長さ) とします。例えば、
 市外局番2桁、市内局番4桁なら =HyojiTEL(A1,2,4)
 市外局番3桁、市内局番3桁なら =HyojiTEL(A1,3,3)
 市外局番4桁、市内局番2桁なら =HyojiTEL(A1,4,2)
とします。


ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入し、そこに下記コードを貼り付けます。(当方、Excel97です)

↓ここから
Public Function HyojiTEL(TEL As String, Shigai As Integer, Shinai As Integer)
  If Len(TEL) - (Shigai + Shinai) <> 4 Then
    '指定した市外、市内局番以外が4桁でなければエラー
    HyojiTEL = "エラー"
  Else
    '市外、市内局番を指定した桁で分ける
    HyojiTEL = Left(TEL, Shigai) & "-" _
          & Mid(TEL, Shigai + 1, Shinai) & "-" _
          & Right(TEL, Len(TEL) - (Shigai + Shinai))
  End If
End Function
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。
関数もユーザー定義できるのですね。
勉強になりました。

お礼日時:2002/03/29 20:22

できると思います。


他の方の紹介されていた
番号一覧表を使ってもよければですが。
http://www.scoutnet.or.jp/~yatsu/tel-02.html

最新かどうかは不明です。
どこかに良い一覧があれば
教えて下さい。
それを基に作ります。

地域はある程度限定できませんか。
関東、関西
なるべく小さい方が良いです。

マクロですが簡単です。
良かったら連絡下さい。


電話番号のある列は、何列ですか。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。
解決のメドがたちました。
また何かありましたらアドバイスお願いします。

お礼日時:2002/03/29 20:27

結論から言うと、プログラムが組めても、出来ません。

ルール(ロジック)を言って(表現)見てください。簡単には言えないはずです。市外局番は2,3,4桁有るのは日本のルールです。しかし左から2-4桁の数字を取り出して考えて、市外局番が2桁で有るか、3,4桁か言葉で表現できません。すなわちプログラムが組めません。ましてエクセルの関数式や表示形式では、解決しません。残るみちは、市外局番の表(テーブル)データを作るか探すかして利用する事です。その表を引くプログラム技量があれば、解決します。
相当膨大な数でしょう。3千600を越える市区町村の数より少ないかも知れません。そして4桁の市外局番から先に見ていくのがポイントです。市外局番+市内局番が一定桁数でないケースが有れば市外局番+市内局番のテーブル(-付き)が必要です。
-を一旦除いて比較し合致すれば、-入りと置きかえる。
ただ貴殿の電話番号データにはそんなに沢山の市外局番の種類がないのなら、売り物のソフトではないのだから、ちょっとしたプログラムで解決するかも。プログラムは(1)ルール・ロジックを探す(2)テーブルで考えるしかないと思います。テーブルルックアップ関数などひょっとして使って実現するかも。
     
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
プログラミングできる人にも相談してみようと思います。
ちょっと自力では能力不足で無理そうです。

お礼日時:2002/03/29 20:24

市外局番の桁数がわからないのかもしれないと思い書きます。



電話番号に対してソートをし、それぞれ手入力をするのが早いと思います。
ソートの説明を書いた部分
http://oshiete1.goo.ne.jp/kotaeru.php3?q=242234

市外局番一覧表
http://www.scoutnet.or.jp/~yatsu/tel-index.html

ですかね…
電話番号部分をコピーしてテキストエディタへ貼り付けると作業が多少楽にはなります。
ならび順を元に戻したいのであれば列を一列追加して通し番号をつけておけば
同じ理屈でソートできます…
他にもっといい方法があるかもしれませんけどね…
    • good
    • 0
この回答へのお礼

手入力が早いのかも知れないです。
便利なURLも教えて下さってどうもありがとうございます。

お礼日時:2002/03/29 20:20

ああ、分かりました。


もう既に0333333333と入力されているものを、
一発で03-3333-3333に変換する方法を聞いたんですね。

失礼しました。
    • good
    • 0
この回答へのお礼

いえいえ、とんでもないです。
回答してくださってありがとうございました。

お礼日時:2002/03/27 19:55

セル内に保管している電話番号が数値項目で、


かつ一律同じ形式に変更するのであれば、
セルの書式設定で「ユーザー定義」を設定すればできると思います。
すでに存在している、ユーザー定義(何でもいいです)を選択し、
種類を000-0000-0000(0は数字のゼロです)で作成し、
セルの書式でそれを選択すればいいはずです。

文字列としている場合は、lehuaさんが試されたとおり、
単純な書式設定では変更できないかもしれません。
まあ、詳しく調べたわけではないので、
どなたかのフォローでもあれば幸いですが・・・。

この回答への補足

taka_preさん、早速の回答ありがとうございます。
>一律同じ形式に変更するのであれば、
まさにひっかかっているのはココなんです。
市外局番が全国一律であればユーザー定義も可能ですが
長い市外局番地域も含まれているので
一律というわけにもいかず、悩んでいます。
いくら賢いエクセルでも同一セル内でどこが市外局番で。。なんてことは
無理なんでしょうか?

補足日時:2002/03/27 17:15
    • good
    • 0

「セルの書式設定→表示形式→文字列」としてやれば、


入力したそのものが表示されるようになりますよ。

この回答への補足

tomikou0000さん、早速の回答ありがとうございます。
説明が解りにくくて申し訳ないです。
入力したそのものが0333333333なので、教えてくださった操作ですと
変化ナシです。
他に方法がありましたらご指導お願いします。

補足日時:2002/03/27 16:28
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q郵便番号のハイフンを入れたい エクセル2000

エクセル2000で文字列のセルに
1234567
のように7桁郵便番号が入っています。
これを
123-4567
のように前から4桁めにハイフンを入れる方法を
教えていただけませんでしょうか。

*データ件数が3万件ほどあり、その変換のためです。

Aベストアンサー

A1に郵便番号データがあるとして、別セルに
=Left(A1,3) & "-" & Mid(A1,4,4)
を入力。
3万件分をコピーして、元セルに値のみを戻す方法ではいかがでしょうか?

QExcel 郵便番号 表示形式での-(ハイフン) 0の番号の郵便番号に入らない

Excel2010
郵便番号を文字列にして-(ハイフン)なし7桁の数値で入力し、
表示形式のその他の郵便番号を設定しました。
しかし、北海道、青森等の0のつく郵便番号は、-(ハイフン)
が表示されません。
なぜ表示されないのですか?

表示させる方法はありませんか?

Aベストアンサー

もしかしたら元の書式設定が「文字列」になっていませんでしたか?
後から書式だけ変えても反映されません。
セルを選択して数値バーにカーソルを持っていき[Enter]キーを押すか
下図の「!」マークをクリックして「数値に変換する」を選択してください。

QExcel2000データで、既に空白が空いているところを半角2文字分に統一するには

Excelで何千件もある、マスターの修正をしています。

すでに空白の空いているデータの空白の長さがまちまちなので
半角2文字分に統一したいのですが、よい方法が見つからず
手作業で何時間もかけて修正している状態です。

マスターですので何桁目に空白を空けるのかというのは
データによってバラバラです。

何かよい解決策はありませんでしょうか?

Aベストアンサー

そのシートに空きがあればそこでもいいですし、別シートでもいいですが、
データの入っている範囲と同じサイズの空き領域の、A1に対応する部分に
=TRIM(A1) と入力し範囲全体にコピー&ペースト。
範囲全体を選択しコピー、値を貼り付け。
置換で「半角スペース」を「半角スペース2つ」に、
置換で「全角スペース」を「半角スペース2つ」に(順番が逆は不可)。
範囲をコピーし、元のデータ範囲に貼り付け。
作業領域を削除。

で、いかがでしょう。

Q(Excel)範囲中のデータのうち条件に該当するデータのセルの行番号・列番号を取得したいのですが

例えば、B2からF5の範囲にデータが入力されていて、このうち条件に該当するデータ(最大値)のセルの行番号・列番号を取得したいのですが何か良い方法はありますでしょうか。
最大値のセルをアクティブにする方法が分かれば問題は解決するのですが、調べてみても答えが見つかりませんでした。
また、他に良い方法があればぜひともよろしくお願いします。
回答はVBAでもワークシート関数でも、どちらでも結構です。

ExcelはExcel2000、OSはWindows2000を使用しています。

Aベストアンサー

最大値のセルをアクティブにするんですよね?
では関数では無理なのでVBAで。

Sub test()
Dim x, c
x = Application.Max(Range("B2:F5"))
Set c = Range("B2:F5").Find(What:=x, LookIn:=xlValues, LookAt:=xlWhole)
MsgBox c.Address(0, 0) & "セルが最大値です。セレクトします。"
c.Select
End Sub

Qexcel03 上書きで消してしまったデータを復帰させるにはどうすればいいでしょう?googleデスクトップでデータ発見してあります

以前、エクセルに入力したデータが消えて上書きされてしまい、とても困っています。よい方法をご存知でしたら教えて下さい。

データ自体はgoogleデスクトップ・キャッシュで見つかったのですが、excel用ではなく、ただのデータになっています。
例えば、

エクセル上では
 ビール  300円  abcdefg
 日本酒  500円  hijklmn
 ワイン  400円  opqrstu

で、お酒と金額が別のセル、金額とアルファベットも別のセルに入っていました。

いまgoogleデスクトップのキャッシュでは

ビール300円abcdefg
日本酒500円hijkelmn
ワイン400円opqrstu

のように、「メモ帳」に羅列してある感じです。

これをエクセルに復帰させたいのですが、
ひとつずづ「ビール」「300円」「abcdefg」などコピーして
エクセルのセルにひとつずつ貼り付けるしかないのでしょうか?

もしもこのデータを上手に区切らせる方法があったら教えて下さい。
量が膨大なので、できれば効率の良いやりかたを知りたいのです。

上手に質問ができず申し訳ございませんが、どうかご存知でしたら教えて下さい。

以前、エクセルに入力したデータが消えて上書きされてしまい、とても困っています。よい方法をご存知でしたら教えて下さい。

データ自体はgoogleデスクトップ・キャッシュで見つかったのですが、excel用ではなく、ただのデータになっています。
例えば、

エクセル上では
 ビール  300円  abcdefg
 日本酒  500円  hijklmn
 ワイン  400円  opqrstu

で、お酒と金額が別のセル、金額とアルファベットも別のセルに入っていました。

いまgoogleデスクトップのキャッシュでは

ビー...続きを読む

Aベストアンサー

データーの間にスペースを入れるのは、大変ですか?
ビール300円abcdefg
日本酒500円hijkelmn
ワイン400円opqrstu

このデータを
ビール 300円 abcdefg
日本酒 500円 hijkelmn
ワイン 400円 opqrstu

これが出来れば、エクセルの「データ」→「区切り位置」でスペースごとにセルにおさまります。


このカテゴリの人気Q&Aランキング

おすすめ情報