Re : Somme prod et texte
Bonsoir frusciantefan,
En remplissant ton tableau avec cet exemple ...
Voici ce que fait la formule en E2 en la décortiquant:
Deux fonctions sont utilisées ici, INDEX() et EQUIV()
INDEX() renvoie la valeur d’un élément d’un tableau sélectionné à partir des index de numéros de ligne et de colonne.
Syntaxe: INDEX(
matrice;
no_lig;
no_col)
Appliquée à ton fichier: matrice est la plage de cellules
E$87:E$104
no_lig va être calculé grâce à la fonction
EQUIV()
no_col est égal à
1, car on ne lit ici qu'une colonne à la fois, pas besoin de calculer ce numéro de colonne.
Concernant la fonction EQUIV(), extrait de l'aide Excel:
La fonction EQUIV recherche un élément spécifique dans une plage de cellules, puis renvoie la position relative de l’élément dans la plage.
Par exemple, si la plage A1:A3 contient les valeurs 5, 25 et 38, la formule
=EQUIV(25,A1:A3,0)
renvoie le nombre 2, car le deuxième élément de la plage est 25.
La fonction EQUIV renvoie la position de la valeur équivalente dans l’argument matrice_recherche et non la valeur en elle-même. Par exemple, EQUIV("b".{"a","b","c"};0) renvoie 2, c’est-à-dire la position relative de « b » dans la matrice {"a","b","c"}.
Syntaxe: EQUIV(
valeur_cherchée,
matrice_recherche,
[type])
Appliquée à ton fichier:
valeur_cherchée: $A2&$B2&$C2&$D2
Ici je cherche la chaîne de caractères qui est la concaténation des cellules A à C de la ligne2, par exemple je vais cherche dans le tableau la chaîne "CADREFORFAIT HEUREANNUALISE0.8"
matrice_recherche: $A$87:$A$104&$B$87:$B$104&$C$87:$C$104&$D$87:$D$104
Un peu la même chose que la ligne ci-dessus mais concernant l'ensemble du tableau de A87 à D104. Cette partie de la formule renvoie une matrice composée de la concaténation des 4 colonnes ligne à ligne du tableau, soit:
{"CADREFORFAIT HEUREHEBDOMADAIRE0.9";"CADREFORFAIT HEUREHEBDOMADAIRE0.8";"CADREFORFAIT HEUREHEBDOMADAIRE0.6";"CADREFORFAIT HEUREHEBDOMADAIRE0.5";"CADREFORFAIT HEUREANNUALISE0.9";
"CADREFORFAIT HEUREANNUALISE0.8";"CADREFORFAIT HEUREANNUALISE0.6"
... etc .... ;"MENSUELSANNUALISE0.5"}
C'est à l'intérieur de cette matrice que la fonction EQUIV() va chercher la position de la chaîne recherchée.
Le dernier argument de la fonction EQUIV() peut-être 1, -1, ou 0, ici j'ai mis 0 pour indiquer que je voulais une correspondance exacte.
Dans cet exemple, la fonction EQUIV() renvoie 6, c'est à dire que la chaîne recherchée se trouve en 6ème position dans la matrice (chaîne mise en bleu ci-dessus, qui est bien la 6ème)
La fonction INDEX() du début va donc chercher dans le tableau E$87:E$104, la 6ème position, et renvoyer 39h
Voilà frusciantefan, j'espère que ces explications pourront t'aider.
Bonne soirée à toi,
mth