si je découpe la formule
je fais ici un tableau comportant en Col1 la ligne et en Col2 la valeur de la colonne C, puis de la colonne D, les 2 étant superposés
=sort(unique(query(arrayformula(
{row(A!C3:C9)\A!C3:C9;row(A!D3:D9)\A!D3:D9})
je sélectionne ensuite la colonne 2 (les données, pas les n° de ligne en Col1)
;"select Col2
quand le numéro de ligne correspond à la liste des n° de ligne issue d' une recherche du nom&prénom onglet B dans la base de données onglet A
where Col1 matches
'"&textjoin("|";true; arrayformula(if(B!A2:A<>"OK";;MATCH(B!B2:B&B!C2:C;arrayformula(A!A:A&A!B:B);0))) )&"' ")))
ta structure est complexe => la formule est complexe, mais elle fonctionne !