Excelの自動フォーマットを停止して、数値計算プログラムのように動作させる方法


19

特定の方法で数値をフォーマットしているcsvファイルでExcelに実際の問題があり、何をしてもExcelでデータを正しく表示できないようです。

「Product Reference」という列があると想像してください。その列内には、次のタイプのIDが多数あります。

  • 001145
  • 55666
  • 02133

Excelファイルを開くたびに、これらの数値は次のようにフォーマットされます。

  • 1145
  • 55666
  • 2133

これはまったく間違っています。列を強調表示し、テキストとして書式設定すると、数字の先頭にある前の0は返されません。

これを解決するために、私はcsvファイルを最初にテキストファイルにした後、ファイルをExcelにインポートし、インポート内でテキスト形式にすることで数値をフォーマットしないように具体的に指示しましたが、閉じるときに番号を間違ってフォーマットしますcsvが型を定義できないため、Excelがファイルを純粋なゴミとして自動保存するため、再度開きます。

誰かがこれを回避する方法を見つけて助けてくれましたか?

おかげで、


私の知る限り、ExcelにCSVを忠実に表示させる唯一の方法は、記述したとおりにテキストとしてインポートすることです。
エクセル

ただし、CSVをテキストファイルにする必要はありません。テキストファイルからのインポート機能は、CSVファイルでも機能します。カンマ区切り文字があることを指定するだけです。
エクセル

回答:


19

テキストであることをcsvファイルで指定する必要があります。これを行うには、番号を引用符で囲み、先頭に等号を付けます。例:

="001145",="55666",="02133"

これを行う最も簡単な方法は、,with ",="でfind-replaceを実行し、行の終わり(このためにNotepad ++などの高度なエディターを使用する必要がある場合があります)を置き換え"\r\n="、ファイルの開始と終了を手動で行うことです。


ニース:)これを試して報告します
サマエ

11
  1. 問題のあるファイルのファイル拡張子を「.csv」から「.txt」に変更します。
  2. Excel自体を開きます。ファイルをクリックして開かないでください。
  3. [開く]をクリックし、検索するファイルの種類を[すべてのExcelファイル]から[すべてのファイル]に変更します
  4. ファイルを見つけて、開くをクリックします。Excelはtxtを自動フォーマットしないため、ウィザードが表示されます。
  5. [区切り]ラジオボタンが選択されていることを確認します。「次へ」ボタンをクリックします。
  6. 「カンマ」区切りボックスをチェックし、「終了」ボタンを見る(クリックしない)まで「次へ」ボタンを押し続けます。
  7. スプレッドシートの各列をスクロールして、手動でフォーマットする各列を強調表示し、フォーマットを「テキスト」に変更します。
  8. 終了ボタンをクリックします。

これは、問題を解決するための手間のかからない良い方法です。
ジャック

あなたは私の一日を救った!
ディネッシュygv

2

OracleからOpenOfficeをインストールし、OpenOfficeのCSV形式で同じことを行うと動作します。

Excel 2010を搭載したWindows 7 Proでこの問題が発生しました。以前はOutlookの連絡先をExcelにコピーし、CSVとして保存し、GmailとAndroid(先頭にゼロと+記号が付いた携帯電話番号)にインポートできました。


1

データを含むセルを右クリックし、[セルの書式設定... ]メニューエントリをクリックします。次に、最初のタブ(「番号」)で、カテゴリを「一般」から「テキスト」に変更します。これにより、Excelはこれらのセルを自動的に数値としてフォーマットし、先行ゼロを削除しなくなります(数値分析のコンテキストでは意味がありませんが、製品IDを扱う場合は非常に意味があります)。

データをインポートして数値として解析する場合は、データインポートウィザードを使用して、各列タイプを「一般」ではなく「テキスト」に設定する必要があります。次に、セルで同じことを行い、Excelブックを保存します。


CSVファイルはフォーマットを保持しません。これは役に立ちません。
エクセル

@Excellllは明らかに、単なるカンマ区切りのASCII文字の束です。 既定では、Excelはセル形式を[ 全般]としてマークし、値(数値、日付、その他)の解釈を試みて、数式で使用できるようにします(通常、プレーンテキストではできないため)。値をプレーンテキストとして解釈するようにExcelに手動で指示して、自動的に変換されないようにする必要があります。
ブレークスルー

Excelがフィールドのフォーマットを「自動保存」しなかった場合は、機能します:(Excelは他のCSVオープナー/プログラミング言語と同じように動作する必要があります。
Sammaye11年

私はそれを試してみましたが、変換されたExcelファイルを開くと、Excelがデフォルトに戻します。TXTからExcelにインポートし、テキストとして表示し、ファイルを閉じて開くようにそこに指示すると、Excelはデフォルトでフィールドの数値形式に戻り、真の値を非表示にします。
サマエ

@ブレークスルー、申し訳ありませんが、私は私が意味することを表現しませんでした。コメントで述べたように、ExcelでCSVを開くと、Excelはすべてのデータに一般的な書式設定を適用します。この時点で、CSVファイルに実際に保存されているテキスト(先頭のゼロ)はExcelで取得できません。ポイントは、CSVをExcelで開いたら、書式設定を変更するには遅すぎるということです。
エクセル

1

先行ゼロを保持するセルをクリックします:右クリック>セルの書式設定>カスタム> 0>セルに必要な総数を入力します:00001234が必要な場合は、0000000000を入力しますゼロの数、セルに合計8を入れるだけです。すでに1234があるので、さらに4つの先行ゼロとの差を補います。

これをスプレッドシートのインポートに毎日使用しています。


0

この質問からの@Jonの回答に追加するために、インポート時に先行ゼロと先行ゼロを失うか、長い数値を科学表記に変換する、またはその両方を含む複数の列を持つCSVファイルがありました。

修正できる唯一の方法はText、次の手順を使用して、最初に空のシートのすべてのセルをにフォーマットすることでした。

  1. シート内のすべてのセルを選択します。

ここに画像の説明を入力してください

  1. すべてのセルの形式を変更します。

ここに画像の説明を入力してください

すべてのシートセルをにフォーマットした後Text、次の手順を使用してCSVをインポートできます。

  1. DataタブからFrom Text:をクリックします。

ここに画像の説明を入力してください

  1. .txtまたは.csvファイルを選択してクリックしますImport

  2. [ Delimited次へ]を選択してクリックします。

ここに画像の説明を入力してください

  1. 適切な区切り文字(私が選択したComma)を選択し、適用しない他の区切り文字を選択解除してから、「次へ」をクリックしますNext

ここに画像の説明を入力してください

  1. 右にスクロールして、Text先行ゼロを保持し、科学表記法を防ぐためにフォーマットする必要がある列を見つけます。列をクリックして(暗くなります)、Textオプションリストで選択します。正しくフォーマットする必要があるすべての列を選択してください。

ここに画像の説明を入力してください

  1. 次にをクリックしますFinish。フォーマットした列までスクロールすると、すべての先行ゼロが保持され、数字の長い文字列が科学表記法ではないことがわかります。

お役に立てば幸いです!


0

データがSQLを使用して生成された場合。切り捨てを防止する必要がある数値にタブ文字を追加すると機能するはずです。

-- Oracle PL/SQL
select "01234567890123456" || chr(9) from dual;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.