我有一个财务数据,表明项目的健康状况,并根据差异填充颜色和字母来指示健康状况。例如,如果方差小于 5%,则用字母“G”填充绿色,大于 5% 但小于 20% 则填充“Y”,大于 20% =“R”。我已经使用 if 语句来实现这一点。但是我需要填充整个项目的颜色。
有 5 个项目,要求如下:
- 如果 5 个项目中的任何一个具有“R”,则整体健康状况为“R”
- 如果 1/5 项目为“Y”且 4/5 =“G”,则整体健康状况为“G”
- 如果 2/5 =“Y”且 3/5 =“G”,则整体健康状况为“Y”
- 如果 3/5 =“Y”且 2/5 =“G”,则整体健康状况为“Y”
- 如果 4/5 =“Y”和 1/5“G”则“Y”
- 如果 5/5 =“Y”则“Y”
- 如果 5/5 =“G”则“G”
因此,如果第一个项目是 G,第二个项目是 Y,第三个项目是 Y,第四个项目是 G,第五个项目是 R,我希望它填充“R”以获得整体健康状况。
我尝试过使用 if 语句,但我要做的组合量太多了。
我如何使用 VBA excel 创建这种“比率”要求?
谢谢
您可以创建一个变量来计算每个 Y、R 和 G,然后执行简单的 if elseif 以根据您的规则将单元格设置为等于 r、y 或 g:
Option Explicit
Sub getcounts()
Dim g As Long
Dim r As Long
Dim y As Long
Dim ovrallhealth As Range
Dim variancerange As Range
Set variancerange = Sheets(1).Range("A1:A5")
Set ovrallhealth = Sheets(1).Range("B1")
y = Application.WorksheetFunction.CountIf(variancerange, "y")
g = Application.WorksheetFunction.CountIf(variancerange, "g")
r = Application.WorksheetFunction.CountIf(variancerange, "r")
If r > 0 Then
ovrallhealth = "R"
ElseIf y = 1 And g = 4 Then
ovrallhealth = "G"
ElseIf y = 2 And g = 3 Then
ovrallhealth = "Y"
ElseIf y = 3 And g = 2 Then
ovrallhealth = "Y"
ElseIf y = 4 And g = 1 Then
ovrallhealth = "Y"
ElseIf y = 5 Then
ovrallhealth = "Y"
ElseIf g = 5 Then
ovrallhealth = "G"
End If
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)