excel如何统计天数?

excel如何统计天数?,第1张

1、合并日期和时间

如下图,如何将A列日期和B列的时间合并到一起,变成既有日期又带有时间的数据呢?

老祝说:只要把日期和时间相加即可。

2、拆分日期和时间

如果要将日期和时间合并在一起的数据拆分开,需要怎么处理呢?

老祝说,使用以下公式就可以得到日期:

=INT(A2)

然后再用日期时间数据减去日期即可。

3、计算间隔几小时

如何计算两个时间之间有多少个小时呢?

用结束时间减去开始时间,然后乘以24即可。

4、计算间隔多少分钟

如何计算两个时间之间有多少个分钟呢?

用结束时间减去开始时间,然后乘以1440即可。

5、突出显示周末日期

1)选中A3:F7单元格区域,新建格式规则

2)使用公式为:

=WEEKDAY(A$3,2)>5

3)设置突出显示的格式

提示:

1)WEEKDAY函数返回某日期为星期几。第二参数使用2,表示以1~7表示星期一到星期日。

2)对第三行中的日期进行判断后,如果数值大于5,即表示该日期为周六或是周日。

6、n个工作日之后是哪天

如下图,使用函数可以计算n个工作日之后是哪天。公式为:

=WORKDAY(A2,B2,A6:A8)

WORKDAY函数的用法为:

=WORKDAY(开始日期,工作日数,需要从工作日历中排除的法定节假日)

7、有多少个工作日

如下图,使用函数可以计算两个日期之间,去除周末和法定节假日的工作日天数。

=NETWORKDAYS(A2,B2,A6:A8)

NETWORKDAYS函数的用法为:

=NETWORKDAYS(开始日期,结束日期,需要从工作日历中排除的法定节假日)

8、指定日期所在月有几天

=DAY(EOMONTH(A2,0))

EOMONTH函数返回在某个日期之后指定月份后的最后一天,EOMONTH(A2,0)函数得到日期所在月最后一天的日期,DAY函数返回该日期是几号。

9、区分指定日期是上中下旬

Excel中没有直接判断上中下旬的函数,但是咱们可以使用LOOKUP函数变通一下判断出结果:

=LOOKUP(DAY(A2),{0,11,21},{“上旬”,”中旬”,”下旬”})

先用DAY函数,判断A2单元格的日期是几号,然后用LOOKUP函数近似匹配,如果在0~10之间就是上旬,在11~20之间就是中旬,其他就是下旬。

10、根据身份z号码计算年龄

计算公式为:

=1TEXT(MID(B2,7,8),”0-00-00″)

首先使用MID函数从B2单元格的第7位开始,提取出表示出生年月的8个字符,结果为:

“19780215”

再使用TEXT函数将字符串转换为日期样式:

“1978-02-15”

然后通过1计算,将其转换为真正的日期。最后设置为日期格式即可。

11、计算员工转正时间

如下图,要根据B列入职年月计算出转正日期。

公式为:

=EDATE(B2,C2)

EDATE函数用于返回某个日期经过指定月份后的日期。用法为:

=EDATE(开始日期,指定月份)

12、按年月汇总

如下图,有几百行数据,要按年月汇总各个区域的销售总额。

使用数据透视表,分分钟搞定:

workday函数只计算除去周六、周日的天数,想实现题上效果可以用NETWORKDAYS函数,如“=NETWORKDAYS(E21,F21,H19:H25)”,

E21,F21为起止日期,H19:H25为节假日列表(1-22到1-28)。

详细可以参考:http://zhidaobaiducom/linkurl=I6MtJUJH93u1JY2YUrIZNr5e4vEQxvIVsLhZPlcK4B5UBmlpC0NiRGINsItzfRsQyTwlR7EbTjB5ErcWENEiu_

上午的回答中,公式中A2单元格没固定,且漏掉了一个假日,下午修正下。

只要计算A2单元格日期开始多少个工作日后的日期,A列无需列出日期序列,直接用Workday函数即可,如果有双休日要上一天班的或休息日是星期一到星期五中的,就用Workdayintl。

如图,在B列列出一年的法定假日,如果法定假日与双休日重叠的,就把兑换休息的日期填上。

C1、D1、E1中只写数字,通过单元格格式来显示汉字,自定义格式:"第"#"个工作日"。

C2=WORKDAY($A2,C$1,$B2:$B12)

右拉

修改A2中的日期,得到新的数据

解决实际问题,推荐上面用上面的公式,简单快捷。但按题主的提问思路,需要的公式倒是很有趣的问题,所以下面按题主的思路来编写公式。当然B列的标示应该也用公式来得到,否则一个个日期来标示0和1也是挺麻烦的。同样在C列中把全年的假日列出来,遇上假日与双休日重叠的,就修改为换休日期(2019年的所有法定假日没有与双休日重叠的,无需替换)。

B2=IF(OR(WEEKDAY(A2,2)>5,COUNTIF(C$2:C$12,A2)),0,1)

下拉,得到A列日期是否为休息日的判断,工作日为1,休息日为0

D2=OFFSET($A2,MATCH(D$1,SUBTOTAL(9,OFFSET($B2,1,,ROW(1:39))),),)

同时按Ctrl+Shift+Enter三个键,完成数组公式的输入,右拉。

公式中的39为A列日期数据行数-2

workday至少需要两个参数,如A1中输入2007-8-1,B1=workday(A1,1)

返回值为39296为日期的序数,如果要返回日期则用

=TEXT(WORKDAY(A1,1),"yyyy-m-d"),值为2007-8-2

如果要返回今天的日期,则today()

下班后看到你的这个问题,都没及时下班,为你作答,但现在却找不到问题了。不会是你删除了下午的提问吧。100分的问题也变成10分了。

这个问题要用净工作日计算的另一个函数:WORKDAYINTL,但这个周末加班没有规律,就增加了难度。想到的解决办法是:

公式中按每周工作7天,周六周日全部不休息,然后把不要加班的日期,即休息的双休日当作假日,添加到H列中。假设H列的法定假日和休息的双休日到了H50,公式就是这样的:

G3=WORKDAYINTL(E3,365,"0000000",H$3:H$50)

公式中的"0000000",7个0表示一周7天都要工作,不休息,如果每周的哪天休息,就将哪个位置的0改成1,这是WORKDAYINTL比WORKDAY函数增强的地方。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12177302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存