Alors si on regarde la formule SIERREUR(INDEX(Tableau1[[#En-têtes];[01_LANCEMENT]:[15]];1;EQUIV(récap!H17;DECALER(Tableau1[[#En-têtes];[01_LANCEMENT]:[15]];EQUIV(récap!J17;Tableau1[Codearticle];0);0);0));"")
SIERREUR permet en effet de ne rien renvoyer si pas de correspondance,
INDEX se fait sur les en-têtes du tableau des opérations génériques, ce qui permet de savoir quel n° d'opération générique on a pour faire la correspondance
Le souci de base c'est qu'on ne sait pas où chercher pour avoir la correspondance normalement, chaque article est sur une ligne différente.
le DECALER sert à renvoyer la bonne ligne, on part des en-tête du tableau contenant les opérations génériques, et pour savoir de combien de ligne on doit décaler la plage vers le bas, on utilise un EQUIV qui va chercher le code de l'article dans la liste des codes.
le EQUIV qui contient le DECALER cherche le n° d'opération pour avoir la correspondance.
En français on pourrait traduire par...
Donne moi le n° op générique dans les en-entêtes, ligne 1; dans la colonne où se trouve mon n° d'op; dans la liste des codes op de mon article; qui se trouve n ligne en dessous de mes en-têtes; n étant égal à la position du code de mon article dans la liste des articles, si tu n'as pas de correspondance, ne renvoie rien.
J'espère que c'est déjà plus compréhensible...