アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2010を使用していますが、
セルの表示形式を文字列にしていても、場合によっては
置換するとべき乗(E)表示になってしまうのですが、
そういうものなのでしょうか?
(置換後に表示形式を確認しても文字列のままです)

これを防ぐ方法はありませんでしょうか。

実際に例として下記がべき乗表示となってしまいました。
)を未入力(消す)で置換しようとしたところ

122,123),140,141,150,157,163,171)

1.22123E+23
本当は122,123,140,141,150,157,163,171となるはず。

以上よろしくお願いいたします。

A 回答 (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
になります。

このプレフィックス(')は、そのまま残しておいた方が、
データの保全に関して、より強力になります。
また、
関数使用時やフィルター、ソート、検索、といった一般機能についても
プレフィックス(')の次からの文字列をデータの値として扱いますので、
通常使用において問題になることはまずありません。

勿論、セルの表示形式を文字列にしておくことも、
より堅実な方法です。

保全がしっかり出来ていれば、他の処理が簡単に済ませられる、ということも、
今回の例で実証されているものと思います。

私なら迷わず、先頭に「'」を付けるひと手間で、
あとの処理を楽にする方を選びます。

以上です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/03/14 17:52

>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(元の文字列,")","")
    • good
    • 0

>これを防ぐ方法はありませんでしょうか。



単純な置換操作ではご質問のような状況になります。

文字列書式にしたデータの置換なら、Officeクリップボードを利用した以下のような手順で置換できます。

ホームタブのクリップボードの右下のダイアログ起動ツールをクリックしてOfficeクリップボードを表示しておきます。
データ範囲を選択して、Ctrl+Cでコピーし、どこか空白セルを選択し、F2キーで編集モードにして、Officeクリップボードのデータをクリックして、そのセルにすべてのデータを貼り付け、そのままCtrl+Hで置換ダイアログを出して「)」を削除します。
そのカッコを削除したセルを選択してF2キーを押して、Ctrl+Shift+Homeキーでそのセルの内容全体を選択し、Ctrl+Xで切り取り、元のセルの上でCtrl+Vで貼り付けます。
    • good
    • 0

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

ょうか?
    • good
    • 1

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

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