Excelの値0503E000をCSV内の任意のセルの値に自動的に5.03E + 02に変換する
これが起こらないようにするにはどうすればよいですか?
DEC2HEX
とHEX2DEC
文字列を使用でき=DEC2HEX(HEX2DEC("0503E000"))
ます(例として)。数式が含まれていないcsvファイルを操作する必要がある場合は役に立たないかもしれませんが、テキストとしての書式設定以外の別のオプションです。
Excelの値0503E000をCSV内の任意のセルの値に自動的に5.03E + 02に変換する
これが起こらないようにするにはどうすればよいですか?
DEC2HEX
とHEX2DEC
文字列を使用でき=DEC2HEX(HEX2DEC("0503E000"))
ます(例として)。数式が含まれていないcsvファイルを操作する必要がある場合は役に立たないかもしれませんが、テキストとしての書式設定以外の別のオプションです。
回答:
ここで重要な問題は、セルタイプが埋め込まれていないCSVを使用していることだと思います。Excelは自動的にセルを科学的な数値として解釈しようとします。そのため、0503E000ではなく5.03E + 02が表示されます。
Excelブックを作成し、すべてのセルをテキストとしてフォーマットしてから、データを貼り付けてみてください。Excel 2013で試してみましたが、うまくいきました。
CSV形式を変換または制御できる場合は、列を二重引用符で囲み、等号を追加することで、Excelで列をテキストとして解析することができます。
Excelはこの形式の精度を不注意に破棄します。
Value,0503E000,1234123412341234
または、この形式でも:
Value,"0503E000","1234123412341234"
に変換する:
Value | 5.03E+02 | 1234123412341230
ただし、等号を追加すると、Excelがデータをしぶしぶ保持するようになります。
Value,="0503E000",="1234123412341234"
…次のように開きます:
Value | 0503E000 | 1234123412341234
CSVファイルをExcel で開くのではなく、ファイルのインポートを選択します(Excel 2007-2010では、データリボンに移動します/外部データの取得/テキストから)。2013についてはわかりませんが、同様のものがあるはずです。そうすると、テキストインポートウィザードが開き、その値を含む列をExcelで(あまり役に立たないが)数値に変更する前に書式設定する機会が与えられます。
this
ていたなら、残りは明らかだっただろう。私は年をとっていると思います:-(
デフォルトのセル書式設定では、先頭にゼロが付いた数字と長い数字はExcelによって自動的に変更されます。たとえば、012と入力すると、12に変更されます。
セルをTextとしてフォーマットすると、セルに入力した数値はそのまま残り、Excelによって変更されません。
ただし、別のソースの数値をTextとしてフォーマットされたセルに貼り付け、ソースに何らかのフォーマットがある場合、セルのフォーマットはTextからGeneralに変更され、数値の操作が戻ります。
私が見つけた解決策は、特別な貼り付けを行い、テキストとして番号を貼り付けることでした。次に、セルはテキストの書式設定のままになり、数値はまったく変更されません。