Вы также задавали этот вопрос на форумах Google. Я разместил свое решение там, потому что именно там я обычно делюсь своими усилиями, но Player0 предложил мне также публиковать здесь, поэтому я здесь.
На листе с образцами на вкладке MK.Solution вы найдете эту формулу. Я думаю, что он должен получить то, что вы ищете, и работать над большими наборами данных. Я новичок в S.E. поэтому я не совсем уверен в протоколе включения формул листов, поэтому сейчас я просто вставлю его и, надеюсь, скоро это выясню.
=ARRAYFORMULA(QUERY({SPLIT(UNIQUE(B2:B&"-"&INT((COUNTIFS(B2:B,B2:B,ROW(B2:B),"<="&ROW(B2:B))-1)/5)),"-"),TRANSPOSE(SUBSTITUTE(TRIM(QUERY(IF(B2:B&"-"&INT((COUNTIFS(B2:B,B2:B,ROW(B2:B),"<="&ROW(B2:B))-1)/5)=TRANSPOSE(UNIQUE(B2:B&"-"&INT((COUNTIFS(B2:B,B2:B,ROW(B2:B),"<="&ROW(B2:B))-1)/5))),C2:C&",",),,9^99)&"|"),", |",""))},"select Col1,Col3 where Col1<>'1' order by Col1"))
Cheers,
Matt