excel中如何判断日期在这个日期区间内并返回对应的数值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel中如何判断日期在这个日期区间内并返回对应的数值?相关的知识,希望对你有一定的参考价值。

输入以下公式

=LOOKUP(1,0/((A$2:A$3<=E2)*(B$2:B$3>=E2)),C$2:C$3)

详见附图示例

参考技术A

=SUMIFS(C:C,A:A,"<="&E1,B:B,">="&E1)

如图输入公式

参考技术B

如图,F1单元格输入公式=SUMPRODUCT((E1>=A2:A10)*(E1<=B2:B10)*C2:C10)

公式预设数据到第10行,可自行依表格实际进行修改。

示例

用VBA筛选日期区间

以Sheet1 B5单元格作为标准,Sheet2 AC列所对应的日期作为目标,将日期大于标准值的数据删掉(留下小于或等于),怎么设计宏语句?

答:不确定你说的删除是清除单元格数据还是删除整行。我暂且以删除整行为例。见代码:

Sub Demo()
    Dim StandardDate As Date
    Dim LastRow As Long
    Dim i As Long
    StandardDate = Sheets("Sheet1").Range("B5")
    With Sheets("Sheet2")
        LastRow = .Range("AC" & Cells.Rows.Count).End(xlUp).Row
        For i = LastRow To 2 Step -1
            If .Cells(i, "AC") > StandardDate Then
                .Cells(i, "AC").EntireRow.Delete
            End If
        Next i
    End With
End Sub

参考技术A Sub 删除记录()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
n = Range("AC65536").End(3).Row
Sheets("sheet1").[B5].NumberFormatLocal = "mm/dd/yyyy"
Columns("AC:AC").NumberFormatLocal = "mm/dd/yyyy" '强制把sheet1中的B5单元格格式和sheet1中的AC列定义为日期型,若它们已经是日期型的,可以删除这两行。
For i = 2 To n
If Cells(i, 29) > Sheets("sheet1").[B5] Then Rows(i).Delete
Next i
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

参考技术B Sub test()
Dim mytemp, myrow
mytemp = Sheet1.Range("B5")
myrow = Range("AC65536").End(xlUp).Row
For i = myrow To 2 Step -1
    If Range("AC" & i) > mytemp Then
        Rows(i).Delete
    End If
Next
End Sub

以上是关于excel中如何判断日期在这个日期区间内并返回对应的数值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在excel里输入日期,自动跳出对应的节日

EXCEL中如何判断一个时间区间是不是在另一个时间区间内?

用VBA筛选日期区间

js 日期比较大小,js判断日期是否在区间内,js判断时间段是否在另外一个时间段内

在excel中如何将输入的数字自动转换为日期

JS 如何判断一个数字在某一个区间内