Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


245 / 13644 ツリー ←次へ | 前へ→

【81331】sumifのエラー ms 20/6/5(金) 9:53 質問[未読]
【81336】Re:sumifのエラー BJ 20/6/5(金) 12:02 発言[未読]
【81337】Re:sumifのエラー BJ 20/6/5(金) 12:04 発言[未読]
【81338】Re:sumifのエラー BJ 20/6/5(金) 12:47 発言[未読]
【81339】Re:sumifのエラー ms 20/6/5(金) 13:01 質問[未読]
【81340】Re:sumifのエラー BJ 20/6/5(金) 13:14 発言[未読]
【81342】Re:sumifのエラー ms 20/6/7(日) 13:43 お礼[未読]

【81331】sumifのエラー
質問  ms  - 20/6/5(金) 9:53 -

引用なし
パスワード
   以下のマクロを用いて、標準偏差を求めようとしたのですが、
sumifの所で、「エラー404 オブジェクトが必要です」と出ます。

色々ネットで検索したのですが、どう修正すれば良いのか分からない為、
ここで質問させていただきます。
基本的な知識が欠如しているのは重々承知でございます。
どなたか知恵をお貸しください。

使用しているシートには
F列:割振番号(1〜30)
G列:計算したいデータ(1行目はラベル、データ数255〜280程度、たまに抜け有)
Q列:averageifで出した割振番号毎のデータの平均値


Sub 標準偏差

Dim a
Dim b
For a = 1 To 30
For b = 2 To 280
If Cells(b, 6) = a Then 'F列の割振番号がaの時
Cells(b, 8) = (Cells(b, 7) - Cells(a + 1, 17)) ^ 2 'G列の値を用いて、H列にデータの分散を計算する
End If
Next b
Next a

Dim f
Dim g
For g = 1 To 30
Set f = Worksheet.Function.SumIf(Range("F2:F280"), g, Range("H2:H280"))  '割振番号がgの時のデータの合計をfとする
Cells(g + 1, 18) = "= (""f""/ Cells(g + 1, 13)) ^ 0.5" '出力先に割振番号gの時の標準偏差を表す
Next g

End Sub

【81336】Re:sumifのエラー
発言  BJ  - 20/6/5(金) 12:02 -

引用なし
パスワード
   ▼ms さん:
>Set f = Worksheet.Function.SumIf(Range("F2:F280"), g, Range("H2:H280"))
     ^^^^^^^^^^^^^^^^^^
       ↑
この部分をメモ帳でもエクセルのセルにでも張り付けて文字を拡大してみてください。

【81337】Re:sumifのエラー
発言  BJ  - 20/6/5(金) 12:04 -

引用なし
パスワード
   ずれた

>Set f = Worksheet.Function.SumIf(Range("F2:F280"), g, Range("H2:H280"))
     ^^^^^^^^^^^^^^^^^^
       ↑
この部分をメモ帳でもエクセルのセルにでも張り付けて文字を拡大してみてください。

【81338】Re:sumifのエラー
発言  BJ  - 20/6/5(金) 12:47 -

引用なし
パスワード
   等幅にすると拡大しなくても見えますね。

【81339】Re:sumifのエラー
質問  ms  - 20/6/5(金) 13:01 -

引用なし
パスワード
   ▼BJ さん:
>等幅にすると拡大しなくても見えますね。

これは恥ずかしいミスをしてしまいました。
ご指摘ありがとうございます。

早速、指摘された箇所のWorksheet.functionをworksheetfunctionに直して試してみましたが、.Sumifのところが指摘され、「コンパイルエラー オブジェクトが必要です」という表示が出てきました…。

これを解決するにはどうしたら良いのでしょうか?

【81340】Re:sumifのエラー
発言  BJ  - 20/6/5(金) 13:14 -

引用なし
パスワード
   ああ、
Sumif 関数はセルを返すわけではないので、Set が出来ない。

【81342】Re:sumifのエラー
お礼  ms  - 20/6/7(日) 13:43 -

引用なし
パスワード
   ▼BJ さん:
>ああ、
>Sumif 関数はセルを返すわけではないので、Set が出来ない。

BJさん、返信ありがとうございました。
結果、setを使わないで一旦計算結果をシートに出力することにしました。

最後0.5乗するとオーバーフローを起こしてしまっているのですが、
それは改めて質問に挙げることにします。

245 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free