Excel 如何找到介于两个日期之间的值?

Excel 如何找到介于两个日期之间的值?,excel,vba,indexing,match,vlookup,Excel,Vba,Indexing,Match,Vlookup,我有一个“我要查找的值”、我的“数据”和它们落下的日期范围的键 我如何创建一个函数或VBA工具来查找与“我正试图查找的值”匹配的值,以及两个日期之间的值 我还希望将out put逗号分隔,因为可以根据日期范围从键匹配多个值 我尝试了索引函数(我想我输入的引用是错误的): 终于弄明白了,下面是代码: Sub Populate_Data() ActiveSheet.Range("$A$1:$AE$2350").AutoFilter Field:=13, Criteria1:=Array(

我有一个“我要查找的值”、我的“数据”和它们落下的日期范围的键

我如何创建一个函数或VBA工具来查找与“我正试图查找的值”匹配的值,以及两个日期之间的值

我还希望将out put逗号分隔,因为可以根据日期范围从键匹配多个值

我尝试了索引函数(我想我输入的引用是错误的):


终于弄明白了,下面是代码:

    Sub Populate_Data()


ActiveSheet.Range("$A$1:$AE$2350").AutoFilter Field:=13, Criteria1:=Array( _
        "S48", "SX3", "P49", "S25", "P28", "T50", "TBF", "TB5"), Operator:=xlFilterValues
    ActiveSheet.Range("$A$1:$AE$2350").AutoFilter Field:=10, Operator:= _
        xlFilterValues, Criteria2:=Array(0, "1/3/2020", 0, "12/31/2019")

Range("J:J,M:M,T:T").SpecialCells(xlCellTypeVisible).Copy

curName = ActiveSheet.Name

updatedsheet = curName + " 2019-2020"

ThisWorkbook.Sheets.Add

ActiveSheet.Name = updatedsheet

Range("B1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False

ActiveSheet.Range("A2:A100" & var1a).Formula = _
Replace("=B2-DAY(B2)+1{SOME_VAR}", "{SOME_VAR}", var1a)


ActiveSheet.Range("G1" & var1a).Formula = _
Replace("1/1/2019{SOME_VAR}", "{SOME_VAR}", var1a)


With Range("G1")
.AutoFill Destination:=Range("G1:G13"), Type:=xlFillMonths

End With


Range("H1").FormulaArray = "=TEXTJOIN("","",TRUE,IF($A$1:$A$53=G1,$C$1:$D$53,""""))"
Range("H1:H13").FillDown

ActiveSheet.Range("I1" & var1a).Formula = _
Replace("=SUMIFS($D$2:$D$5,$A$2:$A$5,""=""&G1){SOME_VAR}", "{SOME_VAR}", var1a)

Range("I1:I13").FillDown

Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub

您试图在G列中返回什么值?很抱歉响应延迟。我试图用键列I中的代码填充G,但这些代码出现在日期范围列E和F中。这些代码/日期的来源是列K和L。因此该函数可以工作,但我如何将匹配函数合并到该函数中,使其仅显示键中的值=指数(P$3:P$2351,小)(如果($O$3:$O$2351>=$J$1,如果($O$3:$O$2351
    Function SingleCellExtract(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Updateby20150824
    Dim I As Long
    Dim xRet As String
    For I = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(I, 1) = LookupValue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(I, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellExtract = Left(xRet, Len(xRet) - 1)
End Function
    Sub Populate_Data()


ActiveSheet.Range("$A$1:$AE$2350").AutoFilter Field:=13, Criteria1:=Array( _
        "S48", "SX3", "P49", "S25", "P28", "T50", "TBF", "TB5"), Operator:=xlFilterValues
    ActiveSheet.Range("$A$1:$AE$2350").AutoFilter Field:=10, Operator:= _
        xlFilterValues, Criteria2:=Array(0, "1/3/2020", 0, "12/31/2019")

Range("J:J,M:M,T:T").SpecialCells(xlCellTypeVisible).Copy

curName = ActiveSheet.Name

updatedsheet = curName + " 2019-2020"

ThisWorkbook.Sheets.Add

ActiveSheet.Name = updatedsheet

Range("B1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False

ActiveSheet.Range("A2:A100" & var1a).Formula = _
Replace("=B2-DAY(B2)+1{SOME_VAR}", "{SOME_VAR}", var1a)


ActiveSheet.Range("G1" & var1a).Formula = _
Replace("1/1/2019{SOME_VAR}", "{SOME_VAR}", var1a)


With Range("G1")
.AutoFill Destination:=Range("G1:G13"), Type:=xlFillMonths

End With


Range("H1").FormulaArray = "=TEXTJOIN("","",TRUE,IF($A$1:$A$53=G1,$C$1:$D$53,""""))"
Range("H1:H13").FillDown

ActiveSheet.Range("I1" & var1a).Formula = _
Replace("=SUMIFS($D$2:$D$5,$A$2:$A$5,""=""&G1){SOME_VAR}", "{SOME_VAR}", var1a)

Range("I1:I13").FillDown

Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub