• ベストアンサー

置換するとべき乗表示になってしまいます

Excel2010を使用していますが、 セルの表示形式を文字列にしていても、場合によっては 置換するとべき乗(E)表示になってしまうのですが、 そういうものなのでしょうか? (置換後に表示形式を確認しても文字列のままです) これを防ぐ方法はありませんでしょうか。 実際に例として下記がべき乗表示となってしまいました。 )を未入力(消す)で置換しようとしたところ 122,123),140,141,150,157,163,171) ↓ 1.22123E+23 本当は122,123,140,141,150,157,163,171となるはず。 以上よろしくお願いいたします。

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.4

こんにちは。お邪魔します。 > これを防ぐ方法はありませんでしょうか。 簡単な方法を紹介します。 数値や通貨型のデータとして読むことの出来る文字列型データは、 思わぬきっかけでデータ型が変換してしまうこと他にもあり、 データの保全には注意が必要です。 お奨めするのは、プレフィックスによる文字列型の強制です。 置換の前にひと手間だけ。 文字列の先頭に、 「'」シングルクォート を付加しておきます。 '122,123),140,141,150,157,163,171) そのままCtrl+H、検索する文字列に「)」、置換後の文字列は空欄、[置換] 結果、 数式バーに表示されるのは、 '122,123,140,141,150,157,163,171 ですが、 セルに表示される文字列、実質的なセルの値は、 122,123,140,141,150,157,163,171 になります。 このプレフィックス(')は、そのまま残しておいた方が、 データの保全に関して、より強力になります。 また、 関数使用時やフィルター、ソート、検索、といった一般機能についても プレフィックス(')の次からの文字列をデータの値として扱いますので、 通常使用において問題になることはまずありません。 勿論、セルの表示形式を文字列にしておくことも、 より堅実な方法です。 保全がしっかり出来ていれば、他の処理が簡単に済ませられる、ということも、 今回の例で実証されているものと思います。 私なら迷わず、先頭に「'」を付けるひと手間で、 あとの処理を楽にする方を選びます。 以上です。

Gamil_T
質問者

お礼

皆様、ありがとうございます。 cj_moverさんが挙げていただいた方法が簡単かつ確実かなと思い、 ベストアンサーとさせていただきます。

その他の回答 (3)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>122,123),140,141,150,157,163,171) >↓ >1.22123E+23 >本当は122,123,140,141,150,157,163,171となるはず。 1つのセルに3桁ずつのカンマ区切りの数字がセットされると数値に置き換える機能が働くようです。 また、数値は最大有効桁数が15桁なので指数表示になりますが表示形式を変更すれば上位15桁を有効とした全桁表示され下位桁は0で埋められます。 表示形式を通貨にすると 122,123,140,141,150,000,000,000 のようになります。 最終桁に必ず")"が有れば2段階の置換で最後の桁に . 以外の文字を付加すれば強制的に文字列として全桁表示されます。 1回目は ) を , にして、2回目は ,, を無しにすれば最後の桁に , が残りますので数値化されません。 122,123,140,141,150,157,163,171, 関数を使って文字列を加工する場合は以下の式で良いと思います。 =SUBSTITUTE(元の文字列,")","")

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>これを防ぐ方法はありませんでしょうか。 単純な置換操作ではご質問のような状況になります。 文字列書式にしたデータの置換なら、Officeクリップボードを利用した以下のような手順で置換できます。 ホームタブのクリップボードの右下のダイアログ起動ツールをクリックしてOfficeクリップボードを表示しておきます。 データ範囲を選択して、Ctrl+Cでコピーし、どこか空白セルを選択し、F2キーで編集モードにして、Officeクリップボードのデータをクリックして、そのセルにすべてのデータを貼り付け、そのままCtrl+Hで置換ダイアログを出して「)」を削除します。 そのカッコを削除したセルを選択してF2キーを押して、Ctrl+Shift+Homeキーでそのセルの内容全体を選択し、Ctrl+Xで切り取り、元のセルの上でCtrl+Vで貼り付けます。

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.1

置換機能を使うと、データ型が標準(というか数値)に戻ってしまいますので、SUBSTITUTE関数などをお使いになってみては如何でしょうか?

