根据 excel 中的条件连接动态文本值

Concatenate dynamic text values based on criteria in excel

我有一个工作表,我正在尝试根据 =TODAY()

连接动态文本值

所以我将 B3:B1000 作为用户输入文本的字段。 D3:D1000 是用户输入他们填写的日期的地方。I3 是 =TODAY()

如何根据 D3:D1000 = I3 中的日期连接 B3:B1000 中的文本值?并且该串联是否始终基于 I3 更新?

我还需要一个分隔符“,”

经过一些尝试和错误以及更深入的搜索后,它开始工作了:)

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, _
    ConcatenateRange As Range, Optional Separator As String = ",") As Variant
Dim i As Long
Dim strResult As String
On Error GoTo ErrHandler
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        strResult = strResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If strResult <> "" Then
    strResult = Mid(strResult, Len(Separator) + 1)
End If
ConcatenateIf = strResult
Exit Function

错误处理程序: ConcatenateIf = CVErr(xlErrValue) 结束函数

然后使用这个连接函数 =ConcatenateIf(D3:D1000,I3,B3:B1000,", ")