Используя формулу массива, вы можете сгенерировать массив, который будет содержать либо значение третьего столбца, либо пробел в зависимости от того, следует ли включать это значение. Вы можете присоединиться к ним, используя TEXTJOIN.
TEXTJOIN является новым в Office 365; если у вас его нет, вам сначала нужно определить его как функцию таким образом (взято из MrExcel ):
Function TEXTJOIN(Delimiter As String, IgnoreBlanks As Boolean, ParamArray Text() As Variant) As String
Dim Item As Variant, V As Variant, Arr As Variant
For Each Item In Text
If VarType(Item) > 8191 Then
For Each V In Item
If Len(V) > 0 Or (Len(V) = 0 And Not IgnoreBlanks) Then TEXTJOIN = TEXTJOIN & Delimiter & V
Next
Else
TEXTJOIN = TEXTJOIN & Delimiter & Item
End If
Next
TEXTJOIN = Mid(TEXTJOIN, Len(Delimiter) + 1)
End Function
Теперь вернемся к вашей проблеме, предполагая, что ваши данные в формате A1: C9, а таблица, которую вы хотите, в F2: I5 (со строкой 2 и столбцом F, содержащим индексы), вам нужно использовать эту формулу в G3: {=TEXTJOIN(",";TRUE;IF($A$1:$A$9=$F3;IF($B$1:$B$9=G$2;$C$1:$C$9;"");""))}
Если вы не знакомы с формулами массива, имейте в виду, что для его ввода вам понадобится сочетание клавиш CTRL + SHIFT + ENTER. Затем вам нужно будет скопировать G3 и вставить его в другие ячейки таблицы (в Excel это будет сложно, если вы попытаетесь вставить в диапазон, включая ячейку, из которой вы скопировали формулу массива, поэтому вам, возможно, придется это сделать в несколько страз); и формула будет использовать правильные индексы, так как $ F3 и G $ 2 являются относительными.