アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルでグラフの作成をしようと試みたところデータ数が
10000程あったため途中までのデータしかグラフ化されません。
そこで、データを10あるいは100行おきに間引きをしてグラフの作成を行いたいのですが、エクセル上で簡単にこのような操作を行うためにはどのようにすればよいのでしょうか?

宜しくお願い致します。

A 回答 (2件)

Excel2007からは事情が変わっているそうですが、それ以前のバージョンの場合です。

下記のコードで、試してみました。test()でデータを作成し、ctrl+shift+:で、全データを選択して、グラフを描かせてみました。
その後、test2のコードで、途中の行を非表示にしてみました。
Sub test()
Dim i As Long

Application.ScreenUpdating = False
For i = 1 To 65536
Cells(i, 1) = i
Cells(i, 2) = i ^ 2
Next i
Application.ScreenUpdating = True
End Sub
Sub test2()
Rows("100:65500").Select
Selection.EntireRow.Hidden = True
End Sub
分かったこと(Excel2000ですが、2003までは一緒だと思います)
Excelがグラフ化してくれるのは(65536/2)個まで。
途中の行を非表示にすると、最後のデータまで表示してくれる。
以上から、例えば10行おき、100行おきに作業列に目印を置いて(例:*)、オートフィルターにより、目印のついた行だけを表示してはいかがでしょう。
ただ、32000個を超えるデータでは重くてしかたがないと思います。当方、65000個を超える様なデータの場合に、Accessのmdb形式のデータファイルにして、必要なデータだけワークシート上に抜き出して、グラフ化等行っています。こちらは一口では説明できませんので、リンク先をご覧下さい。

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
    • good
    • 1

対象以外のデータは捨てるわけには行かないから


(1)抜き出し(関数、VBA、フィルタなど)
例えば13個おきにサインを立てるのは
=IF(MOD(ROW(),13)=0,"1","")
連番を振るのは=IF(MOD(ROW()-1,13)=0,MAX($C$1:C13)+1,"")
この後連番を振ったものを別シートに取り出す方法は、imogasi方式
でGoogleで照会してみてください。私がこのコーナーでした抜き出し問題の多数の回答の中に書いています。(昨日もありました)
(2)非表示(幸いグラフは非表示のデータは対象にしないので)にする
しかしこれ(非表示)は関数では絶対どうにもならない。VBAがいる。
小数なら手作業でやれる。
13行ごとに表示の例なら(実行時間は少しかかる)
下記を実行して非表示にできる。下記コード内で13のところを
適当に変える事。
標準モジュールに
Sub test01()
Application.ScreenUpdating = False
For i = 1 To 10000
If Cells(i, 1).Row Mod 13 = 0 Then
Else
Cells(i, 1).EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!