Ms Excelが数値文字列を数値として自動フォーマットするのをやめる
-
08-07-2019 - |
質問
レポートをMS Access(2003)からExcel(97-2003)出力にエクスポートしています。
1つの列には、一部の行に対して数値である文字列があります。 「05-0880」。
MS Excelで出力ファイルを開くと、対応するセルが番号 -372424 に設定されます。
これは、Excelが「巧妙」であることによるものと思われます。 「05-0808」を決定します;ある種の時間値または日付を表し、文字列を対応する数値に変換します。
私の場合、データは製品コードを表しており、この変換は非常に望ましくありません。 レポートの基になるクエリの出力をエクスポートする(データシートをエクスポートする)場合、この変換は行われません。 (Accessが変換を防ぐ方法でExcel形式に出力できるようにする必要があることを示唆しています。)
レポートのフィールドのフォーマット属性を変更しようとしましたが、「テキスト」がありません。オプション、および「標準」空白のままにするのと同じように動作するようです。
format()関数を使用して文字列を強制的に出力する方法はありますか? もしそうなら、これはExcelがまだ賢い変換を行うかもしれないときにも役立ちますか?
基礎となるクエリを出力として使用することはオプションですが、フォーマットとグループ化が失われるため理想的ではありません。列が区切られていないため、レポートをテキスト形式にエクスポートするのは大変です。
解決
実際には、他の方法と似ています。 MS Accessはあまりにも愚かなため、レポートから適切にエクスポートできません。データを引用符またはアポストロフィで保護できます。ただし、ご存じのとおり、これは非常に見苦しく、後処理が必要です。
これを回避する方法は、クエリを慎重に作成し、レポートではなくクエリの結果をエクスポートすることでした。これにより、期待どおりの結果が得られます。
他のヒント
エクスポート" '05 -0880" " 05-0880"の代わりに。
他のアポストロフィではなく、一重引用符を使用してください。