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

cell-format microsoft-excel microsoft-excel-2010

エクセルでいくつかのデータを処理しようとしています。そのデータには、数字のアカウント番号やその他の長い数字の文字列(携帯電話のMEIDのようなもの)が含まれています。これらの文字列に対して数学的な演算をしているわけではないので、エクセルではプレーンテキストとして扱わせたいのですが、どうしたらいいでしょうか?

ここで気が狂いそうになるのは(これはExcel2010です)

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

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

さて、手順を違う順番でやってみると

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

これで、セルは文字列として表示され、科学的表記ではなくなりました

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

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

いったいなぜExcelはこんなことをするのか?

関連するSUの質問を見つけました。Excel 2007で大きな数字を科学表記として書式設定しないようにするにはどうすればいいですか?と大きな16進数でのこのExcelの挙動は予想されますか?

  127  Michael Levy  2012-04-16


ベストアンサー

ああ、エクセルで大規模な数字のクロスチェックをしていた頃のデータを思い出します(二度としません)。エクセルに長い数字を入力して、例えば12345678901234567890(20桁)を入力してみると、エクセルは大体変換してくれます

この変換は四捨五入ではなく、切り捨てです。(12345678901234567890は1.23456789012346E+19ですが、エクセルでは1.23456789012345E+19と表示されます)

これは入力時に発生しますので、一度入力されると追加の詳細は失われます。そのため、Excelに数字ではなくテキストだと伝えたとしても、運がないので、最初のシーケンスがうまくいかないのです

24  tanantish  2012-04-16


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

185  Anonymous  2014-07-23


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

13  dav  2012-04-16


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

13  M Akin  2012-09-28


これを試してみてください…これは私のために動作します、Excel 2013

=""&a1

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

13  Rok  2013-07-05


年齢的なことは承知しているのですが、グーグル検索して着地したもので、私の疑問(テキストとしてのフォーマットがうまくいかない理由と、テキストにフォーマットした後に数字が15桁に削られてしまう理由)には答えられませんでした

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

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

それ以降に行うことはすべて切り捨てられた値を使用することになるので、書式設定のトリックは何の役にも立ちません。しかし、Text to columnsオプションを使って指数表記をテキストに変換することができます(列のヘッダーをクリックし、Text to dataをクリックし、Delimitedをクリックし、Nextをクリックし、すべてのデリミタボックスのチェックを外し、Column data formatTextを選択し、Finishをクリックする)と、値がテキストに変換され、すぐに15桁の数字として表示されます。ただし、15桁の数字しか表示されませんので、もっと長い数字を表示していた場合は、残りの数字は失われてしまいます

スプレッドシートに入力した通りに数値を表示するには、テキストとして保存する必要があります。そのためには2つの方法がありますが、これらは編集の前後にのみ機能します

  1. あなたはアポストロフィでそれを先行させるか、値を入力/コピーする前にテキストとしてセルをフォーマットする必要があります

  2. 入力前に対象のカラムを Text でフォーマットしておく必要があります

あなたが方法1を使用していると、それは “時々動作しない “場合は、申し訳ありませんが、あなたは何か間違ったことを行うか、またはオートコレクトのいくつかの並べ替えを持っている(あなたがアポストロフィと大きな数字>15桁を使用している場合、Excelは間違った値と警告メッセージとフラグセルとしてそれを扱うので、この発言は個人的なものでも批判ではありません)

方法2は、大きなデータセットでもコピー&ペーストで動作するので、非常に便利です

バルク数で行う他の方法は、テキストファイルから値をインポートすることです。敢えて言うならば、ほとんどの状況ではこれが唯一の方法です。また、Excelはcsv型をネイティブフォーマットのように扱い、大きな数字は当然のように15桁にトリミングするので、ファイルを開くだけでなく、必ずインポートするようにしてください

さて、最後の問題です。テキストとしてフォーマットされたExcelのセルに大きな数値を入力しても、セルの幅が足りない限り科学表記で表示されてしまいます。迷惑な話ですが、Excelの内部アルゴリズムの一部の副作用です。セルの幅を広くするだけで、毎回完全な数値が表示されるようになります

7  AcePL  2016-11-03


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

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

私はバーコード(UPC)を扱うことが多いのですが、エクセルはデフォルトで科学的な表記でフォーマットします。私は気が狂いそうになります!なぜこれがオプションではないのでしょうか?なぜこれがオプションではないのか、私は決して知りません

5  Graham  2014-07-02


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

エクセルユーザーが多いのは同意だが、科学的表記を防ぐための選択肢がないのは犯罪だ!というのは、私の意見である

3  gsoClarke  2013-08-14


Excel 2013では、同じことが私にも起こりました

1  Christopher Chipps  2015-10-21


エクセルはこのようなCSV/バルクデータの作業にはイライラします。できれば LibreOffice で作業してください。これはできません。つまり、同じシート (.xlsx) を Libreoffice で開くと、実際には文字列である大きな「数字」が科学表記で表示されません(これは Excel の無茶苦茶な判断です)。LibreOfficeのファイルの忠実性は素晴らしいものです。同じ.xlsxをもう一度Excelで開くと、科学的記法は即座に通常と同じように「機能」します

1  Tim Richardson  2018-02-28


すべてのセルを選択するか、スプレッドシート全体を選択して、[セルの書式設定]、[テキスト] の順にクリックします

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

0  Dima  2012-04-17


  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  2013-09-27


これは、セルを他のプログラムにコピーペーストすることも含めて、Excel 2013で私のために機能しました。データにフィルタをかけることで、特に編集のステップで役立ちました

  1. ご希望のセルを選択してください
  2. 数字の書式「テキスト」を適用します。(Alt、H、N、そして「テキスト」を試してみてください)

そして、ご希望のセルごとに

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

あなたの番号は100桁でも普通に表示されます。)

0  skia.heliou  2014-01-28


他の投稿でも触れていますが、Excelは貼り付けたデータを科学表記で上書きしてしまうので、何にフォーマットを変えても元に戻ることはできません

私がこれに対処する方法は、私はいつも最初にすべてのデータをエクセルに貼り付けて、科学的な表記があるすべての列をメモします。その後、貼り付けを元に戻して、先にメモした列をすべてハイライトし(Ctrl+クリック)、フォーマットをテキストに変更します。その後、貼り付けをやり直すと、すべての科学的表記が消えてしまいます

0  user890332  2020-08-12


タイトルとURLをコピーしました