Excel公式嵌套太难?教你一招,用更简单的方法解决问题!

函数是 Excel 的精髓,也是 Excel 最基础的、最需要学习掌握的知识。
可以说用好它,就能解决你工作中 90%的问题。
绝大多数小伙伴们对于一些简单的函数应用比较熟练。比如 SUM 求和,COUNT 计数等等。
但是,一旦看到嵌套的函数,立马懵圈。
那些复杂的数组公式,犹如天书一般。这不,下面这个问题,看起来容易,做起来还得下一番功夫。
如下图:是一个产品库存的统计表,

要求是:统计出每一种产品是【断码】还是【齐码】。
具体的统计规则是:
只要码数 XS 至 XXL 中连续三个单元格中有数字的,就代表有货,算是【齐码】,否则为【断码】。

分析问题
从上图中可以看出:
在【C2:H2】单元格区域中,【C2:E2】连续三个单元格都有货,就算【齐码】。
在【C5:H5】单元格区域中,【D5:F5】连续三个单元格都有货,就算【齐码】。

而【C3:H3】、【C4:H4】、【C6:H6】单元格区域中没有符合「连续三个单元格都有货」这个条件的,就是【断码】。

这样的解释想必大家都明白了吧。
那下面我们就来看看,如果有大量数据,如何用 Excel 快速解决这个问题?

解决问题
这里,我们将 OFFSET 偏移函数,和 COUNTIF 计数函数结合使用。

【I2】单元格的公式如下:
=IF(OR(COUNTIF(OFFSET(B2:D2,0,{1;2;3;4}),">0")=3),"齐码","断码")
公式解析:
❶ OFFSET(B2:D2,0,{1;2;3;4})
先将原点位置定位在【B2:D2】这三个单元格区域,然后向下不偏移,向右分别偏移 1,2,3,4 个单元格。
即返回:【C2:E2】、【D2:F2】、【E2:G2】、【F2:H2】这四个单元格区域。
❷ COUNTIF(❶,">0")
使用 COUNTIF 条件计数函数将步骤 1 中生成的四个区域分别统计大于 0 的个数。
返回四个值,结果分别是:{3;2;1;1}。
❸ OR(❷=3)
将步骤 2 返回的四个结果分别和 3 进行比较,如果相等就返回 TRUE,不相等就返回 FALSE。
结果是:{TRUE;FALSE;FALSE;FALSE}
再用 OR 函数取出其中有 TRUE 的结果。只要有一个结果是 TRUE,OR 函数就返回 TRUE。
如果结果都是 FALSE,OR 函数就返回 FALSE。
此处 OR 函数结果返回 TRUE。
❹ IF(❸,"齐码","断码")
最后用 IF 条件判断函数判断返回第二参数或者第三参数。
如果第一参数是 TRUE,就返回第二参数:齐码,否则返回第三参数:断码。
这里返回结果是:齐码。
这样一步一步拆解复杂的函数嵌套,就好理解了吧!

当然,此时小伙伴们可能是:眼睛会了,但手还不会。
要想一下子写出来这样的公式,没有几个月的学习,根本做不出来。
其实,对于我们这些小白白们来说,倒是可以换一个角度考虑问题。
我们是不是可以把这个复杂的函数嵌套问题转为化一个简单的函数问题呢?
答案当然是可以的!

如何转换呢?
大体的思路是:
先建立一个辅助区域,对原来的数据区域进行一个简单的统计,
最后在结果区域对这个辅助区域再进行一次简单的判断,即可得出结果。
如下图:

我们在【K2】输入公式:
=COUNT(C2:E2)
公式解析:
统计出【C2:E2】这三个单元格中的数字。
有几个数字就返回几。这里有三个数字,就返回 3。
并将此公式向右填充到【N2】单元格,向下填充到【N6】单元格。
这里只要统计到【N2】单元格就行,因为这个【N2】的公式是:
=COUNT(F2:H2)

