很多时候,数据输入并不规范,比如下表中的员工姓名和业绩挤在一个单元格里,要求统计业绩最大值。
很多时候,数据输入并不规范,比如下表中的员工姓名和业绩挤在一个单元格里,要求统计业绩最大值。
这种不规范的数据并不是不能统计,只是给统计带来了麻烦。
公式实现
在C2单元格输入公式:
{=MAX((SUBSTITUTE(B2,ROW($1:$100),)<>B2)*ROW($1:$100))},(TRL+SHIFT+RNTER结束)。
公式分解
{=ROW($1:$100)}:
返回值是1-100组成的数组{1;2;3;4;5;6;7……98;99;100}
{=SUBSTITUTE(B2,ROW($1:$100),)}:
将B2内的文本依次删除1~100数值以后,返回100组文本组成的数组,如下:
关于SUBSTITUTE函数的用法参考昨天的文章:Excel 数据输入不规范,部分带数量单位,怎么计算平均值?。
{=SUBSTITUTE(B2,ROW($1:$100),)<>B2}:
返回值是一组TURE与FALSE组成的100个逻辑值数组,将删除了数字后的文本与B2单元格相对比,如果不等于B2返回TURE,如果等于B2返回FALSE。
{=(SUBSTITUTE(B2,ROW($1:$100),)<>B2)*ROW($1:$100)}:
将得到的一级逻辑值与1~100数值相乘,TURE相当于1,FALSE相当于0,相乘以后得到的结果是一个数组,该数组由100个数值组成,分别是B2单元格中包含的所有数字和0。
最后用MAX函数对上述数组内的数值求最大值。