Excel公式,以获取会计日,如第0天,第1天,第2天至第5天,不包括周末

时间:2017-07-04 15:01:26

标签: excel-vba excel-formula vba excel

Date        Status          LastWorkingDate
7/3/2017    Day 0           7/3/2017
7/1/2017    Day 1           7/3/2017
7/2/2017    Day 1           7/3/2017
6/30/2017   Day 1           7/3/2017
6/29/2017   Day 2           7/3/2017
6/28/2017   Day 3           7/3/2017
6/27/2017   Day 4           7/3/2017
6/26/2017   Day 5           7/3/2017
6/25/2017   Day 6           7/3/2017
6/24/2017   Day 6           7/3/2017
6/23/2017   Day 6           7/3/2017
6/22/2017   More than Day 6 7/3/2017
7/4/2017    Day 0           7/4/2017
7/3/2017    Day 1           7/4/2017
7/2/2017    Day 2           7/4/2017
7/1/2017    Day 2           7/4/2017
6/30/2017   Day 2           7/4/2017
6/29/2017   Day 3           7/4/2017
6/28/2017   Day 4           7/4/2017
6/27/2017   Day 5           7/4/2017
6/26/2017   Day 6           7/4/2017
6/25/2017   More than Day 6 7/4/2017

我尝试过使用= IF(NETWORKDAYS(E21,G21)-1=0,"day 0",IF(NETWORKDAYS(E21,G21)-1=1,"Day 1",IF(NETWORKDAYS(E21,G21)-1=2,"Day 2",IF(NETWORKDAYS(E21,G21)-1=3,"Day 3",IF(NETWORKDAYS(E21,G21)-1=4,"Day 4",IF(NETWORKDAYS(E21,G21)-1=5,"Day 5","Greater than 5 Days")))))) 但没有得到理想的输出。

基于两个日期列(Date和LAstWorkingDate),我想要的是第0天到第5天。

  1. 第0天=如果今天是星期一,那么lastworkingdate将是星期五和星期五,星期六和星期日将成为第0天,前一周的星期四将是第1天,依此类推

  2. 第1天=如果今天是星期二,那么上次工作日期将是星期一,星期一将变为第0天,星期五,星期六和星期日将是第1天,依此类推

  3. 第2天=如果今天是星期三十,Lastworkind日期将是星期二,星期二将变为第0天,星期一 - 第1天,星期五,星期六和星期日将是第2天,依此类推 。 。

1 个答案:

答案 0 :(得分:1)

怎么样:

="Day "&(NETWORKDAYS(IF(WEEKDAY(A1,2)=7,A1-2,IF(WEEKDAY(A1,2)=6,A1-1,A1)),C1)-1)

将您当前的布局用于上一个工作日和日期。 需要工作日功能,否则星期六和星期日将获得与星期一而不是星期五相同的价值。

当然,你可以用IF - 公式包装整件事,以确保你显示"大于5天"当值大于5时。

输出:

Date     | Formula column | Last working day
--------------------------------------------
6/17/2017| Day 11         | 7/3/2017  'Weekend
6/18/2017| Day 11         | 7/3/2017  'Weekend
6/19/2017| Day 10         | 7/3/2017
6/20/2017| Day 9          | 7/3/2017
6/21/2017| Day 8          | 7/3/2017
6/22/2017| Day 7          | 7/3/2017
6/23/2017| Day 6          | 7/3/2017
6/24/2017| Day 6          | 7/3/2017  'Weekend
6/25/2017| Day 6          | 7/3/2017  'Weekend
6/26/2017| Day 5          | 7/3/2017
6/27/2017| Day 4          | 7/3/2017
6/28/2017| Day 3          | 7/3/2017
6/29/2017| Day 2          | 7/3/2017
6/30/2017| Day 1          | 7/3/2017
7/1/2017 | Day 1          | 7/3/2017  'Weekend
7/2/2017 | Day 1          | 7/3/2017  'Weekend
7/3/2017 | Day 0          | 7/3/2017