Excel2011-按日期查找并将多个值返回到一个单元格中
我需要查找重复出现的数字,并返回数字旁边的单元格值,但仅限于同一日期。结果必须合并到同一目标单元格中 我正在Mac上使用Excel 2011。我没有Textjoin函数。但是,我找到了一个VBA UDF来查找并将多个值返回到一个单元格中。这就是我正在使用的:Excel2011-按日期查找并将多个值返回到一个单元格中,excel,vba,Excel,Vba,我需要查找重复出现的数字,并返回数字旁边的单元格值,但仅限于同一日期。结果必须合并到同一目标单元格中 我正在Mac上使用Excel 2011。我没有Textjoin函数。但是,我找到了一个VBA UDF来查找并将多个值返回到一个单元格中。这就是我正在使用的: Function MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long) 'Update 20150310 Dim rng As Range Dim xResult As
Function MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long)
'Update 20150310
Dim rng As Range
Dim xResult As String
xResult = ""
For Each rng In pWorkRng
If rng = pValue Then
xResult = xResult & " " & rng.Offset(0, pIndex - 1)
End If
Next
MYVLOOKUP = xResult
End Function
这是可行的,但只用于在一个单元格中查找值并在另一列中查找。问题是我查找的值在不同的日期重复,我只想返回给定日期的值。我在下面附上了一个我正在尝试做的示例:
请注意,所需的数据格式G2将返回数据库中两个日期的Employee 1001数据,但我只希望它返回相关日期的数据,因此我尝试将myvlookup UDF中的第一个变量设置为E2:F2,以便函数同时查找日期和员工,但函数似乎没有这样工作
G2中应显示的值为80011、80025,G3中应显示的值为80011、80030等
我希望自己有更多的时间来解决这个问题,但时间至关重要,所以我需要帮助。下面是一个模仿TEXTJOIN的UDF:
Function TEXTJOIN(delim As String, skipblank As Boolean, arr)
Dim d As Long
Dim c As Long
Dim arr2()
Dim t As Long, y As Long
t = -1
y = -1
If TypeName(arr) = "Range" Then
arr2 = arr.Value
Else
arr2 = arr
End If
On Error Resume Next
t = UBound(arr2, 2)
y = UBound(arr2, 1)
On Error GoTo 0
If t >= 0 And y >= 0 Then
For c = LBound(arr2, 1) To UBound(arr2, 1)
For d = LBound(arr2, 1) To UBound(arr2, 2)
If arr2(c, d) <> "" Or Not skipblank Then
TEXTJOIN = TEXTJOIN & arr2(c, d) & delim
End If
Next d
Next c
Else
For c = LBound(arr2) To UBound(arr2)
If arr2(c) <> "" Or Not skipblank Then
TEXTJOIN = TEXTJOIN & arr2(c) & delim
End If
Next c
End If
TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim))
End Function
作为一个数组公式,在退出编辑模式时,需要使用Ctrl-Shift-Enter而不是Enter进行确认。如果操作正确,Excel将在公式周围放置{}
=TEXTJOIN(" ",TRUE,IF((F2=B$2:B$14)*(A$2:A$14=E2),C$2:C$14,""))