Если вы используете Excel 2007, вы можете использовать такие вещи, как SUMPRODUCT и IFERROR, но вы не можете использовать AGGREGATE и, конечно, вы не можете использовать TEXTJOIN.
Поэтому я думаю, что маловероятно, что существуетаккуратное решение этого.Я бы сделал что-то вроде этого:
К сожалению, вам понадобятся некоторые вспомогательные столбцы.Чтобы определить, сколько вспомогательных столбцов вам понадобится, вы можете использовать формулу, подобную этой (вводится как формула массива), чтобы найти максимальное число чисел на код
=MAX(FREQUENCY(IF((D2:D100<>"OK")*(A2:A100<>""),A2:A100),A2:A100))
Затем, если у вас есть способтабулирования уникальных кодов, вы можете использовать SMALL для извлечения разных чисел для каждого кода, которые не имеют ОК против них, и (поскольку функция сцепления, доступная в Excel 2007, не работает с массивами), объединить их с предыдущим результатом, начиная сH2:
=IFERROR(IF(G2="","",G2&" - ")&SMALL(IF(($D$2:$D$100<>"OK")*($A$2:$A$100=$F2),$B$2:$B$100),COLUMNS($A:A)),G2)
![![enter image description here](https://i.stack.imgur.com/rvgdP.png)
Идентификатор пользователя можно добавить, начиная с M2
=IFERROR(IF(L2="","",L2&" - ")&SMALL(IF(($D$2:$D$100<>"OK")*($A$2:$A$100=$F2),$B$2:$B$100),COLUMNS($A:A))
&" ("&VLOOKUP(SMALL(IF(($D$2:$D$100<>"OK")*($A$2:$A$100=$F2),$B$2:$B$100),COLUMNS($A:A)),$B$2:$C$100,2,FALSE)&")",L2)
![enter image description here](https://i.stack.imgur.com/b3n51.png)