web-dev-qa-db-ja.com

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

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

これが私をナッツにしているものです(これはExcel 2010です):

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

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

今、私は別の順序で手順を実行した場合:

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

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

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

これらの文字列をテキストとしてフォーマットしやすくするための簡単な対処方法はありますか?

一体なぜExcelがこれをしているのでしょうか。

私が見つけた関連するSUの質問: どうやってExcel 2007が科学的記数法として大量の数値をフォーマットするのをやめさせることができますか?これはありますか?大きな16進数が予想される場合のExcelの動作は?

108
Michael Levy

ああ、Excelで膨大な数のクロスチェックをしたときから憶えていたデータの記憶(もう二度と).. Excelに長い数字の文字列を打ち込むとき、12345678901234567890(20桁)と言ってみてください、Excelは通常convertitこれは、タップしたばかりの20桁の数字が15桁の有効数字になるように切り捨てられたことを意味します。

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

これはエントリの時点で発生するので、入力するとそれ以上の詳細は失われます。したがって、Excelでは、これはテキストであって数値ではないと言ったとしても、運が悪くなってしまいますあなたの最初のシーケンスはうまくいきません。

22
tanantish

これはExcel 2010で私のために働きました。ちょうど列を選択し、右クリックして、セルの書式設定、カスタムを選択し、0(一般の下の2番目のオプション)というオプションを選択してください。

155
Anonymous

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

13
dav

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

12
M Akin

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

=""&a1

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

11
Rok

質問の年齢は知っていますが、これはGoogle検索の後に着地し、質問に答えなかったものです(なぜテキストとしてのフォーマットがうまくいかず、フォーマット後に数字が15桁に切り捨てられるのか)テキストに)。

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

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

それ以降は、切り捨てられた値を使用することになるので、フォーマットのコツは役に立ちません。ただし、Text to columnsオプションを使用して指数表記をテキストに変換することができます(列ヘッダーをクリックしてText to dataをクリックし、次にDelimitedNextをすべてクリックし、Column data formatTextを選択してからFinishを選択)。 15桁の数字で表示されます。しかし、それはたった15桁になるでしょう、それであなたがより長い数を持っていたならば、残りは失われます。

スプレッドシートに 正確に と入力した方法で番号を表示するには、テキストとして保存する必要があります。そのため、アポストロフィを前に付けるか、セルをtext の前に と入力して値をコピーする必要があります。それが「時々うまくいかない」のなら、すみません、あなたは何か間違ったことをするか、ある種の自動修正をオンにします(アポストロフィと15桁以上の大きな数字を使うならExcelはそれを間違った値として扱い、警告をセルに表示しますメッセージなので、この発言は個人的でも批判的でもありません。

一括してそれを行う他の方法は、テキストファイルから値をインポートすることです。私はそれがほとんどの状況のた​​めの唯一の方法だと言うことを敢えてします。また、Excelではcsv型がネイティブ形式のように扱われ、当然のことながら15桁に切り捨てられるため、ファイルを開くだけでなく、必ずインポートしてください。

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

5
AcePL

セルをカスタム>#の形式にすることができます。

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

私はバーコード(UPC)をよく扱っていて、Excelはデフォルトでそれらを科学的表記法としてフォーマットします。私を不安定な状態にする!なぜこれが選択肢にならないのか私は決して知りません。

5
Graham

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

私は多くのExcelユーザーに賛成です。科学的記数法を妨げる選択肢がないのは刑事です!

3
gsoClarke

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

1
  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
DataWizard

Excel 2013では、セルを他のプログラムにコピー&ペーストするなど、これがうまくいきました。データのフィルタリングは、特に編集ステップで役立ちました。

  1. ご希望のセルを選択してください。
  2. 数値フォーマット "Text"を適用してください。 (Alt、H、Nを押してから「テキスト」を試してください。)

次に、希望のセルごとに、

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

あなたの番号は100桁であっても普通に現れるでしょう。 =)

0
skia.heliou

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

0
Tim Richardson

すべてのセルを選択します。または、作業を簡単にするために、スプレッドシート全体を選択してからセルの書式設定をクリックし、次にをクリックします。 .

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

0
Dima