Excel ではセルの書式をテキストに変更しても長い数値文字列が科学的記数法として扱われるのはなぜですか?

Excel ではセルの書式をテキストに変更しても長い数値文字列が科学的記数法として扱われるのはなぜですか?

Excel でデータを処理しようとしています。データには、数値のアカウント番号やその他の長い数値文字列 (携帯電話の MEID など) が含まれます。これらの文字列に対して数学演算は行わないので、Excel ではプレーン テキストとして処理するようにします。

私が頭を悩ませているのは次のことです (これは Excel 2010 です)。

  1. 1240800388917 のような長い数字を新しいワークシートのセル内に貼り付けます。
  2. Excelのデフォルトのセル形式は一般なので、文字列は1.2408E+12として科学的表記法で表示されます。
  3. セルを右クリックして「セルの書式設定」を選択し、書式を「テキスト」に設定します。

形式がテキストに設定されていても、セルは科学的記数法で表示されます。

ここで、手順を別の順序で実行すると次のようになります。

  1. 空のセルをテキストとしてフォーマットします。セルを右クリックし、セルの書式設定を選択し、書式をテキストに設定します。
  2. 1240800388917のような長い数字をテキスト形式のセルに貼り付けます

これで、セルは科学的記数法ではなく文字列として表示されます。

セルがテキストとしてフォーマットされているにもかかわらず、結果が科学的記数法のままになっているのは、私には壊れているように思えます。CSV インポートを使用してフォーマットをテキストに設定する、各数値文字列の先頭にスペース文字を追加する、などの回避策が提案されているのを見ました。

これらの文字列をテキストとして簡単にフォーマットしておくための、簡単で良い回避策はありますか?

Excel は一体なぜこんなことをするのでしょうか?

私が見つけた関連する SU の質問: Excel 2007 で大きな数値を科学的記数法としてフォーマットしないようにするにはどうすればよいですか?そして 大きな 16 進数でのこの Excel の動作は想定内ですか?

答え1

ああ、Excelで大量の数字をクロスチェックしたときの、データの混乱の記憶がよみがえってきた(二度とやらない)。Excelに長い数字の文字列を入力すると、例えば12345678901234567890(20桁)のように、Excelは通常変換するつまり、入力した 20 桁の数字が、有効数字の約 15 桁に短縮されるということです。

また、変換は四捨五入ではなく切り捨てであることにも注意してください。(12345678901234567890 は 1.2345678901234 です。6E+19ですが、Excelでは1.2345678901234と表示されます。5E+19)

これはエントリ ポイントで発生するため、いったん入力されると、追加の詳細は失われます。そのため、Excel に、実際には数値ではなくテキストを意味していたことを伝えたとしても、運が悪かったということになります。これが、最初のシーケンスが機能しない理由です。

答え2

これは Excel 2010 ではうまくいきました。列を選択して右クリックし、「セルの書式設定」、「カスタム」の順に選択し、0 というオプション (「全般」の下の 2 番目のオプション) を選択します。

答え3

これを試してみてください... Excel 2013 ではこれでうまくいきます。

=""&a1

ここで、a1 は数値を保持します。その後、列をコピーして元の列に貼り付けます。

答え4

数字の前に単一のアポストロフィ ' を付けると、Excel は数字をテキストとして処理します (デフォルトの左揃えを含む)。また、エラーのフラグが付けられている場合は、セルにテキスト エラーとして保存された数値として表示されます。

関連情報