首页 文章

从Excel中每个会计年度的第一个星期日开始周数

提问于
浏览
1

我试图找到从2月的第一个星期日开始的会计年度的周数 . 我已经达到了这样一个程度,我可以得到每年第一天开始的周数(在我的情况下是feb) .

无法从第一个星期日开始 . 以下是我的想法 .

=IF(AND(MONTH($E2)=2,DAY($E2)=1),1,ROUNDUP(($E2-DATE(YEAR($E2)-IF(MONTH($E2)<2,1,0),2,0)+WEEKDAY(DATE(YEAR($E2)-IF(MONTH($E2)<2,1,0),2,0)))/7,0))

我希望它能在今年上周六的星期六结束 . 例如:2016年2月,周计数应从2016年第7季度开始,计数应于2017年2月2日结束 .

2 回答

  • 0

    使用此公式查找给定日期的周数:

    =IF(A1>=IF(WEEKDAY(DATE(YEAR(A1),2,1),1)=1,DATE(YEAR(A1),2,1),DATE(YEAR(A1),2,7-WEEKDAY(DATE(YEAR(A1),2,1),1)+2)),ROUNDUP((A1-IF(WEEKDAY(DATE(YEAR(A1),2,1),1)=1,DATE(YEAR(A1),2,1),DATE(YEAR(A1),2,7-WEEKDAY(DATE(YEAR(A1),2,1),1)+2))+1)/7,0),ROUNDUP((A1-IF(WEEKDAY(DATE(YEAR(A1),2,1),1)=1,DATE(YEAR(A1)-1,2,1),DATE(YEAR(A1)-1,2,7-WEEKDAY(DATE(YEAR(A1)-1,2,1),1)+2))+1)/7,0))
    

    我希望你想要这个 .

    UPDATED

    如果您想要财政季度的周数,请使用:

    =ROUNDUP(MOD(=IF(A1>=IF(WEEKDAY(DATE(YEAR(A1),2,1),1)=1,DATE(YEAR(A1),2,1),DATE(YEAR(A1),2,7-WEEKDAY(DATE(YEAR(A1),2,1),1)+2)),ROUNDUP((A1-IF(WEEKDAY(DATE(YEAR(A1),2,1),1)=1,DATE(YEAR(A1),2,1),DATE(YEAR(A1),2,7-WEEKDAY(DATE(YEAR(A1),2,1),1)+2))+1)/7,0),ROUNDUP((A1-IF(WEEKDAY(DATE(YEAR(A1),2,1),1)=1,DATE(YEAR(A1)-1,2,1),DATE(YEAR(A1)-1,2,7-WEEKDAY(DATE(YEAR(A1)-1,2,1),1)+2))+1)/7,0)),13.01),0)
    
  • 0

    我只是把它们放在一起(毫无疑问,有一种更优雅的方式可以做到这一点) . 您可以通过将其放入VBA编辑器中的 Module 来使用它,然后在工作表上使用函数 =AltWeekNumber(E2)

    Function AltWeekNumber(endDate As Range) As Date
        Dim startDate As Date
        startDate = FirstFebruarySunday(year(endDate.Value))
        If startDate > endDate Then
            startDate = FirstFebruarySunday(year(endDate.Value) - 1)
        End If
        AltWeekNumber = DateDiff("w", startDate, endDate.Value, vbSunday)
    End Function
    
    Private Function FirstFebruarySunday(year As Integer) As Date
        For i = 1 To 7
            If Weekday(DateSerial(year, 2, i)) = 1 Then
                FirstFebruarySunday = DateSerial(year, 2, i)
                Exit Function
            End If
        Next i
    End Function
    

相关问题