У меня есть лист Excel из разных футбольных команд и их отрядов, а также информация об отдельных игроках. То, что я пытаюсь сделать, - из моей таблицы объединить определенные ячейки и поместить эти данные в ячейку в более простой таблице, чтобы другие пользователи могли, например, показать, какие игроки ранены в настоящее время во всех командах. Я объясню:Конкатенация определенных ячеек из столбца на основе двух условий
F_Team | Player | Injured
Liverpool Coutinho 0
Liverpool Benteke 1
Liverpool Sturridge 1
Man U Rooney 1
Chelsea Sterling 0
Так что в моей другой таблице это выглядит следующим образом
F_Team | Players Injured
Liverpool Benteke, Sturridge
Man U Rooney
Таким образом, данные могут быть сгруппированы в отдельные команды, я просто застрял, пытаясь объединить ее должным образом.
Я пробовал использовать этот VBA, но все, что он возвращается с #NAME?
, и я не знаю почему, и я не знаю, правильно ли я делаю.
Function ConcatenateIf(CriteriaRange As Range, criteriarange2 As Range, _
Condition As Variant, condition2 As Variant, ConcatenateRange As Range, _
Optional Separator As String = ",") As Variant 'Update 20150414
Dim xResult As String
On Error Resume Next
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 And criteriarange2 = condition2 Then
xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
End If
Next i
If xResult <> "" Then
xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function
И формула я использую:
=CONCATENATEIF($D$2:$D$20000, $L$2:$L$20000, Z2, 1, $E$2:$E$20000)
Колонка D является F_Team Колонка Е Игрок Колонка L травмируется Колонка Z является то, что F_Team является матч против Колонка D
Спасибо за это. Сейчас у меня это работает. Спасибо – theWolf
@theWolf добро пожаловать, рад, что это помогло :) –