• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロを用いてのデータ加工)

マクロを用いてのデータ加工の方法とは?

このQ&Aのポイント
  • 1分のデータ(60個)の平均を繰り返し処理できる方法を知りたい
  • ループを使って変数部分を指定することで、1440行も書かずに済む
  • 具体的なコードのイメージを示している

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

なんだかよくわかりませんが L3~L902セルに、B3から60ずつの範囲のAVERAGEを計算する数式を挿入していけばいいんでしょうか? Sub test01() Dim Rng As Range, i As Long With ActiveSheet Set Rng = Range("B3:B62") For i = 1 To 900 Cells(i + 2, "L").FormulaLocal = "=AVERAGE(" & Rng.Address(0, 0) & ")" Set Rng = Rng.Offset(60) Next i End With Set Rng = Nothing End Sub

water18
質問者

お礼

ありがとうございます。 上手くマクロを組み込むことができました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

No3 merlionXXです。 > 上手くマクロを組み込むことができました。 water18さん、それは良かった。お役に立てて幸いです。 なお、ずいぶん前に回答した、フォルダー内の全てのCSVファイルからデータをエクセルに転記するマクロコードはどうだったのでしょうか? まったくお返事がなく、締め切られてもいないのでうまくいかなかったのでしょうか? http://okwave.jp/qa4950281.html 回答番号:No.1です。

water18
質問者

お礼

お返事が遅れてしまい申し訳ありませんでした。 マクロは上手く動作しましたが取り込みたい順番とシートの順番が逆になります。

すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

わざわざマクロを組まなくても L3に =AVERAGE(OFFSET(B$3,60*(ROW()-3),0,60,1)) を入れて下までコピーしてはいかが?

water18
質問者

お礼

OFFSETですか、使ったことがないのでいまいちわかりませんが、便利ですね。 ありがとうございます。

すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

質問文の意味がよくわからないのですが、勝手に想像して… 以下のように仮定しました。 ・データがB3~B28743にあり、60個ごとにまとめて平均値を求めたい。 ・平均値を表示するセルは、L3、L4、L5と上詰めで=AVERAGE()の式で  算出してよい。(L902の意味が不明ですが…) ◆式は一度だけ定義しておけば、データの内容が変わっても自動的に算出されるのでマクロで設定する必要もないと思うので、L3に式 =AVERAGE(INDIRECT("B" & ROW()*60-177 & ":B" & ROW()*60-118)) を入れて、L481まで下にコピーフィルすれば設定できるかと… ◆どうしてもマクロでというのであれば、同様に For r = 3 To 481  Range("M" & r).Formula = "=AVERAGE(B" & r * 60 - 177 & ":B" & r * 60 - 118 & ")" Next r みたいな感じでいけると思うけど…

water18
質問者

補足

L902となっているのは、データの一部が欠落しているためサンプル数が少なくなっているためです。

すると、全ての回答が全文表示されます。