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で質問しましょう!
似たような質問が見つかりました
- 数学 「FFTの基本は、DFTはサンプル数Nが偶数なら 2つのDFTに分解できるということ。 分解するとD 3 2022/03/31 21:01
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- その他(学校・勉強) 中3の理科の問題です。 F1は左向き、大きさ5N, F2は右向き、大きさ2N, F1とF2の合力は左 1 2023/04/16 15:49
- フィナンシャルプランナー(FP) 本日の日付が(F1)出たら、本日の勤務が(F2)同時に出るようにしたいのです。 1 2022/09/12 11:53
- Excel(エクセル) 【Excel】複数列ごとに取得するセルを変更したい 2 2023/03/23 21:04
- Visual Basic(VBA) VBAで列を削除 3 2023/02/01 11:00
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- 物理学 歯車の力の関係を教えてください。添付した条件で力fはどうやって求めますか? 4 2022/10/02 03:06
- ノートパソコン パソコンでスクリーンショット、音量調整、明るさ調整ができなくなりました。 Windows10です。2 1 2022/11/29 22:06
- Mac OS iMacで有線キーボードを買ったのですが、ファンクションキーが動作しません。もし改善できるなら教えて 1 2022/08/20 17:35
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
至急!尿検査前日にオナニーし...
-
検便についてです。 便は取れた...
-
腕を見たら黄色くなってる部分...
-
Excelで""で囲む方法
-
EXCELで条件付き書式で空白セル...
-
ある範囲のセルから任意の値を...
-
2つの数値のうち、数値が小さい...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
甲状腺が腫れているが血液検査...
-
これって喉仏ですか? 私は女性...
-
EXCELで式からグラフを描くには?
-
尿検査前日に自慰行為した時の...
-
cos2Xをマクローリン展開すると?
-
小数点以下を繰り上げたものを...
-
excelでsin二乗のやり方を教え...
-
エクセルでエラーが出て困って...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
精子が黄色?
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
口の中に黒い血の塊
-
これって喉仏ですか? 私は女性...
-
2つの数値のうち、数値が小さい...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
excelでsin二乗のやり方を教え...
-
エクセル指定した範囲からラン...
おすすめ情報