Excelがセル形式をテキストに変更した後でも、長い数値文字列を科学表記法として扱うのはなぜですか


118

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

これが私を夢中にさせているものです(これはExcel 2010です)。

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

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

今、別の順序で手順を実行する場合:

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

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

セルがテキストとしてフォーマットされている場合でも、結果は科学表記法のままです。次のような推奨される回避策を見ました:CSVインポートを使用して、形式をテキストに設定し、各数値文字列の先頭にスペース文字を追加します。

これらの文字列をテキストとして簡単にフォーマットする簡単な回避策はありますか?

なぜExcelはこれを行うのですか?

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


長い数字1240800388917は別のセルからコピーされますか?または、メモ帳などの単なるプレーンテキストですか?
ウィルソン

回答:


24

ああ、戻って私はエクセル(二度と)にチェックをいくつかの大規模な数のクロスをしたときからいじるデータの思い出..あなたは、Excelに長い数値文字列にパンチすると、言ってみてください、12345678901234567890(20桁)、Excelが一般的になる変換あなたのためにそれを、タップしたばかりの20桁の数字が約15桁の有効数字に切り捨てられたことを意味します。

同様に注意してください:変換は、丸めではなく切り捨てです。(12345678901234567890は1.2345678901234 6 E + 19ですが、Excelでは1.2345678901234 5 E + 19 が表示されます)

これはエントリのポイントで発生するため、一度入ると追加の詳細は失われます。したがって、数値ではなくテキストであることをExcelに伝えたとしても、運が悪いので、最初のシーケンスは機能しません。


1
はい、数値文字列の有効桁数が15桁を超えると、この動作が見られます。あなたが言うように、12345678901234567890は1.23456789012345E + 19になります。セルをクリックすると、エディットボックスに文字列が切り捨てられ、ゼロが埋め込まれた文字列12345678901234500000が表示されます。奇妙なのは、Excelの15桁の制限を超えない数値に対して同じことを行うことです。12345678901234に貼り付けると、1.23457E + 13と表示されますが、クリックしても編集ボックスに元の文字列が表示されます。今、奇妙なのは、このセルをテキストにフォーマットすると、まだ科学表記法で表示されることです。うるさい。
マイケルレヴィ

7
それは実際にはちょっとした表示の癖です-一般からテキストにフォーマットを設定するとすぐに元の文字列として表示されませんが、データを入力して編集する場合は(編集ゾーンをクリックして、 )それは正確にあなたが入れたものに更新されます
。-タンタン

11
クイックハック:適切な列に書式を設定し、メモ帳に貼り付けてからExcelに貼り付けます。
ブライアン

9
これは受け入れられた回答でないはずです。次の次を参照してください。
javadba

3
あなたは問題を回想し、繰り返しました。さて、どのように修正しますか?
user3932000

162

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


25
これは、「あなたは運が悪い」という受け入れられている答えよりもはるかに優れています!この問題が発生したCSVファイルがあり、カスタムフォーマットソリューションは完全に機能しました。
デヴィッドエア

4
回答を受け入れる必要があり、誰かが変更する必要がありますか?
qwertzman

11
これは私のテストではまだ切り捨てられているようです。Excel 2013を使用して、セル12345678901234567890に次のように入力しました。Enterキーを押すと、1.23457E + 19と表示され、基になる値が12345678901234500000に変更されてデータが失われます。これは元の質問には答えません。
マイケルレヴィ

1
ここで私は1年後、同じ答えを再訪し、もう一度賛成できることを願っています。
ビリノア

7
この回答はフォーマットを修正しますが、入力されたデータを保持しません。それが正しい答えとしてそれを受け入れることができない理由です。表示する短いビデオを投稿しました。これらの指示に従って、12345678901234567890などの長整数を入力すると、非科学表記で表示されていても、数値として扱うと精度が失われます。Excelはそれを値12345678901234500000として扱います。すべての数字を保持できるのは、テキストとして扱うことによってのみです。youtu.be/7EDcR7TQpYs
Michael Levy

13

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


これは常にそうではありません。Excelは、先頭のアポストロフィを使用してもデータを変更することがあります。
セリン

3
Cerinは、Excel(またはMicrosoft)が完全に説明不可能または繰り返し可能なことを行う能力を過小評価しないでください。ただし、通常、アポストロフィトリックは宣伝どおりに機能します。
ダブ

1
これを一括で行うことはできますか?テキストに変換したい60000セルのデータがあります。
vaibhavcool20

または、右クリックで[セルの書式設定]メニューでテキストとして書式設定することを選択します;)
Shayan

13

Office 2010では、最初に列をフォーマットしてからデータを貼り付けると、大きな数値が正しく表示されることがわかりました。


これはおそらく、文字列として保存されているためです。別のセルを、たとえばセルの内容に2を掛けたものにするとどうなりますか?
ピーターモーテンセン

1
これはExcel 2016 / Office 365で機能します。すべてのセルを選択し、テキストにフォーマットし、コピーしたデータを貼り付けましたが、面倒な科学表記法で表示されませんでした。ありがとう!
frezq

これは私にとってもGoogleスプレッドシートで働いていました... valsに貼り付ける前に「Format> Number> 0」であり、科学的表記に変換しませんでしたが、あまりにも頻繁に発生した終了値を失いません。
twknab

12

これを試してください...これは私にとってはうまくいきます、Excel 2013。

=""&a1

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


これはExcel 2010でも機能します。
ポールG

2
サイドノードとして:="1240800388917"同じこと
-nixda

5

カスタム>#としてセルをフォーマットできます

これは、データを列に貼り付けた後に適用できますが、スプレッドシートを保存する前に行う必要があります。

