如何在 Excel 中的字母数字数据数组中找到最大值和最小值?

How to find max and min in an alphanumeric data array in Excel?

我有以下几种数据

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'和'对应的最小值和最大值我PHY ml'

请帮忙。

我正在查看的解决方案

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

编辑: 我已经尝试了几个在互联网上可用的选项,使用 VLOOKUP、RIGHT、INDEX ……但是 none 给了我预期的答案。我更喜欢不使用辅助列的解决方案。如果需要使用辅助列,请提出无需修改我的列的解决方案 A:D.

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

也欢迎使用 macro/script 的解决方案。

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

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

This 是 return 字符串中数字的一种方法。

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

This 告诉您如何将字符串转换为数字。

下面是您可以将它们组合在一起以找到您的 'max' 值的一种方法:

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