вы можете достичь этого без VBA следующим образом:
при условии данных в столбце A: E (согласно вашим скриншотам)
местов G1: =COUNTA(G2:G22)-COUNTBLANK(G2:G22)
место в G2: =IF(AND($E$2:$E$22="TRUE",COUNTIF($A$1:$A2,A2)=1),A2,"")
и заполнить
место в H2: =IF($G2<>"",MAX(H$1:H1)+1,"")
и заполнить
место в I2: =MAX(IF($A$2:$A$22=A2,IF($E$2:$E$22="TRUE",IF(COUNTIF($A$1:$A2,A2)=1,$B$2:$B$22,""),""),""))
, оставьте ячейку, нажав CTRL + SHIFT + ENTER, чтобы получить формулу массива.скопируйте его и вставьте из ячейки внизу в конец строки данных
место в K2: =IF(ROWS(K$1:K1)<$G$1,INDEX($G$2:$G$22,MATCH(ROWS(K$1:K1),$H$2:$H$22,0)),"")
и заполните
местов L2: =IF(ROWS(K$1:K1)<$G$1,INDEX($I$2:$I$22,MATCH(ROWS(K$1:K1),$H$2:$H$22,0)),"")
и заполните
, это даст вам результат согласно следующему изображению
со списком разыскиваемых в столбцах K: L
конечно, вы должны изменить все 22
индексов строк на ваши фактические данные индекс последней строки