私はバーコード(UPC)で多くの作業をしており、Excelはデフォルトで科学表記法としてフォーマットします。私を不安定な状態にする!なぜこれが私には決してわからないオプションではないのか。


ただし、数値がテキストに変換されるわけではないため、後で問題が発生する可能性があります。しかし、よく...
ヨリスMeys

5

私は質問の年齢を知っていますが、これはGoogle検索後に上陸し、私の質問に答えなかったものです(なぜテキストとしての書式設定が機能しないのか、なぜ数値が書式設定後に15桁に切り捨てられるのか)テキストへ)。

簡単な答えは、数値を入力してをタップした後は、自分の好きなように番号を操作することはできませんEnter。その瞬間、数値は15桁に切り捨てられ、指数として表示されます。

これはバグではなく、機能です。

その後に行うことはすべて、切り捨てられた値を使用するため、書式設定のトリックは役に立ちません。ただし、使用することができますText to columns(クリック、列のヘッダーをクリックしてテキストに指数表記を変換するオプションをText to data、そしてDelimitedNextすべての区切り文字ボックスを外します、選択Text中のColumn data format当時とFinish値を持つように)テキストに変換し、すぐに15桁の数字として表示。しかし、それは15桁に過ぎないので、もっと長い数字があれば残りは失われます。

スプレッドシートの番号を入力したとおりにするには、テキストとして保存する必要があります。だから、テキストとしてアポストロフィまたはフォーマット細胞とそれに先行する必要がある前に、それに/コピー値を入力します。それが「時々動作しない」場合は、申し訳ありませんが、何か間違ったことをするか、何らかのオートコレクトをオンにします(アポストロフィと15桁以上の大きな数字を使用すると、Excelはそれを間違った値として扱い、セルに警告を表示しますメッセージなので、この発言は個人的でも批評でもありません)。

バルク番号でそれを行う他の方法は、テキストファイルから値をインポートすることです。ほとんどの場合、これが唯一の方法だと思います。また、Excelはcsv型をネイティブ形式のように扱い、当然のことながら大きな数値を15桁にトリミングするため、ファイルを開くだけでなく、必ずインポートしてください。

さて、最後の号へ。テキストとしてフォーマットされたExcelセルに大きな数値を入力した場合、セルの幅が十分でない限り、科学表記法で表示されます。面倒ですが、一部のExcel内部アルゴリズムの副作用です。セルを広くするだけで、毎回完全な値が表示されます。


3

Excel 2010:これは一度に1つの列で機能し、行ではまったく機能しません。列または列のサブセットを選択し、[データ]タブから[テキストから列]を選択して、[完了]に右にジャンプします。これ以上科学的な表記はありません。

多くのExcelユーザーに同意します。科学表記法を防止するオプションがないことは犯罪者です。


1
Excel 2007でのテストでは、Next >2回クリックし、[テキスト]を選択してをクリックする必要がありましたFinish。これを行に適用するには、転置、変換、および転置して戻します。
スコット

1

Excel 2013でも同じことが起こり、[セルの書式設定]-> [数値]に移動し、小数点以下が "0"に設定されていることを確認しました。


1
上記の匿名回答に似ていますが、「カスタム」を選択するよりも「数字」を選択する方が理にかなっています。さらに、リストの上位にあります。とにかく、同じことをしますが、私はこれが好きです
ビリーノア

0

すべてのセルを選択してください-または、簡単なものを作るために-スプレッドシート全体を選択してクリックセルの書式設定、そしてテキストを

自動的に、スプレッドシート全体でテキストが使用されます。セルごとに実行する必要はありません。


残念ながら、これは機能しません。テキストだけの科学的表記になり、それが全体の問題だ...
ヨリスMeys

0
  1. 問題フィールドを列Aの新しいシートにコピー/貼り付け

  2. 列Aをテキストファイルにコピー/貼り付け

  3. 列Bをテキストにフォーマットし、テキストファイルを列Bに貼り付けます

  4. 列Cで:

    =IF(ISNUMBER(SEARCH("+",B1)),A1,"")
    
  5. 列Cを小数点なしの数値形式に変換します

  6. 列Cをテキストファイルにコピーして貼り付けます

  7. 列Dをテキストにフォーマットし、テキストファイルを列Dに貼り付けます

  8. 列Eで:

    =IF(IF(IF(B2=A2,A2,D2)=0,A2,IF(B2=A2,A2,D2))=0,"",IF(IF(B2=A2,A2,D2)=0,A2,IF(B2=A2,A2,D2)))
    
  9. 列Eをコピーしてメモ帳に貼り付けます

  10. 問題のあるフィールドのデータを削除し、列をテキストにフォーマットする

  11. テキストファイルから問題フィールドにデータをコピー/貼り付け


0

これはExcel 2013で機能し、セルを他のプログラムにコピーアンドペーストしました。特に編集ステップでは、データのフィルタリングが役立ちました。

  1. 目的のセルを選択します。
  2. 数値形式「テキスト」を適用します。(Alt、H、N、次に「テキスト」を試してください。)

次に、目的のセルごとに:

  1. 編集モードに入ります。(F2を試してください。)
  2. Enter(列に適しています)またはTab(行に適しています)で編集を確認します。内容を変更しないでください。

100桁であっても、通常の番号が表示されます。=)


複数のセルでは機能しません(Excel 365)
アルビン

0

Excelは、CSV /バルクデータがこのように機能するためにイライラします。可能であればLibreOfficeで作業します。これは行いません。つまり、Libreofficeで同じシート(.xlsx)を開くと、実際の文字列である大きな「数字」は科学表記法で表示されません(これは不合理な決定です) Excelで)。LibreOfficeのファイルの忠実度は優れています。Excelで同じ.xlsxを再度開くと、科学表記法が即座に通常どおり「機能」します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.