- ベストアンサー
エクセル 電話番号の-だけとりたい
エクセルで住所録を作りました。携帯電話に転送するのに”-”をとりたいのですが、先頭の0まで消えます。 置換で変換する文字列に”-”、置換後の文字列は空欄でやると、電話番号先頭の0がきえます。03-1234-1234が312341234になります。0が消えない方法を教えてください。
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
>...cvsでセーブします。すると読み込むときには CVSで保存したものをメモ帳などテキストエディターで開いてみるとわかりますが、03123456789 のようにちゃんと保存されてますよ。 ”読み込むとき”とは、このCSVをEXCELで開いたときのことですよね? >=SUBSTITUTE(A1,"-","") の式は消え、数値データとして残り、 >やはり0先頭の0がなくなります。 これは、”読み込むとき”にEXCELが 03123456789 を数値として自動的に扱うからです。EXCELでこれを回避する方法は、参考URLをご覧ください。 http://biz.mycom.co.jp/skillup/office/qanda/bn/031112.html データを取り込むときに、03123456789 のデータがある列のデータ型をテキスト型にして開けば良いのです。 ただ、他のソフトとの連携を考えた場合、本当はCSVで保存する際に文字列の引用符を付与して保存できれば良いのですが、何故かEXCELではこれができません。(仕様です) 参考) EXCELのCSV保存について "03456789","0312345" ... のように引用符付きで保存できれば良いのですが、、 03456789,0312345 ... のように引用付が付与されない 引用符を使ってCSVで書き出すためには、EXCELではVBAマクロを使って自力出力するしかありません(TT) したがって、 ・マクロを作成し、引用符付きCSVを自力出力する ・読み込むときにテキスト型と指定する のいずれかの方法をとることになります。
その他の回答 (9)
- guruguru2
- ベストアンサー率29% (39/132)
こんにちわ。 03-1234-1234 上記の「-」を取る前に下記の順で作業してみてください。 (1)03-1234-1234 (2)'03-1234-1234 …文字列の前に'(シングルコーテーションをつける) (3)'0312341234 …-(ハイフン)をとる。 この作業をマクロで作成してみてはいかがでしょうか?
お礼
マクロはめんどくさいなぁ(-_-;)と思ってたんですが、この際、挑戦してみます。アセンブラは経験あるんですよ10年前ですが(-_-;)
- maggoteating
- ベストアンサー率34% (74/215)
「書式」→「セル」→「ユーザー定義」→「種類」を 0000000000 とすればどうですか?
お礼
なるほど!ありがとうございます。試してみます。
- KenKen_SP
- ベストアンサー率62% (785/1258)
#4の補足ですが、、、 EXCELでCSVで書き出したあと、ACCESSやフリーのCSVエディタを使って引用符付きCSVで書き出すという方法もあります。
- pound_cake
- ベストアンサー率27% (23/83)
No.2です 先頭にだけの0の場合が問題であれば、 やはり書式の変更でカスタマイズされてはどうでしょうか? -を一気に置換で消した後に、全てのセルを選択、 書式の変更でカスタマイズして先頭文字に必ず0を入れることにしたらどうでしょう
- hiroyukitank
- ベストアンサー率30% (3/10)
ダイレクトな方法ではないのですが,1列ほど作業領域を使う方法でしたら実現できます。 A列に郵便番号が入っているとして, 1.置き換えで「-」を全て消してしまいます。消してしまうと0ではじまる郵便番号は最初の0がなくなってしまいます。 2.B列に「=IF(LEN(A1)=7,A1,"0"&A1)」と入力します。 3.必要な行まで式をコピーします。 4.このままでは数式が入ったままですので,B列を範囲指定してC列などに「形式を選択して貼り付け」をします。 こうするとC列に文字列で0から始まる7桁の郵便番号が取得できます。 いかがでしょうか?
お礼
OH!その手がありました!そうですよね!ないならつけたらよいですよね!ありがとうございました!!!
- KenKen_SP
- ベストアンサー率62% (785/1258)
A1 セルに電話番号があるとして、B1 セルに次の式を入力します。 =SUBSTITUTE(A1,"-","")
補足
他のソフトにデータを渡すのにcvsでセーブします。すると読み込むときには=SUBSTITUTE(A1,"-","") の式は消え、数値データとして残り、やはり0先頭の0がなくなります。 セルの設定は文字列にしています。 セル単位で”-”を1個づつ消すとうまくいくのに、置換を使って一気に消そうとすると先頭の0まで消えてしまいます。なぜでしょう?
- pound_cake
- ベストアンサー率27% (23/83)
最初の0が消えるのは表示設定が数値などになってるからだと思います。 エクセルが最初の0も表示できるようにセルの表示設定でテキストや最初に0を表示できるように設定すればいいとおもいます。
補足
各セルの”-”を1づつ消すとよいのですが、置換で一気に”-”を消そうとすると、頭の0が消えますね(T_T)
- iiikkk
- ベストアンサー率37% (92/247)
電話番号の列セルを選択した状態で 「書式」メニュー 「セル」 「表示形式」タブ 「分類」を「文字列」 にした後で、 置換するというのはどうでしょうか。
補足
各セルの”-”を1づつ消すとよいのですが、置換で一気に”-”を消そうとすると、頭の0が消えますね(T_T)
- raphel_7
- ベストアンサー率34% (86/252)
セルの書式の設定で表示形式を文字列にしてから変換すれば消えません
補足
それが消えてしまうんですよ(T_T) 0を”あ”などの文字に変換し”-”を消します。 その後、”あ”を0に戻すと、やっぱり頭の0がないのです。文字列の記号”’”先頭につけて”-”を消すと頭の0は消えませんが、件数が多いもので。
お礼
ありがとうございます。他のソフトに読み込ませたいのでマクロを組んでみます。 プログラムからは、10年ほど遠ざかっておりましたが、このさい復帰してみようという気になってしまいました。(^o^)