对于提问的“上一个”、“上周”等,不知是否理解对。另外截图中“A1上”、“B1”上等,是否应该是A2、B2等
公式及结果均在截图中
公式的核心是:
WORKDAY.INTL(起始日期,净工作日,"1110111")
净工作日——往前为负,往后为正。
"1110111"——七天的工作安排,0为工作,1为休息
以C2中的公式为例说明
=WORKDAY.INTL(B2,-1,"1110111")-(WEEKDAY(B2,2)>4)*7
B2中的日期为起始日期,要计算上周四是哪一天,那就从今天开始往前计算,只有周四工作,一周工作一天是哪一天:
=WORKDAY.INTL(B2,-1,"1110111")
但如果B2中日期是周四后,那么,这个计算出来的周四就会是本周的周四,所以用:
WEEKDAY(B2,2)>4
来判断,如果条件成立,那么,得到结果TURE,与7相乘,就得到数字7,这个周的周四减去7天,就是上周四了。而如果B2中的日期本身就是周四或以前,那么计算出来的前一个工作日(周四),就是上周四了。
WEEKDAY(B2,2)>4
不成立,结果为:FALSE,与7相乘,结果0。上周四减去0,还是上周四。
首先我们也理解2点
1、日期实际是个数字
2、输入的月份用日期表示,不能用中文去写,B列的日期不知道你是怎么写的
举例说明
我们将B列日期格式再进行一下修改,保持让其显示:年和月
选中B2:B22,打开设置单元格格式对话框,选择自定义
此时将B2:B3选中往下拉,就可以得到连续的年月填充。
有了这个准备工作,剩下的就好办了
L2和M2单元格的日期条件设置和B2:B22一样,既然日期是数字,那么我们就可以以此性质作为大小比较,使用AVERAGEIFS多条件求平均
N2单元格公式:=AVERAGEIFS($D$2:$D$22,$B$2:$B$22,">="&L2,$B$2:$B$22,"<="&M2)
比如上图是你的表格你新建一个表下图
你的开始时间填在D2结束时间填在E2 开始录制宏 选表1筛选时间 选介于 复制开始时间结束时间 筛选完复制粘贴到 表2A3结束录制 然后代码稍微修改就可以了 为了方便你可以插个控件制定你刚才改好的宏 以后要筛选就点击这个控件就完成了。至于修改代码我想你应该看得懂的.
如果还不会那你发文件给我弄好发回给你。