正好是最后三个码数的单元格。
这个辅助区域的结果如下:

然后在【I2】中输入如下公式:

=IF(COUNTIF(K2:N2,3),"齐码","断码")
公式解析:
❶ COUNTIF(K2:N2,3)
先用 COUNTIF 函数统计在【K2:N2】这个单元格区域中是否有数字 3,如果有,就返回大于 0 的数字,如果没有就返回 0 值。
然后用 IF 判断返回齐码或者断码↓↓↓
❷ =IF(❶,"齐码","断码"),返回"齐码"。
怎么样,用一个辅助区域+一个 COUNT 函数+一个 COUNTIF 函数+IF 函数,这些简单的函数组合就能解决上面那么复杂的函数嵌套组合问题。
这是不是你解决问题的好思路呢?

知识扩展
这里再介绍一种函数(FREQUENCY)的解决方法,助喜欢函数的小伙伴们拓展思路。
这个函数是用来统计频率、次数的函数。
它有两个参数。
=FREQUENCY(data_array,bins_array)
第一参数是数据源,第二参数是分断点。
如下图:

【I2】公式如下:
=IF(OR(FREQUENCY(IF(C2:H2>0,COLUMN(C:H)),IF(C2:H2="",COLUMN(C:H)))>=3),"齐码","断码")
公式解析:
这里的核心公式是↓↓↓
FREQUENCY(IF(C2:H2>0,COLUMN(C:H)),IF(C2:H2="",COLUMN(C:H)))
❶ IF(C2:H2>0,COLUMN(C:H))
如果【C2:H2】大于零,就返回其所在的列号,否则返回 FALSE。
结果如下:
{3,4,5,FALSE,FALSE,8}
❷ IF(C2:H2="",COLUMN(C:H))
如果【C2:H2】等于空,就返回其所在的列号,否则返回 FALSE。
结果如下:
{FALSE,FALSE,FALSE,6,7,FALSE}
❸FREQUENCY({3,4,5,FALSE,FALSE,8},{FALSE,FALSE,FALSE,6,7,FALSE})
将第一步和第二步的结果返回给 FREQUENCY。
这个函数的统计原理是:
第二参数的数字作为分断点,忽略 FALSE 逻辑值。
分断点 6:如果在第一参数中小于等于 6,将统计在内,它们分别是 3,4,5,结果返回 3。
分断点 7:大于 6 并且小于等于 7 的数字,在第一参数中没有,结果返回 0。
最后还要统计大于 7 以上的数字的个数,在第一参数中有一个数字 8,结果返回 1。
最终该函数返回结果如下:
{3;0;1}

剩下的判断就跟上面的一样了,这里不再多说了。
这个函数的应用也非常广泛,小伙伴们可以抽空好好研究下。

写在最后
今天,我们分享了如何对连续的多个单元格区域进行统计的问题。
❶ 分别运用了 OFFSET 偏移函数+COUNTIF 条件计数。
❷ 辅助区域+ COUNT 计数和 COUNTIF 条件计数。
❸ FREQUENCY 计算出现的频率次数的函数。
每个函数都有他们的用武之地。
虽然他们的使用方法不一样,但是却都能达到同样的结果。
对于小白们,建议多多使用辅助区域来解决问题,更容易操作哦~
如果你还想学习更多更实用的 Excel 函数、更快更简单的表格操作技巧。
刚好,秋叶《 3 天 Excel 集训营》专为职场职场人准备,全部基于职场真实表格案例设计,超实用 Excel 技巧集合教学。
3 天录播+直播,每天只需学习 30 分钟左右,你也有机会成为 Excel 高手!
《3 天 Excel 集训营》想提升,趁现在!
不再被加班支配,不再为表格发愁!
现在报名,免费赠送【35 个常用函数说明】【100+套 Excel 模板】还等什么,赶紧扫码吧!👇👇👇

*广告