ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [第30期]计算今天所在季度共有多少天

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-12-21 14:44 | 显示全部楼层
公式长度( 2003公式及2007通用)
65 =90+CHOOSE(MONTH(NOW())/3.1+1,DAY(DATE(YEAR(NOW()),3,))=29,1,2,2)
64 =90+CHOOSE(CEILING(MONTH(NOW())/3,1),MOD(YEAR(NOW()),4)=0,1,2,2)
64 =90+MAX(DAY(DATE(YEAR(NOW()),3,))-28,INT(MONTH(NOW())^0.53-0.8))
64 =91+IF(MONTH(NOW())>6,1)-(MONTH(NOW())<4)*(MOD(YEAR(NOW()),4)>0)
64 =IF(MONTH(NOW())>6,92,91)-(MOD(NOW(),1461)>366)*(MONTH(NOW())<4)
63 =SUM(DATE(YEAR(NOW()),CEILING(MONTH(NOW()),3)+{1,-2},0)*{1,-1})
63 =90+CHOOSE(ROUNDUP(MONTH(NOW())/3,),MOD(YEAR(NOW()),4)=0,1,2,2)
63 =90+CHOOSE(MONTH(NOW())^0.6,DAY(DATE(YEAR(NOW()),3,))=29,1,2,2)
63 =CHOOSE((MONTH(NOW())+2)/3,DAY((YEAR(NOW())&-3)-1)+62,91,92,92)
63 =9&MAX(LOOKUP(MONTH(NOW())-0.1,{0,3,6})/3,MOD(YEAR(NOW()),4)=0)
63 =9&MAX((LOOKUP(MONTH(NOW()),{1,4,7})-1)/3,MOD(YEAR(NOW()),4)=0)
63 =SUM(DATE(YEAR(NOW()),CEILING(MONTH(NOW()),3)+{1,-2},0)*{1,-1})
62 =92-MIN((DAY(DATE(YEAR(NOW()),2,29))=1)+1,INT(6/MONTH(NOW())))
62 =SUM(DATE(YEAR(NOW()),INT(MONTH(NOW())/3.1)*3+{1,4},1)*{-1,1})
62 =SUM(DAY(DATE(YEAR(NOW()),CEILING(MONTH(NOW()),3)+{-1,0,1},)))
62 =9&MAX(DAY(DATE(YEAR(NOW()),3,))-28,INT(MONTH(NOW())^53%-0.8))
62 =CHOOSE(MONTH(NOW())/3+0.9,90+(MOD(YEAR(NOW()),4)=0),91,92,92)
62 =9&MID(1*(MOD(YEAR(NOW()),4)=0)&122,INT((MONTH(NOW())+2)/3),1)
62 =SUM(DATE(YEAR(NOW()),CEILING(MONTH(NOW()),3)-{2,-1},)*{-1,1})
62 =92-MIN((DAY(DATE(YEAR(NOW()),2,29))=1)+1,INT(6/MONTH(NOW())))
62 =CHOOSE(INT((MONTH(NOW())+2)/3),MOD(YEAR(NOW()),4)=0,1,2,2)+90
62 =SUM(DATE(YEAR(NOW()),INT(MONTH(NOW())/3.1)*3+{1,4},1)*{-1,1})
62 =SUM(DATE(YEAR(NOW()),CEILING(MONTH(NOW()),3)+{-2,1},)*{-1,1})
61 =SUM(DAY(DATE(YEAR(NOW()),FLOOR(MONTH(NOW())-1,3)+{2,3,4},)))
61 =SUM(DATE(YEAR(NOW()),INT(MONTH(NOW())/3.1)*3+{4,1},)*{1,-1})
61 =SUM(DAY(DATE(YEAR(NOW()),{2,3,4}+FLOOR(MONTH(NOW())-1,3),)))
61 =92-(MONTH(NOW())<7)-(MOD(YEAR(NOW()),4)<>0)*(MONTH(NOW())<4)
61 =92-SUM((MONTH(TODAY())<{4,7})*(MOD(YEAR(TODAY()),4)>{0,-1}))
61 =SUM(DAY(DATE(YEAR(NOW()),FLOOR(MONTH(NOW())-1,3)+{2,3,4},)))
61 =SUM(DATE(YEAR(NOW()),FLOOR(MONTH(NOW())+5,3)-{5,2},)*{-1,1})
61 =SUM(DATE(YEAR(NOW()),INT(MONTH(NOW())/3.1)*3+{4,1},)*{1,-1})
61 =91+IF(MONTH(NOW())<4,-(MOD(YEAR(NOW()),4)>0),MONTH(NOW())>6)
60 =91-MIN(DAY(DATE(YEAR(NOW()),2,29))=1,INT(6/MONTH(NOW()))-1)
60 =91+(MONTH(NOW())>6)-(MOD(YEAR(NOW()),4)>0)*(MONTH(NOW())<4)
60 =91+(MONTH(NOW())>6)-(MONTH(NOW())<4)*(MOD(YEAR(NOW()),4)>0)
60 =92-(MONTH(NOW())<7)-(MONTH(NOW())<4)*(MOD(YEAR(NOW()),4)>0)
59 =91-MIN(DAY(DATE(YEAR(NOW()),3,))=28,INT(6/MONTH(NOW()))-1)
59 =9&MAX(MOD(YEAR(NOW()),4)=0,MIN(INT(MONTH(NOW())/3-0.1),2))
59 =91-MIN(DAY(DATE(YEAR(NOW()),3,))=28,INT(6/MONTH(NOW()))-1)
59 =9&IF(MONTH(NOW())>=7,2,IF(DAY((YEAR(NOW())&-3)-1)=28,0,1))
58 =9&CHOOSE((MONTH(NOW())/3+0.7),MOD(YEAR(NOW()),4)=0,1,2,2)
58 =9&MAX(MOD(YEAR(NOW()),4)=0,MIN(INT(MONTH(NOW())/3-1%),2))
57 =90+CHOOSE(MONTH(NOW())/3+3/4,MOD(YEAR(NOW()),4)=0,1,2,2)
57 =DAY(DATE(YEAR(NOW()),CEILING(MONTH(NOW()),3)+1,1)-90)+89
57 =90+CHOOSE(MONTH(NOW())/3.1+1,MOD(YEAR(NOW()),4)=0,1,2,2)
56 =DAY(DATE(YEAR(NOW()),FLOOR(MONTH(NOW())+2,3)+1,)-89)+89
56 =92-MIN(DAY(DATE(YEAR(NOW()),2,30)),INT(6/MONTH(NOW())))
56 =90+MAX(INT(MONTH(NOW())^0.53-0.8),MOD(YEAR(NOW()),4)=0)
56 =92-MIN(DAY(DATE(YEAR(NOW()),2,30)),INT(6/MONTH(NOW())))
56 =DAY(DATE(YEAR(NOW()),FLOOR(MONTH(NOW())+2,3)+1,)-89)+89
55 =90+CHOOSE(MONTH(NOW())^0.6,MOD(YEAR(NOW()),4)=0,1,2,2)
54 =SUM(DAY(EOMONTH(NOW(),MOD(-MONTH(NOW()),3)-{2,1,0})))
53 =COUPDAYS(NOW(),99714,4,1)-(--TEXT(NOW(),"em")<19004)
52 =9&MID(2210+(MOD(NOW(),1461)<92),5-MONTH(NOW())/3,1)
50 =91+(NOW()>"7-1"-1)-ISERR(-"2-29")*(NOW()<"4-1"+0)
49 =92-(NOW()<"7-1"*1)-(NOW()<"4-1"*ISERR("2-29"*1))
46 =CHOOSE(MONTH(NOW())^0.6,"4-1"-"1-1",91,92,92)
27 =COUPDAYS(NOW(),401769,4,1)
26 =COUPDAYS(NOW(),99714,4,1)
26 =COUPDAYS(NOW(),73051,4,1)
26 =COUPDAYS(NOW(),6^9/9,4,1)
[此贴子已经被作者于2007-12-21 14:50:44编辑过]

TA的精华主题

TA的得分主题

发表于 2007-12-21 16:48 | 显示全部楼层

什么时候能达到版主的境界啊!……现在缍知道五体投是怎么写的了……唉……啊……天哪……我要努力啊!……

[em04][em04][em04][em04]

TA的精华主题

TA的得分主题

发表于 2007-12-21 16:51 | 显示全部楼层
EOMONTH也不是2007才有的啊,2003里加载分析工具库不是也照样用的么?

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-12-21 17:06 | 显示全部楼层
QUOTE:
以下是引用laoyebin在2007-12-21 16:51:18的发言:
EOMONTH也不是2007才有的啊,2003里加载分析工具库不是也照样用的么?

你没看懂公式吧?看懂了就不会再这么说了。

TA的精华主题

TA的得分主题

发表于 2007-12-21 20:12 | 显示全部楼层

条条大路通罗马,太精彩了!!谢谢版主的总结!记得当初做这个题时,先是118个字符,一点点减,好不容易65个字符,又说不能包括=,再想再减。

[此贴子已经被作者于2007-12-21 20:38:43编辑过]

TA的精华主题

TA的得分主题

发表于 2007-12-21 20:41 | 显示全部楼层
好多公式,个个精彩,得花点时间慢慢消化

谢谢版主

TA的精华主题

TA的得分主题

发表于 2007-12-22 08:51 | 显示全部楼层

第一次顶贴.

也是第一次参于这种考验,学习了.

收藏后,慢慢消化去.

谢谢罗同志,谢谢大家.谢谢excelhome.

TA的精华主题

TA的得分主题

发表于 2007-12-22 11:30 | 显示全部楼层
QUOTE:
以下是引用chrisfang在2007-12-13 9:42:55的发言:

28个字符的公式后来一想还可以更缩短2个字符,最终为26个字符。已经通过邮件和短信方式发送给版主。 

QUOTE:

=COUPDAYS(NOW(),73051,4,1)----26个字符

目前最短且正确的公式----------andysky

Willin2000版主的第一个公式长度和我一样,也是目前最短且正确的公式。

TA的精华主题

TA的得分主题

发表于 2007-12-23 05:27 | 显示全部楼层

EXCELHOME真了不起,人才济济

如论长度及不用加载宏,我觉得

46 =CHOOSE(MONTH(NOW())^0.6,"4-1"-"1-1",91,92,92)

比较实用

TA的精华主题

TA的得分主题

发表于 2007-12-23 08:48 | 显示全部楼层
自己写了个70字符的公式,基本上类似楼主公布中的第一个公式,但未能去掉IF()函数,因不符合要求,未参加。自叹功底不深,尚需加倍努力。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-21 23:13 , Processed in 0.037942 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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