列がテキストとしてフォーマットされているときに、数値としてフォーマットされたExcel列が先行ゼロを失うのはなぜですか?


8

スプレッドシートをCSVにエクスポートする必要があります。列の1つは、先頭がゼロの東海岸の郵便番号を持つ郵便番号です。エクスポート時に先行ゼロを保持することを期待してその列をテキストとして再フォーマットすると、列はすぐに右揃えから左揃えになり、先行ゼロはなくなります!私は正反対を期待します。テキストから数値に再フォーマットするとゼロを失う可能性があるということです。

先行ゼロをどのように保存できますか?

回答:


6

理論

Excelには、セル内のデータに関して、2つの異なる無関係な概念があります。それは、未処理/保存された値表示値です。

「未加工」または保存された値は、フォーマットされていない表現の実際のデータです。生データのタイプには、数値、テキスト、日付などがあります。

「表示」値は、データのフォーマット方法です。Excel GUIを使用すると、生の値ではなく表示値が表示されます。

問題は、CSVにエクスポートするとき、生の値を取り、それを表示値ではなくエクスポートすることです。したがって、[セルの書式設定]ダイアログを使用して先行ゼロを含むようにデータをフォーマットしても、基になる値に先行ゼロが含まれていない場合、エクスポートも行われません。

すべてのデータを(Excelスプレッドシートで)テキストとしてフォーマットし、必要に応じて先行ゼロを追加する必要があります。これにより、未加工の値に先行ゼロがある(ない)と思わせるような表示値を排除できます。

解決

ゼロはセルの内容の一部としては存在せず、書式設定のみであるため、テキストとして書式設定しても取得されません。次の列で数式を使用してみてください。たとえば、郵便番号が5桁(?)で、A2にエントリがある場合、この数式をB2に入力します。

=TEXT(A2,"00000")

数式を列にコピーします

その結果はテキスト値です(おそらく実際の先行ゼロが付きます)。この値を別の列に入れたら、元の列に「値を貼り付け」をコピーして実行し、基礎となるすべてのデータをゼロで埋められたデータに置き換えることができます。次に、余分な列を削除します。


こんにちは、バリー、素晴らしい答えです。もう1つの答えを投稿するのではなく、背景の「理論」を少し追加しました...自由に編集してください。これは共同の答えです:-)
allquixotic

@allquixotic、問題ありません。すばらしい追加
バリー・フーディーニ

2

セルにはテキストではなく数値が含まれています。数値02010は2010と同じです。テキストとしてフォーマットすると、02010ではなく2010の通常のテキスト表現になります。

先行ゼロを保持するには、数値ではなく文字列としてデータを入力します。たとえば、値として「02010」を入力します。

すべての数値が同じ長さ(たとえば、5桁)であると仮定して、先行ゼロを単純に表示するには、カスタム形式を使用します。カスタムFOrlistから0を選択し、それを00000に変更します。すべての数値は、先行ゼロ付きの5桁で表示されます。ただし、このデータをCSVファイルに保存する場合、先頭のゼロはありません。それらを保持する唯一の方法は、データを文字列として入力することです。


このデータはさまざまなサードパーティから取得しています。データを入力する人々のなすがままであり、インテリジェントな方法でデータを強制することができないため、運が悪いようです。これをテキストに変換するとゼロが取り除かれたことに驚きました。そのIMOは副作用であり、表示された値の単なる文字列表現ではありませんが、数値としてフォーマットされたセルは先行ゼロを削除することを期待します。
mrblint

0

私はExcelを使用してから長い年月が経過しましたが、常に先頭のゼロの前に 'を付けると、Excelは数値として解釈する代わりに文字列として扱います。

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