有时候,我们需要从单元格数据中提取出满足条件的值。例如,下图1所示的单元格B3中的数据“NO13859724621”,我们想要得到相邻两个数字组成的最大的两位数。
图1
很显然,这个两位数应该是“97”。然而,怎么样使用公式获得这个值呢?
这就涉及到需要找到一种方法,从数据的开头开始,两个两个地取值,从而遍历整个数据,然后比较这些值,获取其中最大的值。
很自然地,我们能够想到MID函数,指定开始位置和字符数,从而返回指定字符数的值。这样,我们使用下面的数组公式:
=MAX(IFERROR(VALUE(MID(B3,ROW(A1:A100),2)),""))
结果如下图2所示。
图2
公式中:
MID(B3,ROW(A1:A100),2)
从单元格B3中的第一个字符开始,按顺序依次获得两个字符组成的数值,如下图3所示。
图3
传递到VALUE函数中,将代表数值的文本字符串转换为数值,如下图4所示。
图4
IFERROR函数将错误值#VALUE!转换成空,如下图5所示。
图5
传递给MAX函数,获得最大值:
97
小结
1.利用MID函数,可以遍历单元格内部的数据。
2.上述公式中,使用了ROW(A1:A100),假设单元格数据长度为100,其实可以使用下面的数组公式:
=MAX(IFERROR(VALUE(MID(B3,ROW(INDIRECT("1:"& LEN(B3))),2)),""))
更精确地获取中间数组。