今天作者所讲述的内容来自于某制造业工厂车间的数据统计场景。
如下图数据表显示,在不同安装位置,设置了不同的钢材支数,但钢材又包含了两种规格,分别是100和150,因此我们需要在钢材支数列表中使用逗号分隔两组数字,然后在钢材总长列中进行公式求和,计算不同规格支数相乘的钢材总长度!
此外,若单元格中没有逗号进行数字分隔,则直接返回乘以100的结果值!
其计算结果在上图中已经显示出来了,但如何使用公式来计算,是我们接下来要进行解答的。
由于单元格两组数字是由一个分隔符进行分隔,因此我们可以通过一个文本函数来查找该分隔符的位置,然后提取其左侧及右侧的数字,并进行规格支数的相乘计算。
那回顾作者在专栏《excel100个常见函数快速入门》的函数介绍,有几个函数是非常适合这个场景的应用。
即FIND函数进行查找指定字符位置,LEFT函数从左侧提取指定字符长度的内容,而right函数从右侧来提取指定长度的字符串。
因此,我们可以输入一个包含了三个文本函数的组合公式:
=LEFT(B2,find(",",B2)-1)*100 RIGHT(B2,LEN(B2)-FIND(",",B2))*150
关于这三个函数的基础语法和用法,作者就不再赘述,重点是几个函数的组合应用,需要去了解它们在公式中发挥的作用和含义。
到这一步,我们可以计算出含有分隔符的单元格的两组数字相乘之后的总和,但还有一个特定要求,需要去解决。
即当单元格内容只包含一组数字时,则要直接乘以100,然后返回相乘的结果值。
因此作者给这个公式在组合了一个if函数,来返回两个结果值,其公式为:
=IF(ISNUMBER(B2),B2*100,LEFT(B2,FIND(",",B2)-1)*100 RIGHT(B2,LEN(B2)-FIND(",",B2))*150)
那这个公式的要点在于if函数判断条件的设置,在何种条件下,会返回if函数的第2参数或第3参数。
在这里作者使用了isnumber函数,它是一个逻辑函数,之前我们在专栏中也进行了学习,其含义是当参数值为数值时,则返回结果1,否则返回结果为0.
刚好当单元格不包含分隔符逗号时,它实际就是一个可直接运算的数值,套入isnumber函数中,结果等于1。
而if函数第1参数的判断条件也会得到两个值,即1或0,当等于1时则返回第2参数,当等于0时则返回第3参数。
因此将isnumber函数作为if函数的第1参数判断条件,是非常重要的一步,它提供了两个对应的结果,来匹配if函数的两个逻辑值,而返回对应的结果参数。
最后我们双击鼠标,快速填充输入的完整公式,可见其结果是完全正确的!
最后总结一下,今天的内容主要是if和isnumber两个逻辑函数的应用,及find、left和righ三个文本函数的组合使用。
我们需要理解每个函数的基础含义和用法,还需要了解它们在一个组合公式中起到的作用和含义是什么?!