我有一个财务数据,表明项目的健康状况,并根据差异填充颜色和字母以指示健康状况。例如,如果varinace小于5%,则其填充绿色字母“G”,> 5%但小于20%填充“Y”和> 20%=“R”。我已经使用if语句来实现这一点。但是我需要填充整个项目的颜色。
有5个项目,这些是要求:
因此,如果第一个项目是G,第二个项目是Y第三个项目是Y,4个项目是G,第五个项目是R我希望它能够为整体健康提供“R”。
我尝试过使用if语句,但我必须做的组合量太多了。
如何使用VBA excel创建这种“比率”要求?
谢谢
答案 0 :(得分:0)
您可以创建一个对Y,R和G进行计数的变量,然后根据您的规则设置一个简单的if ifif来设置一个等于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