如何在Excel中的字母数字数据数组中查找max和min?

时间:2017-09-24 08:48:02

标签: excel max min alphanumeric

我有以下类型的数据

A1          B1              C1              D1
II Cm2 447  I Phy Hn 60     II Cm2 457      I Phy Hn 70
II Cm2 448  I Phy Hn 61     II Cm2 458      I Phy Hn 71
II Cm2 449  I Phy Hn 62     II Cm2 459      I Phy Hn 72
II Cm2 450  I Phy Hn 63     II Cm2 460      I Phy Hn 73
II Cm2 451  I Phy Hn 64     II Cm2 461      I Phy Hn 74
II Cm2 452  I Phy Hn 65     II Cm2 462      I Phy Hn 75
II Cm2 453  I Phy Hn 66     II Cm2 463      I PHY ml 76
II Cm2 454  I Phy Hn 67     II Cm2 464      I PHY ml 77
II Cm2 455  I Phy Hn 68     II Cm2 465      I PHY ml 78
II Cm2 456  I Phy Hn 69     II Cm2 466      I PHY ml 79

需要找到对应于“ II Cm2 ”,“ I Phy Hn ”和“ I PHY ml ”的最小值和最大值

请帮助。

我正在寻找的解决方案

Grid           Min      Max
II Cm2         447      466
I Phy Hn        60       75
I Phy ml        76       79

编辑: 我已经尝试了几种可用的互联网选项,使用VLOOKUP,RIGHT,INDEX,......但是没有一个能给我预期的答案。我更喜欢不使用辅助列的解决方案。如果需要使用辅助列,请建议一个解决方案,而无需修改我的cols A:D。

对于Min,我有一个解决方案MIN(VLOOKUP(“II Cm2”,$ AE $ 4:$ AF $ 171,2,0),但它需要一个来自单列的提取数字的辅助列我的原始数据。

使用宏/脚本的解决方案也欢迎。

2 个答案:

答案 0 :(得分:3)

如果您只需要从范围中提取最小/最大数字,请在单元格G2中使用此公式,然后将其拖到您在范围F2:F5中输入的值的底部。 =MIN(IF(ISNUMBER(SUBSTITUTE($A$2:$D$500,$F2,"")+0),SUBSTITUTE($A$2:$D$500,$F2,"")+0))您必须使用CTRL+SHIFT+ENTER组合输入它,因为它是数组公式。对于Max,只需在公式中替换Min。

enter image description here

答案 1 :(得分:0)

您可以阅读有关如何创建将一系列单元格作为参数here的公式的信息。

This是一种只返回字符串数字的方法。

这是一个function,在另一个字符串中向后查找一个字符串。

This告诉您将字符串更改为数字。

以下是一种可以将它们组合在一起以查找最大值的方法。值:

Function MaxValueOfRange(rng As Range) As Integer
    Dim c As Range, strIn As String, intRet As Integer
    For Each c In rng 'loop through each cell in range
        strIn = Right(c, Len(c) - InStrRev(c, " ")) 'get everything after the last 'space'
    Next
    If Val(strRet) > intRet Then intRet = Val(strRet) 'convert it to number and keep the biggest one
    MaxValueOfRange = intRet 'return the biggest number
End Function