我的 Excel 电子表格中有四列。三列是文本,一列是整数。
我需要根据文本列中的值从整数列中提取所有值以对它们运行计算。
例如,我需要“Count”的所有值,其中“类型”列中的值为“Apple”,“质量”列中的值为“Fresh”,“所有者”中的值为“Jones”。
然后我可以计算出琼斯每个月的平均、最多和最少的新鲜苹果数量。
我在 VBA 中没有找到averageifs、maxifs 和 minifs 函数,否则我会使用它们。
每次运行的行数会有所不同,但我计算了最后一行。
您可能会发现
AverageIfs
等利用Application.WorksheetFunction.AverageIfs
。
因此,你的代码最终可能会是这样的:
Dim ws as worksheet
set ws = ThisWorkbook.Worksheets("Sheet1")
Dim avgRange as Range
dim FirstRow as integer
dim LastRow as Long
with ws
Set avgRange = Cells((FirstRow, Count), (LastRow, Count))
Set criteriaRange = Cells((FirstRow, Owner), (LastRow, Owner))
Criteria1 = "John"
Criteria2 = "Fresh"
.Range("A5").Application.WorksheetFunction.AverageIfs(avgRange, criteriaRange, Criteria1, Criteria2)
end With