Excel公式练习86:找出字符串中最大的数字

excelperfect

本次的练习是:从一个由文本和数字组成的文本字符串中,提取出连续最长的数字。如下图1所示,在单元格B2中包含一个由文本和数字组成的字符串,很显然,其最长数字是9367。

图1

如何使用公式获得结果?

解决方案

在单元格C2中输入数组公式:

=MAX(IFERROR(MID(B2,ROW($A$1:$A$50),COLUMN($A$1:$Z$1))*1,''))

结果如下图2所示。

图2

公式解析

在公式中,使用了MID函数,通常,我们使用MID函数如下:

=MID(B2,5,2)

返回单元格B2中从第5个字符开始的2个字符,在图1的示例中,返回“2E”。

公式中共3个部分:单元格引用,起始位置,要提取的字符数。

然而,现在要从单元格B2内的每个起始位置提取多个值!

在上面解决方案的公式中:

ROW($A$1:$A$50)

创建了50个起始位置。

COLUMN($A$1:$Z$1)

对于每个起始位置,依次提取1个、2个、……最多到26个字符。

MID(B2,ROW($A$1:$A$50),COLUMN($A$1:$Z$1))

的结果如下图3所示。

图3

由于我们仅需要纯数字,例如6、62、622,等等。于是,对MID函数获得的数组乘以1,这样,数字文本转换成数字,而其它则为错误,如下图4所示。

图4

IFERROR函数将所有错误值转换为空,这样只剩下数字,如下图5所示。

图5

MAX函数从这些数字中提取最大值,得到结果:

9367

小结

当ROW函数和COLUMN函数一起使用时,会创建一个二维数组。

(0)

相关推荐