提取案例

案例一

案例一说明:

原始数据从系统导出,其中的B列是文本数字,无法直接求和;

要求根据这种数据源统计总销售额。

基于这种数据源,使用SUM直接求和结果为0,如下图所示。

导致结果为0的原因是SUM函数计算时忽略文本。

在公式编辑状态,选中引用区域B2:B6按F9查看内存计算结果,可见{"10";"20";"30";"40";"50"}全部是文本数字,如下图所示。

动图演示过程如下。

这种情况下,如果每次你都要先把文本转换为数值,再使用公式计算,这就意味着每次导出数据,都要重复进行格式转换的过程。

最好的办法是,基于这种数据源,直接写公式进行计算,动图演示如下。

这里用到的是个很精简的数组公式,按Ctrl+Shift+Enter输入

=SUM(--B2:B6)

这个公式的灵魂在于借助减负运算将文本转为数值再传递给SUM计算。

如下动图演示,选中--B2:B6按F9可见转为{10;20;30;40;50}再用SUM求和,得到了正确结果。

所以这个公式虽然非常精简,但却具有“灵魂”,能有效解决问题,这样的公式就是很好的公式。

数组方面的知识精讲,请从公众号“LiRuiExcel”底部菜单点击“知识店铺”进九期特训营的函数中级班系统学习。

这种有灵魂的精简公式还有很多,我们继续。

案例二

案例二说明:

姓名和手机号码混放在一个单元格中,

姓名长度不固定(从2字至6字不等);

要求从混杂列中提取出姓名。

案例场景,如下图所示。

由于姓名的长度并不固定,所以截取多少位字符是关键问题;

有灵魂的公式可以有效解决关键问题。

公式如下:

=LEFT(A2,LENB(A2)-LEN(A2))

借助LENB函数和LEN函数,分别按照字节和字符数统计长度,一个文本的字节数是2,字符数是1,借助这个规律得到姓名长度。

这种借助函数功能特性,有效解决核心问题的所在,就是公式的灵魂。

这种经典案例,下面还有,我们继续。

案例三

案例三说明:

文本和数值混杂在1个单元格中,

数值所在的位置和长度均不固定;

要求从中提取数值。

这次的问题难度升级了,要提取的数值,不但位置不固定,而且数值长度也不固定。

案例场景,如下图所示。

但是只要你能给公式赋予灵魂,有效解决关键问题,就能轻松破解。

公式如下:

=-LOOKUP(,-MIDB(A2,SEARCHB("?",A2),ROW($1:$10)-1))

解决效果,如下图所示。

公式中用到的函数都很常见,关键在于MIDB和SEARCHB按字节定位数据位置以及SEARCHB函数支持通配符查找的特性。

我们看到,只要你善于借助函数特性和组合,就能给普通的公式注入灵魂。

这几个经典案例中的公式,方便大家在工作中直接套用。

(0)

相关推荐