Excelでデータを処理しようとしています。データには、口座番号やその他の長い数値文字列(携帯電話のMEIDなど)が含まれます。これらの文字列に対して数学演算を行っているのではないので、Excelでそれらをプレーンテキストとして扱うようにします。
これが私をナッツにしているものです(これはExcel 2010です):
書式がテキストに設定されていても、セルは科学表記法で表示されたままです。
今、私は別の順序で手順を実行した場合:
現在、セルは科学的表記ではなく文字列として表示されます。
セルがテキストとしてフォーマットされているにもかかわらず、科学的記数法で残っている結果は私には壊れているようです。 CSVインポートを使用してフォーマットをテキストに設定したり、各数値ストリングの先頭にスペース文字を追加したりするなどの回避策が提案されています。
これらの文字列をテキストとしてフォーマットしやすくするための簡単な対処方法はありますか?
一体なぜExcelがこれをしているのでしょうか。
私が見つけた関連するSUの質問: どうやってExcel 2007が科学的記数法として大量の数値をフォーマットするのをやめさせることができますか? と これはありますか?大きな16進数が予想される場合のExcelの動作は?
ああ、Excelで膨大な数のクロスチェックをしたときから憶えていたデータの記憶(もう二度と).. Excelに長い数字の文字列を打ち込むとき、12345678901234567890(20桁)と言ってみてください、Excelは通常convertitこれは、タップしたばかりの20桁の数字が15桁の有効数字になるように切り捨てられたことを意味します。
同様に注意してください:丸めとは対照的に、変換は切り捨てです。 (12345678901234567890は1.2345678901234です6E + 19、Excelが表示します1.23456789012345E + 19)
これはエントリの時点で発生するので、入力するとそれ以上の詳細は失われます。したがって、Excelでは、これはテキストであって数値ではないと言ったとしても、運が悪くなってしまいますあなたの最初のシーケンスはうまくいきません。
これはExcel 2010で私のために働きました。ちょうど列を選択し、右クリックして、セルの書式設定、カスタムを選択し、0(一般の下の2番目のオプション)というオプションを選択してください。
数値の前に単一のアポストロフィ 'を付けると、Excelは数値をテキストとして処理します(デフォルトの左揃えを含む)。そしてあなたがエラーのフラグを立てているならば、それはセルのテキストエラーとして格納された数として表示されます。
Office 2010では、最初に列をフォーマットしてからデータを貼り付けると、大きな数字が正しく表示されることがわかりました。
これを試してください...これは私にとっては、Excel 2013です。
=""&a1
a1は数値です。その後、列をコピーして元の列に貼り付けます。
質問の年齢は知っていますが、これはGoogle検索の後に着地し、質問に答えなかったものです(なぜテキストとしてのフォーマットがうまくいかず、フォーマット後に数字が15桁に切り捨てられるのか)テキストに)。
簡単な答えは次のとおりです。数値を入力してEnter
をタップした後は、自分の番号を好きなように操作することはできません。あなたがそうする瞬間に、その数は15桁に切り捨てられて指数として表示されます。
これはバグではなく、機能です。
それ以降は、切り捨てられた値を使用することになるので、フォーマットのコツは役に立ちません。ただし、Text to columns
オプションを使用して指数表記をテキストに変換することができます(列ヘッダーをクリックしてText to data
をクリックし、次にDelimited
、Next
をすべてクリックし、Column data format
でText
を選択してからFinish
を選択)。 15桁の数字で表示されます。しかし、それはたった15桁になるでしょう、それであなたがより長い数を持っていたならば、残りは失われます。
スプレッドシートに 正確に と入力した方法で番号を表示するには、テキストとして保存する必要があります。そのため、アポストロフィを前に付けるか、セルをtext の前に と入力して値をコピーする必要があります。それが「時々うまくいかない」のなら、すみません、あなたは何か間違ったことをするか、ある種の自動修正をオンにします(アポストロフィと15桁以上の大きな数字を使うならExcelはそれを間違った値として扱い、警告をセルに表示しますメッセージなので、この発言は個人的でも批判的でもありません。
一括してそれを行う他の方法は、テキストファイルから値をインポートすることです。私はそれがほとんどの状況のための唯一の方法だと言うことを敢えてします。また、Excelではcsv
型がネイティブ形式のように扱われ、当然のことながら15桁に切り捨てられるため、ファイルを開くだけでなく、必ずインポートしてください。
さて、最後の号まで。テキストとしてフォーマットされたExcelセルに大きな数値を入力した場合でも、セルの幅が十分でない限り、科学的表記で表示されます。面倒ですが、Excelの内部アルゴリズムによる副作用です。セルの幅を広げるだけで、毎回価値がいっぱいになります。
セルをカスタム>#の形式にすることができます。
これはデータを列に貼り付けた後に適用できますが、スプレッドシートを保存する前に適用する必要があります。
私はバーコード(UPC)をよく扱っていて、Excelはデフォルトでそれらを科学的表記法としてフォーマットします。私を不安定な状態にする!なぜこれが選択肢にならないのか私は決して知りません。
Excel 2010:これは一度に1列ずつ機能し、行に対してはまったく機能しません。列または列のサブセットを選択し、[データ]タブから[テキストから列へ]を選択して、[完了]に進みます。これ以上科学的な表記はありません。
私は多くのExcelユーザーに賛成です。科学的記数法を妨げる選択肢がないのは刑事です!
Excel 2013でも同じことが起こり、セルの書式設定 - >数値を選択した後、小数点以下の桁数が "0"に設定されていることを確認しました。
問題のフィールドを列Aの新しいシートにコピー/貼り付け
A列をコピーしてテキストファイルに貼り付ける
列Bをテキストにフォーマットし、テキストファイルを列Bに貼り付ける
C列:
=IF(ISNUMBER(SEARCH("+",B1)),A1,"")
列Cを小数点なしの数値形式に変換します。
列Cをテキストファイルにコピー/貼り付け
列Dをテキストにフォーマットし、テキストファイルを列Dに貼り付ける
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)))
E列をメモ帳にコピー&ペースト
問題フィールドのデータを削除し、列にテキストをフォーマットします
テキストファイルから問題フィールドへのデータのコピー/貼り付け
Excel 2013では、セルを他のプログラムにコピー&ペーストするなど、これがうまくいきました。データのフィルタリングは、特に編集ステップで役立ちました。
次に、希望のセルごとに、
あなたの番号は100桁であっても普通に現れるでしょう。 =)
ExcelはこのようなCSV /バルクデータ処理にイライラしています。可能であればLibreOfficeを使って作業してください。これはできません。つまり、Libreofficeで同じシート(.xlsx)を開いても、実際には文字列である大きな「数字」は科学的表記では表示されません(不当な決定です) Excelによる)。 LibreOfficeのファイルの忠実度は優れています。もう一度Excelで同じ.xlsxを開くと、科学的表記法は通常どおり即座に "機能"します。
すべてのセルを選択します。または、作業を簡単にするために、スプレッドシート全体を選択してからセルの書式設定をクリックし、次にをクリックします。 .
自動的に、スプレッドシート全体がテキストを使用します。セルごとにする必要はありません。