ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-5-16 16:28 | 显示全部楼层
支持,等待精彩的题目

TA的精华主题

TA的得分主题

发表于 2011-5-16 16:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
什么时候开始啊

TA的精华主题

TA的得分主题

发表于 2011-5-16 16:32 | 显示全部楼层
占位,等待做题~~~

试试第一题:
=TODAY()-DATE(2011,1,0)


胡剑0227:
恩,这是一种方式,我姑且称为日期点运算的方式,你再考虑一下是否还有其他思路。参考解答在出题所在楼层。

继续尝试第二题:
=INT(("2011-5-16"-1-"2008-8-15")/7)+1
用"2011-5-16"-1,因为今天是星期一,所以减1

胡剑0227:
应该是我没有表达清楚吧,不仅是星期7,而且在当月也是7号,所以直接用 多条件汇总的思路好了

继续尝试第三题:
=TODAY()-WEEKDAY(TODAY()+1,2)+1
这个方式的思路,是和《EXCEL大全》中讲日期的那一章,用MOD求星期几的思路雷同


胡剑0227:
我觉得这里把后面的1直接放在TODAY后面能更好理解一点,变成了明天。本题以今天为描述的,我们换一下,用明天描述就更加简单了,离明天最近的星期日,如果明天就是星期日,那么返回明天-7的日期...

不过这种以日期点的方式来运算是需要有点脑力的,关键部分不是EXCEL在处理是我们人在处理了。最好写函数公式的时候我们给EXCEL一个思路,然后具体细节让Excel帮我们去做...比如这个,我们可以直接最近7天中找一个天,这一点是星期日,这样用条件汇总也行,用INDEX+MATCH也行,细节就不用处理了。

=MOD(11-WEEKDAY(DATE(2011,11,),2),7)+21
继续尝试第四题:
=MOD(11-WEEKDAY(DATE(2011,11,),2),7)+21
这里面之所以用“11”,因为直接用4减去星期几,可能会得到一个负数
21=3*7,指的是找到当月第一个星期四后,向后推三周的日期


希望胡版可以做一些指教,谢谢~~~

胡剑0227:
我感觉你的思路都是停留在日期点的角度上去考虑,如果能以一组日期同时去考虑,问题会显得更加可控的。


[ 本帖最后由 胡剑0227 于 2011-5-19 09:31 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-5-16 16:34 | 显示全部楼层
日期函数很少用,总是记不住。跟着胡版练剑,肯定能有长进。

TA的精华主题

TA的得分主题

发表于 2011-5-16 16:36 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-16 16:40 | 显示全部楼层

回复 15楼 piny 的帖子

这个测试也有点累哟,有更好的测试方法吗,呵呵。(本身这个题最头疼的是最后结果 多1少1 是不是?主要是去核对这个问题吧)

另外,继续考虑思路上比较特别的方式,特别归特别非常顺畅的...期待

[ 本帖最后由 胡剑0227 于 2011-5-16 16:43 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-5-16 16:41 | 显示全部楼层
第一题。
  1. =TODAY()-"1-1"+1
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-16 16:47 | 显示全部楼层
以上两位高手呢都是直接以 点对点 的方式来求解值,不错,很好。但考虑一下能否用我们极熟悉的数组公式来解决,这不是走远路,在思路上会突然通畅的...

也能孵化出处理日期问题的一般方式...

TA的精华主题

TA的得分主题

发表于 2011-5-16 16:49 | 显示全部楼层
验证
  1. =SUM(DAY(EOMONTH(ROW(1:4)&-1,0)))+DAY(NOW())
复制代码
数组。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-16 16:52 | 显示全部楼层
第二题:2008-8-15 至 2011-5-16 共有几个星期日,其Day值正好也为7(所在月的7号)。


附件是加密的,密码在36楼找,呵呵

附件答案有误,请找出问题所在哟...

[ 本帖最后由 胡剑0227 于 2011-5-18 09:27 编辑 ]

参考答案既是星期日又是当月7号.rar

4.24 KB, 下载次数: 375

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-26 12:00 , Processed in 0.042164 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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