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