For better understanding the IF statement, here I would like to share an example.
The Problem?
Assume that, You have a sample Bangladesh Mobile Market Share Report of January 2028 like below (I would add here, these information are fake for security purpose).
Now you need to calculate the market share Percentage (%) both in volume and value and rank them based on Percentage (%). Note that, the Percentage (%) should examine with certain ranges. These are: if above 30%, then "A+", if above 25%, then "A", if above 20%, then "B+", if above 15%, then "B", if above 10%, "C+", if above 5%, then "C" if less than 5%, then "D" and Background color will also changed based on Grade achievement.
You can easily do it in Simple Excel. But here I would like to do it in Excel VBA.
The Solution:
First of all make a checklist about what we have to do:
1. Table designing
2. Market Share calculation
3. Grading the market share % and change Background Color
1. Table Designing:
I'v designed the table as below:
2. Market Share Calculation:
To calculate the Market Share use the below codes for Vol Share % and Val Share %:
3. Grading the market share % and change Background Color:
To calculate the Grade, you need to use IF statement. And under each IF statement change the background color like below final code:
The Result:
After entering the above final code into the Module, press F5 or Click on Play to run it. The result will display as below:
The Problem?
Assume that, You have a sample Bangladesh Mobile Market Share Report of January 2028 like below (I would add here, these information are fake for security purpose).
Image 1: Sample data
Now you need to calculate the market share Percentage (%) both in volume and value and rank them based on Percentage (%). Note that, the Percentage (%) should examine with certain ranges. These are: if above 30%, then "A+", if above 25%, then "A", if above 20%, then "B+", if above 15%, then "B", if above 10%, "C+", if above 5%, then "C" if less than 5%, then "D" and Background color will also changed based on Grade achievement.
You can easily do it in Simple Excel. But here I would like to do it in Excel VBA.
The Solution:
First of all make a checklist about what we have to do:
1. Table designing
2. Market Share calculation
3. Grading the market share % and change Background Color
1. Table Designing:
I'v designed the table as below:
Image 1: Table design
2. Market Share Calculation:
To calculate the Market Share use the below codes for Vol Share % and Val Share %:
Option Explicit Sub mobile_analyze() Dim x As Long Dim y As Double Dim z As Integer For z = 7 To 15 'Volume share % calculation y = Cells(z, 3) / Cells(15, 3) Cells(z, 4).Value = y Cells(z, 4).NumberFormat = "#,##0.00%" 'Value share % calculation y = Cells(z, 6) / Cells(15, 6) Cells(z, 7).Value = y Cells(z, 7).NumberFormat = "#,##0.00%" Next z End Sub
3. Grading the market share % and change Background Color:
To calculate the Grade, you need to use IF statement. And under each IF statement change the background color like below final code:
Option Explicit Sub mobile_analyze() Dim x As Long Dim y As Double Dim z As Integer For z = 7 To 15 'Volume share % calculation y = Cells(z, 3) / Cells(15, 3) Cells(z, 4).Value = y Cells(z, 4).NumberFormat = "#,##0.00%" 'Value share % calculation y = Cells(z, 6) / Cells(15, 6) Cells(z, 7).Value = y Cells(z, 7).NumberFormat = "#,##0.00%" 'Volume Grade Calculation If Cells(z, 4) = 1 Then Cells(z, 5).Value = "" ElseIf Cells(z, 4) >= 0.3 Then Cells(z, 5).Value = "A+" Cells(z, 5).Interior.Color = RGB(230, 101, 234) ElseIf Cells(z, 4) >= 0.25 Then Cells(z, 5).Value = "A" Cells(z, 5).Interior.Color = RGB(230, 141, 234) ElseIf Cells(z, 4) >= 0.2 Then Cells(z, 5).Value = "B+" Cells(z, 5).Interior.Color = RGB(230, 157, 234) ElseIf Cells(z, 4) >= 0.15 Then Cells(z, 5).Value = "B" Cells(z, 5).Interior.Color = RGB(230, 175, 234) ElseIf Cells(z, 4) >= 0.1 Then Cells(z, 5).Value = "C+" Cells(z, 5).Interior.Color = RGB(230, 199, 234) ElseIf Cells(z, 4) < 0.1 Then Cells(z, 5).Value = "D" Cells(z, 5).Interior.Color = RGB(230, 218, 234) End If 'Value Grade Calculation If Cells(z, 7) = 1 Then Cells(z, 8).Value = "" ElseIf Cells(z, 7) >= 0.3 Then Cells(z, 8).Value = "A+" Cells(z, 8).Interior.Color = RGB(11, 232, 250) ElseIf Cells(z, 7) >= 0.25 Then Cells(z, 8).Value = "A" Cells(z, 8).Interior.Color = RGB(71, 232, 250) ElseIf Cells(z, 7) >= 0.2 Then Cells(z, 8).Value = "B+" Cells(z, 8).Interior.Color = RGB(177, 232, 250) ElseIf Cells(z, 7) >= 0.15 Then Cells(z, 8).Value = "B" Cells(z, 8).Interior.Color = RGB(193, 232, 250) ElseIf Cells(z, 7) >= 0.1 Then Cells(z, 8).Value = "C+" Cells(z, 8).Interior.Color = RGB(217, 232, 250) ElseIf Cells(z, 7) < 0.1 Then Cells(z, 8).Value = "D" Cells(z, 8).Interior.Color = RGB(236, 232, 250) End If Next z End Sub
The Result:
After entering the above final code into the Module, press F5 or Click on Play to run it. The result will display as below:
Image 3: Result
|||| Please SUBSCRIBE our YouTube Channel ||||
https://www.youtube.com/channel/UCIWaA5KCwZzBGwtmGIOFjQw
|||| Please SUBSCRIBE our YouTube Channel ||||
https://www.youtube.com/channel/UCIWaA5KCwZzBGwtmGIOFjQw