excel - 我需要使用 VBA 将单元格拉入数据结构以根据 2 个单独的值使用
问题描述
我在 Excel 的电子表格中有 4 列。3 列是文本,1 列是整数。我需要根据文本列中的值从整数列中提取所有值,以便我可以对它们进行大量计算。
例如,我需要“Count”的所有值,其中 Type 列中的值为“Apple”,Quality 列中的值为“Fresh”,Owner 中的值为“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
推荐阅读
- php - WooCommerce 显示随机产品属性
- c# - 如何在我的 T4 模板中嵌入图像?
- linux - 没有密码的签名 rpm
- javascript - 将字体真棒图标动态添加到 SVG 文本元素
- raspberry-pi - Proteus 中的树莓派
- typescript - Typescript 或 TSlint 可以对隐式类型转换发出警告吗
- angular - 我已经为我的后端 ASP.NET Core Web api 为本地主机创建了 SSL/TLS 证书,我可以与我的前端 Angular 应用程序共享它吗?
- sharepoint-online - SharePoint Online(现代视图)自定义(列表表单 - NewForm.aspx 等)
- docker - 如何查看在 docker 容器中创建的文件?
- r - RShiny - 有时不显示结果