Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Excelで電話番号の0を保持して-を取り去るには| OKWAVE
[go: Go Back, main page]

本文へ移動
  • 締切済み

Excelで電話番号の0を保持して-を取り去るには

Excelのシートに、 052-123-4567 080-1234-5678 のような電話番号が A1~A999のセルに入力されています。 これらのすべての電話番号の -(半角ハイフォン)を取り去って、 0521234567 08012345678 というようにしたいのですが、 置換で 検索する文字列のボックスに - (半角ハイフォン) 置換する文字列のボックスに空白 (何も入力しない) を指定して置換すると、 521234567 8012345678 というように-は削除されますが、 頭の0が取り省かれてしまいます。 これは、数値として扱われているため0が取り省かれていると思われます。 頭に'(半角アポストロフィー)を付けけばうまくいきますが、 すべての電話番号に'を付ける必要があり現実的ではありません。 (問1) セルの書式を文字列にして、 置換してみましたが、それでも0が取り省かれてしまいます。 先に、セルの書式を文字列にしてから、その後で、電話番号を読み込ませて、セルの書式が文字列になっていることを確認してから置換しても、0が取り省かれてしまいます。 なぜ、セルの書式を文字列にしても、0が取り省かれてしまうのでしょうか? (問2) 置換ダイアログのオプションで、 置換後の文字列の書式の表示形式で文字列を指定して、 置換してみると、 -が取れ省かれずに 052-123-4567 のままになっています。 置換後の文字列の書式の表示形式で文字列を指定しないと -が取り省かれるのに、 置換後の文字列の書式の表示形式で文字列を指定すると、 なぜ、-が取り省かれなくなるのでしょうか? (問3) 0が取り省かれずに-を取り除くように置換するには、 どのようにすればよいのでしょうか。 よろしくお願いします。 (Windows10)

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.6

>(問1) >なぜ、セルの書式を文字列にしても、0が取り省かれてしまうのでしょうか? なぜこのような仕様にしているのかは、仕様を決めた方以外は想像するしかありません。 セル内の文字列"012-345-6789" を "0123456789"に書き換えた時には書式設定を保持し 置換コマンドを使って、シート全体やブック内のシート全体を対象に "012-345-6789" を "0123456789"に置換した時には、書式設定を保持せず、 置換された文字列をもとに書式を自動判定しているわけですが、 そのほうが、ユーザ側にとって使い勝手がいいと判断したものと思います。 >(問2) >-が取れ省かれずに052-123-4567のままになっています。 どうやらこの置換の機能は、 文字列を置換するのか、書式を置換するのかの選択で、 書式の指定がされている場合は、 文字列の置換の指定は無視されるようです。 >(問3) >0が取り省かれずに-を取り除くように置換する やってみる限り、 置換の機能では、期待の変換はできないようです。 他の方のコメントのように、関数を使うのは妥当な対応と思います。 それとも、VBAを使い、直接書き換えることを望みますか?

質問者

お礼

ありがとうございました。

Powered by GRATICA
すると、全ての回答が全文表示されます。
  • msMike
  • ベストアンサー率20% (371/1821)
回答No.5

添付図参照(Excel 2019)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓

質問者

お礼

ありがとうございました。

Powered by GRATICA
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

エクセルはセルに入れるデータが、数字だけだと(先頭の+ー記号を含む)、データ性格を、数値としてセルにセットする、強力な変換性があり、(関数などでは)ちょっとやそっとでは、これを乗り越えられない。 そこでデータを文字列化する接頭辞Prefixの「’」を(&などで先頭に)加えて、無理やりに文字列ですよ、ということを教えないといけない。 これはLOTUS123時代には、目立ったが、エクセルの最近ではあまり解説されないようだ。 これを知れば、おのずと、何か手を打たないとならないことは判るだろう。エクセルの経験不足だ。

質問者

お礼

ありがとうございました。

Powered by GRATICA
すると、全ての回答が全文表示されます。
  • m_and_dmp
  • ベストアンサー率54% (1017/1879)
回答No.3

No.2 さんの方法で良いと思うのですが、やってみたら、先頭に「'」がついたままになります。 =LEFT(A1,1)&SUBSTITUTE(MID(A1,2,20),"-","") で何とかなります。 =LEFT(A1,1) は左から1番目の文字「0」を抽出する関数で、戻り値は文字列です。 &以降では、左から2番め以降の文字列の 「-」を取り去った文字列を出力します。これも文字列なので、先頭の「0」と&で結合して文字列として返します。 MID(A1,2,20) の20は、電話番号の文字数がハイフンを含め20を超えることはないだろうと考えて、設定しました。

質問者

お礼

ありがとうございました。

Powered by GRATICA
すると、全ての回答が全文表示されます。
  • f272
  • ベストアンサー率45% (9546/20928)
回答No.2

B1に =SUBSTITUTE("'"&A1,"-","") と入力して、B999までコピペしてください。

質問者

お礼

ありがとうございました。

Powered by GRATICA
すると、全ての回答が全文表示されます。
  • aokii
  • ベストアンサー率23% (5209/22061)
回答No.1

0が取り省かれずに-を取り除くように置換するには、頭に'(半角アポストロフィー)を付けるのが普通です。他のやり方では、たぶん、うまく行きません。

質問者

お礼

ありがとうございました。

Powered by GRATICA
すると、全ての回答が全文表示されます。

関連するQ&A

月の貢献専門家

専門家に質問してみよう! 職業から探して質問する