
F2からF1201にある値を、条件を幾つか指定して
(J7→F2:F1201の値で、100以上4000以下のもの、
K7→F2:F1201のうち、同じ行のD列の値が1、G列の値が1で、100以上4000以下のもの、
L7→F2:F1201のうち、同じ行のD列の値が2、G列の値が1で、100以上4000以下のもの...以下省略)
平均しようと、以下に挙げるコードを書いてみたのですが「構文エラー」と出てうまくいきません。
どなたかどこを変更したらいいかご教示頂けないでしょうか。
Sub test()
Sheets(1).Range("J7").Value = "=AVERAGEIFS(F2:F1201, F2:F1201, " >= 100" F2:F1201,"<=4000")”
Sheets(1).Range("K7").Value ="=AVERAGEIFS(F2:F1201, D2:D1201, 1, G2:G1201,1,F2:F1201, ">=100", F2:F1201, "<=4000")”
Sheets(1).Range("L7").Value ="=AVERAGEIFS(F2:F1201, D2:D1201, 2,G2:G1201,1, F2:F1201, ">=100", F2:F1201, "<=4000")”
Sheets(1).Range(“M7”).Value ="=AVERAGEIFS(F2:F1201, D2:D1201, 1,G2:G1201,2, F2:F1201, ">=100", F2:F1201, "<=4000")”
Sheets(1).Range(“N7”).Value ="=AVERAGEIFS(F2:F1201, D2:D1201, 2,G2:G1201,2, F2:F1201, ">=100", F2:F1201, "<=4000")”
Sheets(1).Range(“O7”).Value =“=AVERAGEIFS(F2:F1201, D2:D1201, 0,G2:G1201,1, F2:F1201, ">=100", F2:F1201, "<=4000")”
Sheets(1).Range("P7").Value = "=AVERAGEIFS(F2:F1201, D2:D1201, 0,G2:G1201,2, F2:F1201, ">=100", F2:F1201, "<=4000")”
End Sub
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
なぜ、こんなふうに書くかというと、VBEditorのコンパイルの設定の仕方によっては、たいへんに重くなることがあります。
だから、本来は、数式は、分解していれるようにしたほうがよいのです。ただ、常にこのような書き方は出来ないかもしれません。そういう場合は、数式を一旦、Debug.Print 数式
で出力してやって、その中身を確認するとよいです。
それと、うまく行ったものを元の数式と対比してサンプルとして残しておきます。
数式
=AVERAGEIFS(F2:F1201, D2:D1201, 1, G2:G1201, 1,F2:F1201, ">=100", F2:F1201, "<=4000")
マクロの数式(数式の中の" ->"" と増えています。)
"=AVERAGEIFS(F2:F1201, D2:D1201, 1, G2:G1201,1,F2:F1201, "">=100"", F2:F1201, ""<=4000"")"
数式の中で、空白部分が誤認識することがありますから、コードの余分な空白は注意してください。
コンパクト化した数式
'//
Sub TestLoop()
Dim a, b
Dim i As Long
a = Array(, 1, 2, 1, 2, 0, 0)
b = Array(, 1, 1, 2, 2, 1, 2)
With Worksheets(1)
For i = 0 To 5
If i = 0 Then
Cells(7, 10 + i).FormulaLocal = "=AVERAGEIFS(F2:F1201,F2:F1201, " & _
""">=100"",F2:F1201,""<=4000"")"
Else
Cells(7, 10 + i).FormulaLocal = _
"=AVERAGEIFS(F2:F1201,D2:D20," & a(i) & _
",G2:G20," & b(i) & ",F2:F1201,"">=100"",F2:F1201,""<=4000"")"
End If
Next
End With
End Sub
No.2
- 回答日時:
たとえば「"=AVERAGEIFS(F2:F1201, F2:F1201, " >= 100" F2:F1201,"<=4000")”」は「"=AVERAGEIFS(F2:F1201,F2:F1201,"">=100"",F2:F1201,""<=4000"")"」のように直してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
値が入っているときだけ計算結...
-
Excel 数値の前の「 ' 」を一括...
-
病院側から早く来てくださいと...
-
イタリアから帰国する際、肉製...
-
一番多く表示のある値(文字列...
-
腕を見たら黄色くなってる部分...
-
エクセルで空白セルを含む列の...
-
リンク先のファイルを開かなく...
-
検便を取ったのですが、棒から...
-
風俗店へ行く前のご飯
-
VLOOKUP関数を使用時、検索する...
-
勃起する時って痛いんですか? ...
-
精液の落とし方を教えてください
-
EXCELで条件付き書式で空白セル...
-
エクセルでθを求めたい。
-
excelでsin二乗のやり方を教え...
-
EXCELで式からグラフを描くには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
彼女のことが好きすぎて彼女の...
-
尿検査前日に自慰行為した時の...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
精液の落とし方を教えてください
-
【Excelで「正弦波」のグラフを...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
精子に血が・・・
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
イタリアから帰国する際、肉製...
-
excelでsin二乗のやり方を教え...
-
腕を見たら黄色くなってる部分...
-
病院側から早く来てくださいと...
-
ワードのページ番号をもっと下...
おすすめ情報