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

时间:2016-06-21 23:42:02

标签: excel-2010 concatenation criteria dynamic-values

我有一张工作表我试图根据= TODAY()

连接动态文本值

所以我有B3:B1000是用户将在文本中输入的字段。 D3:D1000是用户输入填写日期的地方.I3 = TODAY()

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

我还需要一个“,”

的分隔符

1 个答案:

答案 0 :(得分:0)

在一些跟踪错误和更深入的搜索之后让它工作:)

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

ErrHandler:     ConcatenateIf = CVErr(xlErrValue) 结束功能

然后使用此连接函数= ConcatenateIf(D3:D1000,I3,B3:B1000,“,”)