[[20080929135116]] 『averageに変数』(TA) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『averageに変数』(TA)

はじめまして。VBA初心者です。
データ群の2つ下に平均値を出そうと思い、
マクロの自動登録をしたところ

    Range("G31").Select
    ActiveCell.FormulaR1C1 = "=AVERAGE(R[-28]C:R[-2]C)"

となりました。
このR[-28]のところを変数にしたいのですが、
どのようにすればよいのでしょうか?

 Dim k As Integer
 k = Range("A1").Value + 1
 ActiveCell.FormulaR1C1 = "=AVERAGE(R[-k]C:R[-2]C)"

と作ってみたのですが、ダメでした。
アドバイスをお願いします。


 > ActiveCell.FormulaR1C1 = "=AVERAGE(R[-k]C:R[-2]C)"
 ActiveCell.FormulaR1C1 = "=AVERAGE(R[" & k * -1 & "]C:R[-2]C)"
 ということでしょうか?
 (ROUGE)

 ところで、

 Range("G31").Formula = "=AVERAGE(G3:G29)"
                                  ~~
 このG3の 3 を変数にしたのであれば、上記アプローチではNGです。

 (ROUGE)


 おっと、ROUGEさんと衝突して仕舞いましたが・・・。

 でも良い様に思います。
 "=AVERAGE(R[-" & k & "]C:R[-2]C)"
              ~~~~~~~~~

 因みに
 >データ群の2つ下
 と言う事ですので、このアプローチで良い様に思います。

 (HANA)

 ん?R1C1参照形式はσ(^-^;)には分かりにくい。。。orz

 変数 k に入る数値の設定の仕方があまりピンとこないもので。。。

 (ROUGE)

ありがとうございました。
 &が足りなかったのですね。勉強不足でした。
 更に自分で勉強して使いこなしてみたいと思います。

 ん・・・・AVERAGEの式はそれでいいと思うけど、
 それを入れるセルが G31 固定になるんじゃなかろうか・・・
 >データ群の2つ下
 と言う事は、G31 を変数にしないとだめなようだけど・・
 (A/H)

 う〜ん・・・?
 1.データ群の2つ下のセルをアクティブにする。
 2.マクロを実行する。
 3.同じ列の、A1に入れた数−1上がった行から、2つ上の行までの間での
   平均を返す。
 と言う事ですよね?

 もしかして、A1には「何行目から」と言う形で
 入れるのですかね。

 でしたら、ROUGEさんが書いて居られる通り
 「上記アプローチではNG」ですね・・・・。

 今更ですが・・・・
 A1セルには、どちらで指定して有るのですかね?

 ○行目の一つ下の行から と指定して有るのか
 アクティブセルから数えて○行上の一つ下の行
 (○−1行分の平均)と指定して有るのか・・・。

 現在のコードでは「○−1行分の平均」が出ますね。

 (HANA)


みなさん、アドバイスありがとうございました。
 まずG31ですが、実際には変数を指定してあります。
 そこはうまくいったので、省略して載せました。
 次にA1ですが、データの数をcountで表してあります。
 つまり、「○行目までデータがある」という数です。

 またわからないところが出たら質問させていただきますので、
 どうぞよろしくお願いします。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.