我想在G列中使用没有5%异常值的数据集对范围进行sumproduct。第一步是我计算整列中的数字量,排序,乘以0.05,然后清除顶部和底部5%。下一步是设置两个乘以的范围(Colmuns C& G)。
我知道sumproduct是一个数组公式。你能救我吗?
子测试
Sheets.Add.Name = "Data"
Sheets("Worksheet").Select
Dim c As Integer
Dim i As Integer
Dim w As Integer
Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim r As Range
Dim s As Range
Dim t As String
c = Worksheets("Worksheet").Range("G:G").Cells.SpecialCells(xlCellTypeConstants).Count
i = Round(0.05 * c, 0)
w = i + 1
x = i + 2
y = c - i + 2
z = c - i + 1
Set r = Worksheets("Worksheet").Range(Cells(x, 3), Cells(z, 3))
Set s = Worksheets("Worksheet").Range(Cells(x, 7), Cells(z, 7))
范围R和s不起作用
我希望看到的是 范围(" A3")。值=" = Sumproduct(范围(r,s)/ SUM(r)"。 最后一步是获得加权平均值。
我认为一个简单的VBA代码,但我很难找到。 非常感谢!
答案 0 :(得分:0)
您需要正确评估所有Range
和Cells
来电:
With Worksheets("Worksheet")
Set r = .Range(.Cells(x, 3), .Cells(z, 3))
Set s = .Range(.Cells(x, 7), .Cells(z, 7))
End With
Range("A3").Value = Application.Sumproduct(r, s)/Application.SUM(r)