Bonsoir,
En restant avec la matricielle, une solution qui peut faire gagner un peu de temps de recalcul consiste à nommer (lorsque c'est possible) les formules.
Dans ton cas, ça peut donner ceci :
Insertion - Nom - Définir :
Base2009 :
Fait référence à :
=DECALER('2009'!$A$3:$S$3;0;0;NBVAL('2009'!$A:$A)-1)
Base2010 :
Fait référence à :
=DECALER('2010'!$A$3:$S$3;0;0;NBVAL('2010'!$A:$A)-1)
Codes_2009 :
Fait référence à :
=DECALER('2009'!$A$3;0;0;NBVAL('2009'!$A:$A)-1)
Codes_2010 :
Fait référence à :
=DECALER('2010'!$A$3;0;0;NBVAL('2010'!$A:$A)-1)
Recherche_2009 :
Fait référence à :
=RECHERCHEV('Nouveau tableau'!$A2;Base2010;COLONNE();FAUX)
Recherche_2010 :
Fait référence à :
=RECHERCHEV('Nouveau tableau'!$A2;Base2010;COLONNE();FAUX)
Ensuite, en B2, ta formule deviens :
=SI($A2="";"";SI(NB.SI(Codes_2009;$A2)=0;Recherche_2009;Recherche_2010))
à recopier vers le bas et vers la droite jusqu'en colonne R
Il faut adapter un peu pour les colonnes S et T
Vois le fichier joint.
Je te laisse le tester en grandeur réelle.
@+