はじめての親子ハイキングに挑戦!! >>

当方、Excel2000または2003環境です。
電話番号をハイフンで区切って3分割し、それぞれ別のセルに代入したいと考えています。

A列 電話番号(BB-CCCC-DDDD)
B列 市外局番(BB部分)
C列 2番目(CCCC部分)
D列 3番目(DDDD部分)

固定電話、携帯電話、都道府県も異なることから、桁数がバラバラで困っております。
皆様のお知恵をお貸しください。
なにとぞ、よろしくお願いします。

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

A 回答 (2件)

方法1.「データ」「区切り位置」で分配する。


A列をコピーして、B列に貼り付ける
B列を選択して「データ」「区切り位置」で
「カーソルやタブなど...」を選択して「次へ」
「その他」欄に「-」を入れて「次へ」
各列の表示形式を文字列に設定して「完了」

方法2.数式で分配する。
B2=LEFT(A2,FIND("-",A2)-1)
C2=MID(A2,LEN(B2)+2,LEN(A2)-LEN(B2)-6)
D2=RIGHT(A2,4)
    • good
    • 0
この回答へのお礼

数式で分配する方法を早速採用させていただきました。
ありがとうございました。

お礼日時:2007/04/19 07:27

1)A列の該当セルを範囲選択


2)ツールバーの「データ」-「区切り位置」をクリック
3)データのファイル形式は上側をチェック、次へ
4)区切り文字は「その他」をチェックし右側の入力欄に
ハイフンを入力、次へ
5)「標準」では前ゼロが落ちるので「文字列」を選んで完了。
    • good
    • 0
この回答へのお礼

無事にできました。
前ゼロは文字列で回避できるのですね。
ありがとうございました。

お礼日時:2007/04/19 07:26

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

QAccessの電話番号フィールド

Access2000以降について質問です。
顧客記録の電話番号フィールドについてお尋ねします。
異なるデータソース(テキスト形式)から各々に電話番号フィールドを含む2つのテーブルを作成したのですが、電話番号のフィールドがテーブル1では「ハイフンつき」の電話番号、テーブル2のほうでは「ハイフンなし」の電話番号になっています。また、いずれのフィールドもデータ型は「テキスト型」になっています。
やりたいことはテーブル1の電話番号にはないテーブル2の電話番号を含むレコードを不一致クエリを用いて抽出したいのですが、ハイフンがあるために全て不一致になってしまいます。
ハイフンを入れるのは地方の電話番号が多いため市外局番が3桁や4桁などで不揃いのためLEFT、RIGHT関数を用いて入れるのは不可能です。
そこでテーブル1のハイフンつき電話番号フィールドからハイフンを取り除きたいのですが、なにか方法はありませんか?VBAは分からないのでそれ以外でやる方法があれば教えて下さい。お願いします。

Aベストアンサー

選択クエリで、式1にReplace([電話番号],"-","")でやってみると
下記になりましたが、これが使えませんか。
ID氏名電話番号重複式1
1山田03-2345-6543a0323456543
2大島042-2345-234504223452345
3下田0720-34-3456a0720343456
4小出042-345-23450423452345
5中田07523-23456a0752323456
(たまたまあったテーブルを使っただけで、上記「重複」フィールドは意味ないので無視してください。)

Q市外局番と市内局番以降 に2分割

Excelにて、電話番号を市外局番と市内局番以降 に分離・整理したいです。

元データでは
0123450000000

整形後
0123-450000000

参照データとして市外局番一覧は入手済みです。
0123
01234 など

・間にハイフンが入ればいいです。(セルで分割でも 可)
・市内局番以降は一連で構わないです。
・それに市町村名なども不要です。

単純に分けたいだけです。対応できるExcelの関数を教えて下さい。

Aベストアンサー

元データと市外局番一覧がきちんと文字列として存在することを前
提に、元データの先頭2桁から5桁の範囲で一覧表と最長一致で検索
出来れば良さげということですね。もしかしたら6桁かな。

とりあえず5桁ってことで一覧表がソートされてる必要のない数式
はこれ。Wendy02さんのreplace関数を流用させてもらってます。
=replace(A1,max(not(isna(match(left(A1,{2,3,4,5}),F:F,0)))*{2,3,4,5})+1,0,"-")
もちろん市外局番の最長が6桁なら、{2,3,4,5}が{2,3,4,5,6}にな
るだけ。Wendy02さんのほど配列が巨大化しないのも特徴。

Qエクセルで電話番号を - で分割する方法

エクセルで電話番号のデータが入っています。ハイフンごとで3つのセルに分けて取り出す関数があれば教えてください。
01-2345-6789
012-345-6789
0123-45-6789
01234-5-6789
050-1234-5678 とハイフンの位置も桁も種類があります。左右の部分はLEFTとRIGHTで取り出せるのですが真ん中がうまく取り出せません。
よろしくお願いします。

Aベストアンサー

 A列が
01-2345-6789
012-345-6789
0123-45-6789
01234-5-6789
050-1234-5678 として
B列 =LEFT(A1,FIND("-",A1)-1)
C列 =LEFT(RIGHT(A1,LEN(A1)-FIND("-",A1)),FIND("-",RIGHT(A1,LEN(A1)-FIND("-",A1)-1)))
D列 =RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C1)-2)
で如何でしょうか。

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

Q電話番号の分割

Access2000で電話番号のデータを3つに分割したいのですがどうすればよいでしょうか?
市外局番と市内局番と電話番号の3つに分割したいです。
データ形式は「9999-9999-9999」という形です。
よろしくお願いします。

Aベストアンサー

>市外局番と市内局番と電話番号の3つに分割したいです。データ形式は「9999-9999-9999」という形です
テーブルの電話番号が必ず9999-9999-9999となっていれば
TEL1を市外局番・TEL2を市内局番・TEL3を電話番号として

TEL1=Mid([電話番号],1,InStr(1,[電話番号],"-")-1)

TEL2=Mid(Mid([電話番号],InStr(1,[電話番号],"-")+1),1,InStr(Mid([電話番号],InStr(1,[電話番号],"-")+1),"-")-1)

TEL3=Mid([電話番号],InStrRev([電話番号],"-")+1)

で切り出しできます。


人気Q&Aランキング