Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2338|回复: 5

[已解决]求满足条件的日期

[复制链接]
发表于 2014-9-30 10:48 | 显示全部楼层 |阅读模式
各位好:
       定义了起始日期和结束日期(随意的,有可能会跨月),然后想把这段时间里所有是周日的天用函数罗列出来,请问该怎么操作了?
最佳答案
2014-9-30 11:02
本帖最后由 xdragon 于 2014-9-30 11:04 编辑

=IFERROR(TEXT(SMALL(IF(MOD(ROW(INDIRECT(A$1&":"&A$2)),7)=1,ROW(INDIRECT(A$1&":"&A$2))),ROW(A1)),"e/m/d"),)
下拉(输入公式需Ctrl+Shift+Enter)

工作簿1.rar

6.73 KB, 下载次数: 18

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-9-30 11:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 xdragon 于 2014-9-30 11:04 编辑

=IFERROR(TEXT(SMALL(IF(MOD(ROW(INDIRECT(A$1&":"&A$2)),7)=1,ROW(INDIRECT(A$1&":"&A$2))),ROW(A1)),"e/m/d"),)
下拉(输入公式需Ctrl+Shift+Enter)
回复

使用道具 举报

发表于 2014-9-30 12:46 | 显示全部楼层
C2=IFERROR(TEXT(A$1-WEEKDAY(A$1,2)+7*ROW(A1)-A$2,";-0;0")+A$2,"")下拉

评分

参与人数 1 +3 收起 理由
beijiren368 + 3 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-9-30 13:58 | 显示全部楼层
tgydslr 发表于 2014-9-30 12:46
C2=IFERROR(TEXT(A$1-WEEKDAY(A$1,2)+7*ROW(A1)-A$2,";-0;0")+A$2,"")下拉

请问是怎样想到这样组织公式的了?真的很神奇,到现在都没搞明白。
回复

使用道具 举报

发表于 2014-9-30 18:31 | 显示全部楼层
本帖最后由 tgydslr 于 2014-9-30 18:32 编辑

=IFERROR(TEXT(A$1-WEEKDAY(A$1,2)+7*ROW(A1)-A$2,";-0;0")+A$2,"")

A1是开始日期,WEEKDAY(A$1,2)返回A1的星期数,A$1-WEEKDAY(A$1,2)的结果为A1之前的周日日期,加上7*ROW(A1)就是A1(或)之后的第一个周日的日期……
最后再减A2是判断结果是否为负数(超过的要不显示)
text代码(“;-0;0”)的意思是,结果为正数的话日期超过了结果为空,其他按结果显示,但是在正常显示时多减了A2,要加上才对,但是A$1-WEEKDAY(A$1,2)+7*ROW(A1)-A$2为正数时这部分显示为空再加A2就报错,所以外套容错。
回复

使用道具 举报

发表于 2014-9-30 18:34 | 显示全部楼层
本帖最后由 tgydslr 于 2014-9-30 18:35 编辑

实际上公式也可以这样写
=if(A$1-WEEKDAY(A$1,2)+7*ROW(A1)-A$2,";-0;0")>a$2,"",A$1-WEEKDAY(A$1,2)+7*ROW(A1)-A$2,";-0;0"))
好理解,感觉太长了就写了那个
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-11 12:44 , Processed in 0.261610 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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