ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: aoe1981

[讨论] 出道函数题:统计营养早餐天数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-1-8 21:41 | 显示全部楼层
硬算

=COUNT(1/(B3:DN3+C3:DO3+D3:DP3+E3:DQ3)/B$1:DN$1)

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-8 21:42 | 显示全部楼层
dipperrrr 发表于 2020-1-8 20:54
瞎蒙一个
=COUNT(MATCH(ROW($1:$30),INT(B3:DQ3*COLUMN(D:DS)/4),))

原表中的数据1其实只是一个标记的作用,表示某种早餐提供了,换作对勾也是可以的……

您的公式所作出的数据转换令人佩服!

设:
第一天1111
第二天1101
第三天0011
第四天0001
……
您将其转换为新序列:
第一天1111
第二天2202
第三天0033
第四天0004
……
于是,数字除了表示“是否提供了早餐”之外,还标记了具体的日期。

接下来精确匹配查找有没有标记1、2、3、4、……、30的,有的话返回首次出现的位置序号,无的话返回错误值。

最后利用count忽视错误值的特性对数字计数。

学习了,教科书级别的。

TA的精华主题

TA的得分主题

发表于 2020-1-8 21:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
再减一个字,瞎凑,没拓展性

=COUNT((B5:DN5&C5:DO5&D5:DP5&E5:DQ5)/B$1:DN$1)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-8 21:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
如果我把各位大神的公式读得差不多了,会奉上鲜花的,无意厚此薄彼。

引用我也觉得31天更好,人家规定最多每月统计30天。

TA的精华主题

TA的得分主题

发表于 2020-1-8 21:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
大佬解读公式用的是代码的思维啊

match用来查找并且去重确实好思路

连续4个单元格统计非空就行,其实countif就挺好,如果标记不是数字,也可以换标记字符,或者干脆 "<>"做参数。
offset偏移,应该比较好理解
公式里N在遇到逻辑值的时候是进行数学运算,true变为1.

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-8 22:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
micch 发表于 2020-1-8 21:55
大佬解读公式用的是代码的思维啊

match用来查找并且去重确实好思路

这恐怕是我一直用不好公式的原因。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-8 22:18 | 显示全部楼层
满坛皆为吾师 发表于 2020-1-8 21:08
A3下拉
=COUNT(0/SUBTOTAL(2,OFFSET(A3,,ROW($1:$30)*4-3,,4)))

一个:
SUBTOTAL(2,数据区域)
把我唬了半天,原来相当于count,我把它叫做“分类汇总函数”,也不知道对不对?

外面的框架感觉与2楼一样。

我一直往indirect上想,却不知道offset的强大,在构造规律的、变化的引用区域上。

TA的精华主题

TA的得分主题

发表于 2020-1-8 23:03 | 显示全部楼层
aoe1981 发表于 2020-1-8 22:18
一个:
SUBTOTAL(2,数据区域)
把我唬了半天,原来相当于count,我把它叫做“分类汇总函数”,也不知道 ...

套路是一样的
=COUNT(0/SUBTOTAL(9,OFFSET(B3:E3,,(ROW($1:$31)-1)*4)))

TA的精华主题

TA的得分主题

发表于 2020-1-8 23:12 | 显示全部楼层
睡觉前我也来凑凑热闹
=COUNT(SUBTOTAL(1,OFFSET(A3,,ROW($1:$30)*4-3,,4)))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-8 23:17 | 显示全部楼层
sbdk007 发表于 2020-1-8 21:09
=COUNT(0/FREQUENCY(IF(B3:DQ3,COLUMN(A:DP)),COLUMN(A:DP)*4))

学习了。
FREQUENCY数据分布频率统计函数我备注下两个特点:
1.忽略数据区域中的逻辑值、文本、空单元格,但是似乎数据区域中不能存在错误值,否则返回错误结果;
2.分界标准是右闭区间,例:

=FREQUENCY({1,2,3,4},4)

的结果是{4;0};

=FREQUENCY({1,2,3,4},3)

的结果是{3;1}。

这些函数没怎么用过,只是听闻过,功能真是强大。不过也取决于碰到如楼主一样强大的人,才能发挥出来。

您的这个分界标准转换真是巧妙:
4,8,12,16,20,24,28,32,……
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-11 11:19 , Processed in 0.034088 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表