Lets say you are the head of purchasing department at Big Corp Co.
You are obviously very busy. Every day starting with a large cup of coffee and ends with a big smile, as you save your company thousands of $s by negotiating best deals, finding best providers and being awesome.
Today, let me share a small Excel tip with you that will make you even more awesome.
Finding a provider with lowest value:
Lets say you are looking at a table like below and want to find-out lowest priced providers for each service.

To find providers with lowest value:
- Find the least amount for each service. Assuming the services are in the range C5:G5, use =MIN(C5:G5) to get this.
- Give a name to list of providers. I call mine as providers
- Using INDEX, MATCH formulas find the provider name with lowest amount. Like this:
=INDEX(providers, MATCH(minimum_value, C5:G5, 0)) - Bingo. You have the answer.
Bonus tip #1: Highlighting lowest values.
If you just want to highlight the lowest values, use conditional formatting.
- Select first row of numbers.
- Go to Home > Conditional Formatting > Top / Bottom rules > Bottom 10 items
- Set to Bottom 1 and specify formatting as you want.
- Using format painter, copy the conditional formatting, one row at a time.
- Done!

Bonus tip #2: Handling Ties
Often 2 or more providers will tie for the bottom spot. What then?
One way to handle the ties is to show the word ties when 2 or more names have lowest value. To do this, use this formula instead.
=IF(COUNTIF(C5:G5, minimum_value)>1,"Ties", INDEX(providers,MATCH(minimum_value,C5:G5,0)))
A formula challenge for you…
Now that you know how to find the lowest value, here is a challenge for you.
- How do you write a formula to find which provider has maximum lowest values. In this example, the name we are looking for is TATA as they have 3 lowest values.
Want to find more… look here:
If you want to find more Excel formula tips and techniques, look no further. Start your journey with this and see how deep your formulas can nest.

















6 Responses to “Make VBA String Comparisons Case In-sensitive [Quick Tip]”
Another way to test if Target.Value equal a string constant without regard to letter casing is to use the StrCmp function...
If StrComp("yes", Target.Value, vbTextCompare) = 0 Then
' Do something
End If
That's a cool way to compare. i just converted my values to strings and used the above code to compare. worked nicely
Thanks!
In case that option just needs to be used for a single comparison, you could use
If InStr(1, "yes", Target.Value, vbTextCompare) Then
'do something
End If
as well.
Nice tip, thanks! I never even thought to think there might be an easier way.
Regarding Chronology of VB in general, the Option Compare pragma appears at the very beginning of VB, way before classes and objects arrive (with VB6 - around 2000).
Today StrComp() and InStr() function offers a more local way to compare, fully object, thus more consistent with object programming (even if VB is still interpreted).
My only question here is : "what if you want to binary compare locally with re-entering functions or concurrency (with events) ?". This will lead to a real nightmare and probably a big nasty mess to debug.
By the way, congrats for you Millions/month visits 🙂
This is nice article.
I used these examples to help my understanding. Even Instr is similar to Find but it can be case sensitive and also case insensitive.
Hope the examples below help.
Public Sub CaseSensitive2()
If InStr(1, "Look in this string", "look", vbBinaryCompare) = 0 Then
MsgBox "woops, no match"
Else
MsgBox "at least one match"
End If
End Sub
Public Sub CaseSensitive()
If InStr("Look in this string", "look") = 0 Then
MsgBox "woops, no match"
Else
MsgBox "at least one match"
End If
End Sub
Public Sub NotCaseSensitive()
'doing alot of case insensitive searching and whatnot, you can put Option Compare Text
If InStr(1, "Look in this string", "look", vbTextCompare) = 0 Then
MsgBox "woops, no match"
Else
MsgBox "at least one match"
End If
End Sub