Используя формулу массива, вы можете создать массив, который будет содержать либо значение третьего столбца, либо пустое значение, в зависимости от того, следует ли включать это значение. Затем вы можете присоединиться к ним, используя 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 являются относительными.
person
Joubarc
schedule
17.01.2019