Excel使用条件格式从字母数字中获取最大值



我从一系列具有字母数字值的行(例如A3Z3)中获得数据(例如:50D,25U,30D等)。我需要找到这些数字的最大值,并为最大值应用条件格式。

之前我尝试过下面的条件格式公式。但我不确定我现在如何与字母进行比较(我在这些数字中只有2个字母D或U)。
你能帮我如何用字母数字数字实现这个吗?

=AND(A3>0,A3=MAX($A3:$Z3))——>如果我只有数字,这是可行的。下面是我的vb代码。

myRng.FormatConditions.Add Type:=xlExpression, Formula1:="=AND(A3>0,A3=MAX($A3:$Z3))" 
With myRng.FormatConditions(3)
.Font.Bold = True
.Font.TintAndShade = 0
.Interior.Pattern = xlPatternRectangularGradient
.Interior.Gradient.RectangleLeft = 0.5
.Interior.Gradient.RectangleRight = 0.5
.Interior.Gradient.RectangleTop = 0.5
.Interior.Gradient.RectangleBottom = 0.5
.Interior.Gradient.ColorStops.Add(0).ThemeColor = xlThemeColorDark1
.Interior.Gradient.ColorStops.Add(0).TintAndShade = 0
.Interior.Gradient.ColorStops.Add(1).Color = 4123227 '15525371
.Interior.Gradient.ColorStops.Add(1).TintAndShade = 0
.StopIfTrue = False
.SetFirstPriority
End With

只要这两个字母,就相对容易了。您只需要去掉DU,并将结果字符串转换为数字:

=AND(VALUE(SUBSTITUTE(SUBSTITUTE(A$3,"D",""),"U",""))>0, VALUE(SUBSTITUTE(SUBSTITUTE(A$3,"D",""),"U",""))=MAX(IFERROR(VALUE(SUBSTITUTE(SUBSTITUTE($A$3:$Z$3,"D",""),"U","")),0)))

请注意,如果字符串不存在,SUBSTITUTE函数将不起作用。

要在VBA生成的条件格式中使用公式,您需要确保寻址是正确的,并且还需要转义包含的引号,因此:

Formula1:= "=AND(VALUE(SUBSTITUTE(SUBSTITUTE(A3,""D"",""""),""U"",""""))>0, VALUE(SUBSTITUTE(SUBSTITUTE(A3,""D"",""""),""U"",""""))=MAX(IFERROR(VALUE(SUBSTITUTE(SUBSTITUTE($A3:$Z3,""D"",""""),""U"","""")),0)))"

最新更新