新年快乐!
我有一个装满开始-结束日期的 Excel ( A2:B7 )。我的兴趣是尝试在一个时间间隔内获得独特的日子。
我进行了一项研究,但似乎找不到任何解决方案,大多数主题都与在单个列中搜索独特的日子有关。但我的兴趣是在开始日期和结束日期(A2:B7)的间隔内获得唯一的日子
我以 Excel 为例(如下),预期结果在 F8 行。我还制作了一个侧历作为示例(标记为绿色的天数是该功能应该计算的天数)。
计算日期范围内的唯一天数
由于我对 Excel 的了解有限,我不知道如何使用函数获得此结果。
任何人都可以花时间尝试帮助我弄清楚如何获得这个结果?
您可以使用 VBA 函数来完成它。下面的函数计算给定开始日期和结束日期之间的唯一天数。它将它们作为参数。它使用字典从每一行获取日期。然后删除不在条件中的日期。最后,它返回唯一日期的数量。
Function UniqueDatesBetween(startd As Range, endd As Range) As Integer
Dim d As Object
Dim lrow As Integer
Dim sdate, edate As Date
'Create a dictionary
Set d = CreateObject("scripting.dictionary")
'Get last row of column A
lrow = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To lrow
'Get start and end dates for each row
sdate = Range("A" & x).Value
edate = Range("b" & x).Value
While sdate <= edate
'Add dates into the dictionary
d(sdate) = sdate
sdate = sdate + 1
Wend
Next x
For Each vdate In d
'Remove date if not in the range criteria
If Not (vdate >= startd And vdate < endd) Then
d.Remove vdate
End If
Next vdate
'Get the number of unique days
UniqueDatesBetween = d.Count
End Function
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句