- 締切済み
Excelのグラフ、データ範囲について
Excel2002を使用しています。 マーカー付き折れ線グラフの作成を指示され、作業しています。 途中までは作業できていたのですが、csvファイルのデータが大きいものがあったので、それは一旦Accessにインポートして分割して再度xlsファイルにして作業を進めていました。 そうしたところ、それまで系列のデータ範囲が自動で「列」になっていたものが「行」になっており、データのほとんどがタイトルと認識されていました。 仕方ないので手動で「名前」、「値」、「項目軸ラベルに使用」を直したのですがそのまま作成すると、データの値がなぜが全て0で読み込まれているようで、グラフの底にマーカーの直線が出来てしまいます。 これはどういったことが原因に考えられるでしょうか。 どなたかご教示願います。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- end-u
- ベストアンサー率79% (496/625)
>が、csvファイルをExcelで開くと、データの3分の2程度までしか表示出来ないため、 >やはり教えて頂いた方法で数値化出来るのは表示されたところまででした。 ハテナ?です。 1)CSVファイル ↓ 2)一旦Accessにインポート ↓ 3)xlsファイルに分割 ↓ 4)xlsファイルとして開く ↓ 5)グラフ作成 という手順でやってるのですよね? (4)で開いた時に数値化してグラフにすれば良いというわけではないのでしょうか。 そもそも『一旦Accessにインポート』しなければできない処理なのか不明ですが。 CSVファイルをテキストエディタで開いて適当な行数で分割保存してExcelに取り込めばいいと思います。 必要であれば、csvファイルを分割して複数シートに取り込むマクロもありますけど。 Sub CSV分割読み込み() Const LIMIT As Long = 50000 '1Sheetあたりの分割数 Dim wkCon As Object 'ADODB.Connection Dim wkRst As Object 'ADODB.Recordset Dim wkPath As String Dim wkCsv As String Dim wkSQL As String Dim ws As Worksheet Dim p As Long Dim x x = Application.GetOpenFilename("csvFiles,*.csv") If VarType(x) = vbBoolean Then MsgBox "cancel": Exit Sub p = InStrRev(x, "\") wkPath = Left$(x, p) wkCsv = Mid$(x, p + 1) wkSQL = "SELECT * FROM [" & wkCsv & "];" On Error GoTo conErr Set wkCon = CreateObject("ADODB.Connection") With wkCon .Provider = "Microsoft.Jet.OLEDB.4.0" .Properties("Extended Properties") = "TEXT;HDR=no;FMT=Delimited" .Open wkPath End With On Error GoTo rsErr Set wkRst = CreateObject("ADODB.Recordset") wkRst.Open wkSQL, wkCon Do While Not wkRst.EOF Set ws = Sheets.Add ws.Range("A1").CopyFromRecordset wkRst, LIMIT Set ws = Nothing Loop wkRst.Close rsErr: wkCon.Close conErr: Set wkRst = Nothing Set wkCon = Nothing With Err() If .Number <> 0 Then Debug.Print .Number, .Description End If End With End Sub
- end-u
- ベストアンサー率79% (496/625)
>csvファイルのデータが大きいものがあったので、 >それは一旦Accessにインポートして分割して再度xlsファイルにして... この段階で、データの値が、数値に見えるけど実際は「文字列」になっていないでしょうか。 データの列を選択して[データ]-[区切り位置]-[完了]クリックで数値化できませんか?
補足
ありがとうございます。 確認したところ、確かに文字列になっていました。 が、csvファイルをExcelで開くと、データの3分の2程度までしか表示出来ないため、やはり教えて頂いた方法で数値化出来るのは表示されたところまででした。 Accessでインポートする際に数値化出来ないか試してみたのですが、グラフで「項目軸ラベルに使用」に相当するものが日時のため、そちらがインポートエラーとなりました。 インポート後に項目のみ数値化も試してみましたが、こちらは小数点以下がバッサリ消えて整数になっていました。 どこか別の段階で数値化することは可能でしょうか? よろしくお願い致します。
お礼
ありがとうございます。 そうでした、何も色々弄り回さなくても、先に教えて頂いた方法で数値化できますよね。 なぜか分割後、延々とセルの書式設定を弄ってはどうにもならずに困っていました。 思い込みです。すみません。 テキストエディタの分割とマクロも試してみました。 テキストエディタでの分割は問題なくできました。 マクロはデジタル証明がなんとかというポップアップが出て、実行出来ませんでした。 色々と教えて頂きありがとうございました。