Solved

EXCEL Conditional Formatting: Define a row range in which to identify the highest value in a column

Posted on 2014-09-06
6
132 Views
Last Modified: 2014-09-08
I have an Excel spreadsheet consisting of groups of rows. Each row group is defined by the matching values in Column A. For example:

......................A...........................B
 1..........Group Name 1............Data1
 2..........Group Name 1............Data2
 3..........Group Name 1............Data3
 4..........Group Name 1............Data4
 5..........Group Name 2............Data5
 6..........Group Name 2............Data6
 7..........Group Name 2............Data7
 8..........Group Name 3............Data8
 9..........Group Name 3............Data9
 10........Group Name 4............Data10
 11........Group Name 4............Data11
 12........Group Name 4............Data12

I'd like to use Conditional Formatting to highlight the highest value in Column B within each row group, but I'm not able to determine a formula to identify the range of each row group.

How would this be done? Thanks for your help.

Dimarc67
Frederick, MD
0
Comment
Question by:Dimarc67
  • 3
  • 3
6 Comments
 
LVL 46

Expert Comment

by:Martin Liss
ID: 40307959
If you don't have a large number of groups (or perhaps even if you do) you could create Named Ranges in column B for each group and add "top or bottom" Data Validation for each one of them as I've done in the attached workbook.

The picture below shows the addition of the first group's Data Validation. It may be confusing but I gave the Named Ranges the name of the group even though the named range is in col B. After you enter the name of the named range in the data validation window it will be change to the actual cell range when you look at it again.
DVQ-28513050.xlsm
0
 
LVL 4

Author Comment

by:Dimarc67
ID: 40307983
Thanks, Martin.  I also considered your solution, but I neglected to mention that the spreadsheet is 4000 rows, and is a weekly generated report, so an automated solution is required.

Putting Conditional Formatting aside, can you determine a cell formula that is able to discern the member rows of each group, and then within the group determine the highest value in column B?
0
 
LVL 46

Accepted Solution

by:
Martin Liss earned 500 total points
ID: 40308032
OK then call this macro after the updating is done. You may have to delete the existing named ranges and data validation first. And I'm not a formula expert but I doubt you can do it via one data validation formula.

Sub SetUp()
Dim lngLastRow As Long
Dim lngRow As Long
Dim strGroup As String
Dim lngGroupStartRow As Long
Dim intGroup As Integer

    lngLastRow = Range("A65536").End(xlUp).Row
    lngGroupStartRow = 1
    strGroup = Range("A1").Value
    
    For lngRow = 2 To lngLastRow + 1
        If Range("A" & lngRow).Value <> strGroup Then
            Range("B" & lngGroupStartRow & ":B" & lngRow - 1).Select
            intGroup = intGroup + 1
            ActiveWorkbook.Names.Add Name:="Group" & intGroup, RefersToR1C1:="=Sheet1!R" & lngGroupStartRow & ":R" & lngRow - 1 & "C2"
            Selection.FormatConditions.AddTop10
            Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
            With Selection.FormatConditions(1)
                .TopBottom = xlTop10Top
                .Rank = 1
                .Percent = False
            End With
            With Selection.FormatConditions(1).Interior
                .PatternColorIndex = xlAutomatic
                .Color = 65535
                .TintAndShade = 0
            End With
            strGroup = Range("A" & lngRow).Value
            lngGroupStartRow = lngRow
        End If
    Next
End Sub

Open in new window

0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 4

Author Closing Comment

by:Dimarc67
ID: 40308038
Thanks, Martin.  A macro is something I really hadn't even considered yet, and probably the best solution.  Writing code for me was above and beyond.  :-)
0
 
LVL 46

Expert Comment

by:Martin Liss
ID: 40308041
You're welcome and I'm glad I was able to help.

In my profile you'll find links to some articles I've written that may interest you.
Marty - MVP 2009 to 2014
0
 
LVL 4

Author Comment

by:Dimarc67
ID: 40310786
Actually found the way to do this with an array formula that can be used in Conditional Formatting, or within a cell.  (Credit to CRondao on StackOverflow.com.)

=MAX(IF(A1=$A$1:$A$12,$B$1:$B$12))

At first, this seemed incorrect because it was returning the highest value in all of column B instead of within each group.  However, to enter an array formula, you have to press Ctrl-Shift-Enter after placing the formula in the cell (instead of just Enter).  Once that's done, the formula displays in the formula bar within braces ({ }) to indicate that it's an array formula.

Once it was entered into cell C1 as an array formula, I then copied it to all column C cells normally, and each row then correctly displayed the highest column B value within each name group.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Drop Down List with Unique/Distinct Values (Part II - ComboBox or ListBox and Data Validation List Bonus!) David Miller (dlmille) Intro This article focuses on delivering unique, sorted lists to list objects (e.g., ComboBox, ListBox) and Dat…
Approximate matching with VLOOKUP and MATCH seems to me to be a greatly under-used technique, and one which is vital for getting good performance out of large lookups. Until recently I would always have advised using an exact match for simplicity an…
The viewer will learn how to simulate a series of sales calls dependent on a single skill level and learn how to simulate a series of sales calls dependent on two skill levels. Simulating Independent Sales Calls: Enter .75 into cell C2 – “skill leve…
This Micro Tutorial will demonstrate how to create pivot charts out of a data set. I also added a drop-down menu which allows to choose from different categories in the data set and the chart will automatically update.

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now