関連するQ&A

  • エクセル 置換後の文字列について

    エクセル2003です 置換後の文字列について質問させてください 特定のセルに文字を入力し 例 C100に(9月)等 検索と置換にて 置換後の文字列を C100のテキストに 置換したいのですが 入力時にC100を選択する方法がわかりません  よろしくお願い致します

  • エクセル2003で作成した表で、REFが表示される

    エクセル2003で、表を作成しました。ただしデータを別のエクセルで作った表から参照しているのですが、D列のデータからE列のデータに参照を変えるため置換で、検索する文字列を!D 置換後の文字列を!Eにしたところ、=!Dで入力していたセルは!Eに置換できたのですが、=SUM(!$C:!D)という式を入力していたセルはREFと表示されてしまいます。ただし参照もとのデータが起動している場合はREFが表示されず、C列からE列の合計金額が表示されます。 C列からD列に置換を行った際は、計算式の入ったセルも!Cから!Dに置換ができました。同じ計算式を再度入力してもREFが表示されます。REFが表示されず計算結果が表示されるようにするにはどうしたいいでしょうか。教えてください。

  • 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)

  • 文字列の置換で・・・

    Javaでの文字列の置換についてなんですが ある文字を任意の文字に置換し表示させるとともに 何個の文字を置換したかも同時に知らせたい場合は どのような処理をしたらよいでしょうか? ぜひご協力よろしくお願いします!! (例)入力した文字列に"a"が含まれる場合は"b"に置換し   その際に変換した文字数も表示してください。     basic→出力結果: "bbsic" 置換した文字数は1です。

    • ベストアンサー
    • Java
  • VBAでの日付の置換方法を教えてください

    Excel2007のVBAにて日付の置換ができなく困っております。 対象の複数列に入力されている下記の様なデータの内、日付の"yyyy/m/d"を "yyyy年m月d日"に置換しなくてはなりません。 ※書式設定ではなく、文字列として変換 入力例 1)2011/12/13 2)2011/12/1~2011/12/13 3)2011年12月13日 4)2011/12/1~2011/12/13の毎火曜 ヒントでも構いませんので、宜しくお願い致します。

  • MacOS10.6 エクセル2008 改行コード 置換方法

    MacOS10.6 にてExcel2008を使用しています。 いま処理しようとしているデータのセル中に改行が含まれており、これらを置換にて一括消去をしたいのですが改行コードの入力方法がわかりません。 Windowsでしたら「Ctrl+J」で検索文字列の欄に入力できるようなのですがMacで行うと変な文字がでて当然ながら置換はできません。 セル中で「Control+Option+Return」にて改行を入力する事はできますが、これを上記の置換の検索文字列欄で行うと最終セルまで移動してしまうだけで置換はされません。 大量のデータで、しかも今後定期的な作業が必要となる為に途方にくれてます。 どなたか検索置換にて「検索文字列欄」に改行コードを入力する方法ご存じでしたら教えてください。 お願いいたします。

  • Excel 年月表示の変更

    セルの中に" 98/ 3"や" 04/10"と入力されたセルがあり、文字の前や間にあるスペース取りたいので置換を使ってやるのですが、"Mar-98""4月10日"となってしまいます。セルの書式を文字列にしても、変換後のセルの書式設定を文字列にしてもダメです・・・。最終的には"1998/3"や"2004/10"と言う表示にしたいのですが・・・。ご教授お願いします。 ちなみに、WindowsXP Excel2003です。

  • Microsoft Office Excel 2007 置換

    Microsoft Office Excel 2007 置換教えてください 複数のブック(500件)の中に入力されている文字を 一気に置換する方法ってあるのでしょうか???? 例→A45セルに「問題なし」と入力されている、500件のブックを「基礎部の洗掘もなく、特に問題なし。」に置換する。(T_T)

  • WORDのワイルドカード置換について

    WORDで、ワイルドカード[0-9]で半角数字を検索し(検索は出来ました)、これを全角数字に置換したいとき、置換後の文字列はどういう風に入力したらよいでしょうか。全角数字の表示形式が分かりません。[0-9]では出来ませんでした。 文字種の変換で行うしかないのでしょうか?

  • エクセル2003での置換について教えてください。

    エクセル2003での置換について教えてください。 こんにちは いつもお世話になっています エクセル2003での置換について教えてください。 特定の文字列以降の文字列を(特定文字列自身も含めて)削除したいのです。  特定の文字列は二つあります。【@】と【変化】です(【】も含みます)。  この二つの文字列はバラバラに出てきます。一方だけがでてくるセル、両方出てくるセル、両方出てこないセル、があるという意味です。  「*」を各特定文字の後ろに付けて、置換機能で削除していますが、二つの文字列に対して別々にやっています。 これを一度で置換して削除する方法を教えてください。  よろしくお願いします。

専門家に質問してみよう