Excel年 - 周组合计算

时间:2015-05-18 17:04:22

标签: excel vba date excel-vba formula

我目前正在制作一个excel模型,其中日期是它的一个重要方面。然而,由于信息来自不同的来源,它有时以这样的方式构造,使得它不现实。 添加周或减去它们时,我对计算年和周组合有问题。 起始数据如下所示:

yyyyww (example: 201525, year 2015 week 25)

现在,如果我想添加例如3周,我可以通过添加3来做到这一点,结果是201528.但是当涉及到201552(有时是yyyy53)时,我需要计算到2016年更加困难。

在计算时间,2014年或更低时,也是如此。有谁知道或有解决方案吗?也许在VBA?还是一个公式技巧?

1 个答案:

答案 0 :(得分:3)

a formula to add 1 to your week number format looks like this:

=YEAR(DATE(LEFT(A2, 4), 1, 1) + MID(A2, 5, 2) * 7) * 100 +
 WEEKNUM(DATE(LEFT(A2, 4), 1, 1) + MID(A2, 5, 2) * 7)

it will create a sequence of week numbers that includes: 201452 => 201453 => 201502

  • LEFT(A2, 4) and MID(A2, 5, 2) extract the year and week components
  • date(year, 1, 1) + (week - 1) * 7 converts that to an actual Excel Date value,
    e.g. 201502 => 2015-01-08
  • date(year, 1, 1) + week * 7 will create a date that is 1 week after the "current" date
  • year(date) * 100 + weeknum(date) converts that date back to yyyyww format