ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 练剑,拿日期函数开刀(数组公式初级)7小题(胡剑开课了...)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-6-23 22:22 | 显示全部楼层
点位,学习!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-24 07:01 | 显示全部楼层
原帖由 ringdove 于 2011-6-23 22:15 发表
明天再来看第二题的答案,感觉自己用函数解题的思路容易受限,不太能创新,第二题就基本上照搬了第一题的思路。


呵呵,如果能找到一条很通用,很顺畅的思路那么是最好的。就像功夫,不是说对付每种人都要使用各不相同的精妙绝伦的招式,如果能以不变应万变因该更好。关键是要顺畅,慢慢把解决函数公式的问题变成用函数公式翻译逻辑...

TA的精华主题

TA的得分主题

发表于 2011-6-24 16:06 | 显示全部楼层
交个作业,第三题:=TEXT(MAX((WEEKDAY(TODAY()+1-ROW(1:7),2)=7)*(TODAY()+1-ROW(1:7))),"e-m-d")
第四题:=TEXT(SMALL(IF(WEEKDAY(DATE(2011,11,ROW(1:31)),2)=4,DATE(2011,11,ROW(1:31)),9^9),4),"e-m-d")
第六题:=SUM((TODAY()+1-ROW(1:366)>=VALUE("2011-1-1"))*(WEEKDAY(TODAY()+1-ROW(1:366),2)=1))
感觉自己的公式很拧巴,献丑了。

[ 本帖最后由 一嘟噜钥匙 于 2011-6-24 16:57 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-6-24 18:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-6-24 20:09 | 显示全部楼层
不是太懂,但会认真学,谢谢大家

TA的精华主题

TA的得分主题

发表于 2011-6-26 17:51 | 显示全部楼层

实在忍不住了

我实在是忍不住了,下载了第一题,并看了答案.胡版主的思路真是特别.
另外,我请教一下,=MATCH(TODAY(),DATE(E2,1,ROW(1:366)))这个数组公式里,后面的row(1:366)感觉就象是一个循环,执行了366次一样.我这样的比喻是否恰当?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-27 09:39 | 显示全部楼层
原帖由 zoubo604 于 2011-6-26 17:51 发表
我实在是忍不住了,下载了第一题,并看了答案.胡版主的思路真是特别.
另外,我请教一下,=MATCH(TODAY(),DATE(E2,1,ROW(1:366)))这个数组公式里,后面的row(1:366)感觉就象是一个循环,执行了366次一样.我这样的比喻是否恰 ...


是的,你的理解非常到位,这个也是数组公式之所以强大的本质。我把包含数组运算的公式称为数组公式。它在一个运算中依次执行了多次,并保留了各个运算的返回值组成了一个数组,这个数组可以传递给外层的函数再次处理。

思路是有点特别,但仔细回味一下还是很朴实的,呵呵。EXCEL对处理数字时最有优势的,日期本身就是数字序列,并且是极其规范的数字序列,所以处理日期时把日期当成普通的数字序列思路会更简单。

TA的精华主题

TA的得分主题

发表于 2011-6-28 19:12 | 显示全部楼层
原帖由 胡剑0227 于 2011-5-17 18:46 发表
第八题 打算对护士的那个题进行加强,罗列一堆休假日,然后再算工作天数。待完善吧...



这个直接讲一下思路算了,呵呵。 第一个护士工作日得题,使用了多条件汇总的方式,那么再加一个条件就能解决问题: COUN ...



请教:
我就是用这个思路做的公式如下:
COUNTif(((WEEKDAY("2011-5-15"+ROW($1:$150),2)),"<>1")*((WEEKDAY("2011-5-15"+ROW($1:$150),2)),"<>6"))
可是为什么总是提示我“公式有错误”?错在哪里了?
研究了好几天了都没有搞明白错哪里了

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-28 19:25 | 显示全部楼层
原帖由 553718581 于 2011-6-28 19:12 发表



请教:
我就是用这个思路做的公式如下:
COUNTif(((WEEKDAY("2011-5-15"+ROW($1:$150),2)),"1")*((WEEKDAY("2011-5-15"+ROW($1:$150),2)),"6"))
可是为什么总是提示我“公式有错误”?错在哪里了?
研究了 ...


countif第一参数要求 range,区域,不能是简单的数组...

TA的精华主题

TA的得分主题

发表于 2011-6-29 16:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
留个爪印,慢慢研究。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-28 22:04 , Processed in 0.041571 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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