2

プロジェクトの健全性を示す財務データがあり、差異に応じて、健全性を示す色と文字が入力されます。たとえば、varinaceが5%未満の場合、緑色に文字「G」が表示され、> 5%、ただし20%未満の場合、「Y」、> 20%="R"が表示されます。それを取得するためにifステートメントを使用しました。ただし、プロジェクト全体の色を入力する必要があります。

5つのプロジェクトがあり、これらは要件です。

  1. 5つのプロジェクトのいずれかに「R」がある場合、全体的なヘルスは「R」です。
  2. 1/5プロジェクトが「Y」で4/5=「G」の場合、全体的なヘルスは「G」です。
  3. 2/5 ="Y"および3/5"G"の場合、全体的なヘルスは"Y"です。
  4. 3/5 ="Y"および2/5"G"の場合、全体的なヘルスは"Y"です。
  5. 4/5="Y"および1/5"G"の場合"Y"
  6. 5/5 = "Y"の場合、 "Y"
  7. 5/5 = "G"の場合、 "G"

したがって、1番目のプロジェクトがG、2番目のプロジェクトがYの場合、3番目のプロジェクトはY、4つのプロジェクトはG、5番目のプロジェクトはRIであり、全体的な健康のために「R」を入力する必要があります。

ifステートメントを使用してみましたが、組み合わせの量が多すぎます。

VBA Excelを使用してこの種の「比率」要件を作成するにはどうすればよいですか?

ありがとうございました

4

1 に答える 1

0

各Y、R、およびGをカウントする変数を作成し、ルールに基づいてセルをr、y、またはgに等しく設定するためにelseifの場合は簡単に実行できます。

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
于 2012-10-22T16:09:24.813 に答える