专栏名称: Excel之家ExcelHome
excel技巧原创教程每日推送,excel表格职场模板干货仓库,图文/视频/动画等多种教学方式分享excel操作技巧教程/excel函数公式教程/excel数据透视表教程/excel图表教程/Word教程,助您轻松提高办公效率!
目录
相关文章推荐
51好读  ›  专栏  ›  Excel之家ExcelHome

频数计算很简单,搬砖搬到六十三

Excel之家ExcelHome  · 公众号  · Excel  · 2024-09-15 06:45

正文

请到「今天看啥」查看全文


小伙伴们好啊,今天咱们分享一个和频数(频次)计算有关的内容。
如下图所示,是某鞋店部分款式女鞋的存货情况,希望使用公式判断是不是断码。判断规则为:每个款色连续3码大于0时为齐码,否则为断码。
接下来咱们说说这种问题的两种经典解法:
解法1:
=IF(MAX(FREQUENCY(IF(B3:G3>0,COLUMN(B:G)),IF(B3:G3=0,COLUMN(B:G))))>2,"齐码","断码")
输入以上公式,按Shift+Ctrl不放,再按回车。
FREQUENCY函数用于计算在一组数据中,不同分段的数值个数。
第一参数是要处理的一组数据,第二参数是各个分段的节点。
本例中,第一参数是 IF(B3:G3>0,COLUMN(B:G)),换成普通话就是 如果B3:G3 大于 0,就返回对应的列号,否则返回0。 这部分的 公式结果为:
{FALSE,3,4,5,FALSE,7}
与上图的第三行对照一下,数组中的每个值就是第三行中不为空的列号。
FREQUENCY函数的第二参数是 IF(B3:G3=0,COLUMN(B:G)), 换成普通话就是 如果 B3:G3 等于 0,就返回对应的列号,否则返回0 这部分的 公式结果为:
{2,FALSE,FALSE,FALSE,6,FALSE}
FREQUENCY函数在处理时,会自动忽略参数中的逻辑值。去掉逻辑值后,第一参数变成了 {3,4,5,7},第二参数变成了 {2,6}。
FREQUENCY函数计算在{3,4,5,7}这组数据中,小于等于2的个数为0个,大于2且小于等于6的个数为3个,大于6的个数为1个。计算后的内存数组结果为:
{0;3;1}
接下来使用MAX函数计算出其中的最大值3,就是大于0的最大连续次数。
最后用IF函数进行判断,如果MAX的结果大于2,则为“齐码”,否则为“断码”。

解法2:
在Excel 2021或者最新版的WPS表格中,还可以使用以下公式:
=IF(MAX(LEN(TEXTSPLIT(CONCAT(IF(B3:G3>0,1,0)),0)))>2,"齐码","断码")
公式中的 IF(B3:G3>0,1,0)部分,用IF函数进行判断,如果 B3:G3的某个元素大于0,结果返回1,否则返回0。这部分的判断结果为:
{0,1,1,1,0,1}
接下来使用 CONCAT函数将以上内存数值的各个元素连接到一起:
"011101"
再使用 T EXTSPLIT函数,用0做间隔符号进行拆分,结果为:
{"","111","1"}
然后使用LEN函数计算以上内存数组中各个元素的字符长度:
{0,3,1}
用MAX函数提取出最大值后,最后用IF函数进行判断并返回“齐码”或是“断码”。
好了,以上就是今天的全部内容,祝各位一天好心情~~

图文制作:祝洪忠

1、点击或搜索微信公众号【 Excel之家ExcelHome】到公众号首页。

2、点击右上角【···】,在下拉菜单中点击【设为星标】。

设置星标后,小伙伴们就不用担心错过咱们的推送了!

设为星标,精彩内容不错过







请到「今天看啥」查看全文