データをCSVファイルにエクスポートするWebアプリケーションがあります。問題のCSVファイルの行の例を以下に示します。
28,"65154",02/21/2013 00:00,"false","0316295","8316012,8315844","MALE"
画像を投稿できないので、Excelで結果を説明しなければなりません。 「0316295」フィールドは数値になり、先頭の0は消えます。 「8316012,8315844」は、83,160,128,315,844の1つの数値として解釈されます。つまり、明らかに、意図した結果ではありません。
私は人々がそのような場合に一重引用符を推奨するのを見ましたが、それも実際にはうまくいきません。
28,"65154",02/21/2013 00:00,"false","'0316295","'8316012,8315844","MALE"
単一引用符はExcelのセルに常に表示されますが、先頭に単一引用符を付けた数字を自分で入力すると、意図した文字列のみが表示され、文字列を含む単一引用符は表示されません。
インポートはタイピングと同じではないようです。
誰かがここで解決策を持っていますか?
これはうまくいくはずです
28,"65154",02/21/2013 00:00,"false",="0316295","=""8316012,8315844""","MALE"
先頭のゼロを維持するには、テキストインポートウィザードで特定の列のフォーマットをテキストに設定します。
"
に設定されていることを確認してください。ヒット次へ。ここでフォーマットを指定できます。保持する先行ゼロを含む列のヘッダーをクリックします。 Textを選択します。 (下の画像を参照)
完了を押して、データに適した場所を選択します。結果の例:
編集:別の方法があります; .CSVの代わりにカンマ区切りの.TXTファイルにWebアプリをエクスポートします(または、エクスポートしたファイルの保存後にファイル拡張子を変更します)。これにより、Excelがファイルを開いたときにインポートウィザードが強制的に実行されます。追加の利点として、ユーザーが元の生データを変更または改ざんする可能性が減少します。
Excelは、タブ文字で始まる数値をテキストとして扱います。
<tabchar>000000100000200000,ABC,DEF
次のように表示されます:
000000100000200000|ABC|DEF
|セルの境界です(説明のため)。したがって、たとえば、システムがutf-8文字セットを使用してCSVファイルを生成する場合、数値の前に	
(16進数のタブ文字)を追加して、Excelにテキストとして解釈させることができます。
Excelは、CSV列が次の形式でない限り、CSVフィールドの形式を自動検出します。
"=""Data Here"""
これはGoogleシートでも機能します
Excelの「データ->外部データの取得->ファイルからテキストをインポート」機能を使用して、テキストとして表示する必要があります。これは、@ Kazeが言及したテキストインポートウィザードです。
ユーザーが何もすることなく、Excelに入力から数値をテキストとして表示させる唯一の方法は、Excelファイルを出力し、その中に「カスタム数値フォーマット」を指定することです。これにはXLSエクスポートライブラリを使用することをお勧めします。これは、CSVファイルに構成テキストの行を追加するほど簡単ではないようです。
めちゃくちゃになっている値に対してclean関数を試してください。たとえば、= clean( "12345678901234567890")のようになります。数値、日付、時間などで機能します。これはこの関数の目的ではないため、新しいバージョンなどで機能しなくなる可能性があることに注意してください。