- ベストアンサー
CSVファイルにコピペすると計算式が変になる?
- CSVファイルからコピペすると、計算式が変になることがあります。特に大きなブックの場合にこの現象が発生することがあります。
- Windows7とOffice 2010、またはWindows7とOffice 2013の組み合わせでこの現象を確認しています。
- ブックのサイズが大きくなると、この問題がより顕著になる可能性があります。ブックは旧エクセル形式のxlsであり、サイズは約2MB程度です。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
再び回答No.2です。 > Office2013でxlsファイルを利用すると大きくなるのが早いです。 2010でもファイルサイズが異常に膨らむ現象は何度も目撃しています。どうも2010以降のExcelには(もしかして2007も?)、xlsファイルの扱いに難があるっぽいですね。 一度膨らんでしまった物を元に戻す方法として、フリーの互換OfficeであるLibreOfficeのCALCで開いて保存し直す、というのがあります。グラフや描画オブジェクトを使っているワークシートでは書式が変わる心配があるんで、万能な方法とは言いがたいのですが、これだけで確実に1/3程度、場合によっては1/10くらいに縮むこともあります。 またExcel2010だと、xlsファイルが開けなくなってしまうことがたまにあるんですが、こうなったワークシートもLibreOfficeでは開くことが出来、それを保存し直すと本家Excelでも開けるようになったりもします。なのでLibreOfficeはメインには使わないとしても、こうした異常事態に対応するためのツールとして極めて有用です。 公式ダウンロード先 http://ja.libreoffice.org/download/
その他の回答 (6)
- RandenSai
- ベストアンサー率54% (305/561)
回答No.2です。 やはり別シートへの操作だったんですね。ただそうなると、すでに他の回答者さんが指摘しているように異常な動きをしています。ファイルサイズが異常に膨らんでいることから、ワークシート内部に何か異常・矛盾が生じているっぽいですね。 一度全く新規のワークシートを作成し、そこに式を貼り付けて保存し、Excelをいったん閉じてそのファイルを開き直したら式がどうなっているか、見ておきたい。念のために貼り付けは普通にCtrl+Vではなく、右クリックメニューの「形式を選択して貼り付け」とし、「数式」だけを貼り付けます。罫線などの書式はコピーしない方が無難でしょう。 当然ながらこれで保存したファイルは、劇的に小さくなっているはずです。書式はひとまず忘れて、ここで普段の手順通りにcsvをコピペしてみて異常が出ないことを確認してください。問題なくなったら、書式を復旧させます。これも形式を選択して貼り付けで持ってくることは可能ですが、書式を貼り付けたら別名保存して閉じ、開き直して異常がないことを確かめ、罫線をコピーして別名保存…という段階を踏む方が安全です。
お礼
回答ありがとうございます。
補足
異常な動作をするブックのシートを全て選択して、移動またはコピーをクリックし、コピーを作成するにチェックを入れ、新規ブックを指定して貼り付けたのを保存したら、劇的に小さくなりました。 そのファイルを開き、通常通りの作業をしてもらったら問題は発生しません。 機種が変わると新規に参照式等作るのでそこでは、問題は起こらないようです。 しかし、データの参照位置が検査手法を変えることで変わることがあるため、前日(前回)のCSV貼り付けたブックをコピーし名前を変えて、参照式を変更し、そのブックを使います。 ですから、日々ファイルサイズが増えていますが、XP+Office2003だとそれほど大きくならないのが、7+Office2013、Vista+Office2013でxlsファイルを利用すると大きくなるのが早いです。 xlsxファイルだとxp+Office2003と変わらないですが。
- bunjii
- ベストアンサー率43% (3589/8249)
>作業者は貼り付け用のシートに対して削除はしません、CSVファイルを開いて、全選択の貼り付けだけしかしないのに、参照式が参照先がないエラーが(REF)出るのです。 あなたの説明内容ではありえない現象です。 Sheet1へCSVファイルからシート全体を貼り付けるだけではSheet2からの参照セルに変化が起こりませんのでエラー(#REF!)になりません。 但し、Sheet1へ貼りつける前にSheet1のセルを削除した場合はその時点でSheet2の数式にエラー(#REF!)が発生しています。 Sheet1へ貼り付け前にSheet2でエラーが起っていないことを確認されると良いでしょう。 またはSheet2にエラーが起ったときはマスターファイルのSheet2の全範囲を作業用ファイルのSheet2へ再コピーすることで解決します。 エラーの#REF!は参照範囲が見付からないときに起るものでシート内で移動したときは参照している数式が連動して参照先を移動しますのでシートの範囲に収まっていればエラーになりません。 エラーが起った原因を追究するには「元に戻す」(↶)と「やり直す」(↷)で操作した手順を確認すると分かるかも知れません。
- bunjii
- ベストアンサー率43% (3589/8249)
>元のブックは300KBのもので、機種毎に、その元ブックをコピーして、検査機より出されたCSVファイルを見ながら、計算式(参照式)を入れていっています。 >これを機種のオリジナルとして、日々の検査機より出力されたCSVファイルを貼り付け、報告しています。 ファイルのサイズは関係ありません。 CSVファイルは文字列の羅列であることはご存知ですよね? ブックのどのシートの何処から何処までの範囲に貼り付けるかの情報と数式のあるシートとの兼ね合いを提示しなければ補足になりません。 >XP + Office 2003 の時は、オリジナルを作った時は数Kバイト増える程度でしたが、Windows7 + Office 2013でオリジナルを作ると2Mバイトにもなります。 ファイルのサイズに拘っているようですがExcelのバージョンによって機能が異なるためファイルのサイズが違っても不思議ではありません。 質問の文言と補足の文言を合わせても抽象的すぎて判断要素が見えません。 模擬データは実際の値とかけ離れていてもかまいません。 また、計算式も実際の式を変形したものでかまいませんが同じような現象が起こるものを提示してください。
お礼
回答ありがとうございます。
補足
計算式の入ったブックには、一つ目のシートはCSVを貼り付ける為のシートでCSVを開き全選択しコピーて、貼り付け用シートで貼り付けを行います。 AA列から2列毎に検査した10個毎の結果が入っています。 検査項目は、縦(行)に入っており、全ての行が検査結果ではありません。 検査機に待ち(wait)を入れるものであったり、パラメータを作成する人が分かりやすくコメントを入れるものであったりします。 それらを含めて約5000行あります。 もう一つのシートは報告書用シートで、横(列)方向に20ずつの検査項目があり、その下に各個別の検査結果が(行毎)入れるようになっています。 縦横が入れ替わった形式です。 計算式は、単純な参照式です。 作業者は貼り付け用のシートに対して削除はしません、CSVファイルを開いて、全選択の貼り付けだけしかしないのに、参照式が参照先がないエラーが(REF)出るのです。
- bunjii
- ベストアンサー率43% (3589/8249)
>このような現象が発生してもおかしくないのでしょうか? 論理的に考えて計算式が壊れることはありません。 CSVファイルは文字列であり、目的のセルに正しく読み込まれていないときは計算結果が目的通りにならないだけです。 質問の文言だけでは原因を特定できません。 また、画像を添付していますが解像度が悪く読めません。 検証が必要であれば模擬データと関連の計算式を提示してください。
お礼
回答ありがとうございます。
補足
元のブックは300KBのもので、機種毎に、その元ブックをコピーして、検査機より出されたCSVファイルを見ながら、計算式(参照式)を入れていっています。 これを機種のオリジナルとして、日々の検査機より出力されたCSVファイルを貼り付け、報告しています。 XP + Office 2003 の時は、オリジナルを作った時は数Kバイト増える程度でしたが、Windows7 + Office 2013でオリジナルを作ると2Mバイトにもなります。
- RandenSai
- ベストアンサー率54% (305/561)
この画像だと小さすぎて見えない上に、どうなるのが正解かの注釈もないので違いが全く分かりませんが。 もしCSVのデータを式が書かれたセルにコピペして、式が維持されているんだったら、むしろその方が不思議です。csvになった時点で式は失われ、計算結果の値だけになりますから。なのでコピペ先は、壊れているという式があるシートとは別のシートだとしか思えないんでが、状況説明もないですし… 何をやってどうなったのか、その辺がよく見えないという感想しか出てきませんね。
お礼
回答ありがとうございます。
補足
計算式の入ったブックには、2つシートがあり、1つは、データを貼り付ける為のシート(仮にSheet1)、もう一つは貼り付けたデータを参照している計算式が入っているシート(仮にSheet2)です。 これとは別に検査機より出力されたCSV形式のファイルを開き、コピーし、Sheet1へ貼り付けます。 すると、Sheet1は削除していないのに、削除した時の#REF!と表示されています。 ブックを開き直し、再度同じ作業をすれば、参照式は壊れていません。 これが自分のだけだったらいいのですが、本来は、計算式作って、CSVファイルからデータを貼り付けるのは、作業者が行うのですが、ほぼ、毎日データ貼り付けしても正しく表示されないと言うので、自分が確認したら、貼り付ける度に正しく表示されたり、計算式が壊れたりします。 画像や図、グラフといったサイズを大きくするようなオブジェクトは使ってないにも関わらず、サイズは2Mバイトにもなっています。 作業者がコピペしたのは、顧客へメールで送るためのもので、顧客からの指定で xls形式で送るよう言われています。 XP + Office 2003で使っていた時は、300KB程度だったのですが、Windows7 + Office 2007(作業者)、Windows 7 + Office 2013(私)になってから、2Mバイト程度になっています。
- yasuto07
- ベストアンサー率12% (1344/10625)
csvは、テキストですよ、、、xlsはExcel形式、、、式は保たれます。
お礼
回答ありがとうございます。
補足
=Sheet1!A1 が =Sheet1!#REF と式が変わったり(参照先を削除した訳ではありません)、A1の内容が表示されたりと、CSVファイルを開いてデータを参照先であるSheet1に貼り付けると同じ動作をしません、何回かに1回正常に貼り付けられます。
お礼
回答ありがとうございます。