Bug de fonction qui renvoie une valeur erronée sur certaines cellules seulement
Résolu
The_Real_GRiz
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
Vaucluse Messages postés 26496 Date d'inscription Statut Contributeur Dernière intervention -
Vaucluse Messages postés 26496 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'utilise un tableau excel pour des références
Une première feuille est une liste de recettes avec dans la colonne D les ingrédients, dans la colonne D la proportion, la colonne E le numéro de référence et la F le taux d'alcool de l'ingrédient.
Les colonnes D et E sont rentrées manuellement
Les colonnes E et F sont obtenues en utilisant la fonction suivante : (exemple pour la ligne 55)
=SI(SOMMEPROD((D55=Tableau2[Produit])*1)>0;RECHERCHE(D55;Tableau2[Ingrédient];Tableau2[Degré d''alcool]);"Pas d'article")
La fonction appelle donc des valeurs rentrées manuellement dans un tableau sur la feuille 3 qui contient les références de chaque ingrédient
Mon bug est que pour certains ingrédients (en l'occurence la ligne 54)la valeur sur la feuille 1 pour l'ingrédient "vermouth otto's" renvoie la référence et le degré d'alcool de "mix concombre" qui est la dernière ligne des références. si j'ajoute une ligne de référence, les cellules buguées des ingrédients renverront les valeurs de la dernière ligne des références
c'est également le cas pour quelques autres ingrédients
Cependant les valeurs semblent correctes pour les autres lignes...
Je suis incapable de comprendre pourquoi...
J'utilise un tableau excel pour des références
Une première feuille est une liste de recettes avec dans la colonne D les ingrédients, dans la colonne D la proportion, la colonne E le numéro de référence et la F le taux d'alcool de l'ingrédient.
Les colonnes D et E sont rentrées manuellement
Les colonnes E et F sont obtenues en utilisant la fonction suivante : (exemple pour la ligne 55)
=SI(SOMMEPROD((D55=Tableau2[Produit])*1)>0;RECHERCHE(D55;Tableau2[Ingrédient];Tableau2[Degré d''alcool]);"Pas d'article")
La fonction appelle donc des valeurs rentrées manuellement dans un tableau sur la feuille 3 qui contient les références de chaque ingrédient
Mon bug est que pour certains ingrédients (en l'occurence la ligne 54)la valeur sur la feuille 1 pour l'ingrédient "vermouth otto's" renvoie la référence et le degré d'alcool de "mix concombre" qui est la dernière ligne des références. si j'ajoute une ligne de référence, les cellules buguées des ingrédients renverront les valeurs de la dernière ligne des références
c'est également le cas pour quelques autres ingrédients
Cependant les valeurs semblent correctes pour les autres lignes...
Je suis incapable de comprendre pourquoi...
A voir également:
- Bug de fonction qui renvoie une valeur erronée sur certaines cellules seulement
- Fonction si et - Guide
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. ✓ - Forum Excel
- Renvoie d'appel ooredoo - Forum Mobile
- Formule excel pour additionner plusieurs cellules - Guide
- Code Pour Renvoi D'appel Et Mesage - Forum telephonie fixe
1 réponse
Bonjour
1° je ne vois pas l'utilité de la fonction SOMMEPROD dans la formule
2° la fonction de RECHERCHE telle qu'elle est écrite nécessite que les champs soit classés en ordre croissant , ce qui n'est sûrement pas le cas
essayez ceci (à partir d'Excel 2007)
=SIERREUR(INDEX(Tableau2[Degré d''alcool]);EQUIV(D55;Tableau2[Ingrédient];0));"Pas d'article")
n'oubliez pas le 0 en fin du code EQUIV
crdlmnt
1° je ne vois pas l'utilité de la fonction SOMMEPROD dans la formule
2° la fonction de RECHERCHE telle qu'elle est écrite nécessite que les champs soit classés en ordre croissant , ce qui n'est sûrement pas le cas
essayez ceci (à partir d'Excel 2007)
=SIERREUR(INDEX(Tableau2[Degré d''alcool]);EQUIV(D55;Tableau2[Ingrédient];0));"Pas d'article")
n'oubliez pas le 0 en fin du code EQUIV
crdlmnt
j'avais piqué la formule dans un autre post que je ne retrouve plus, la fonction sommeprod servait à éviter les cases vides si je me souviens bien
Avec votre fonction, excel m'indique un nombre d'argument invalides
Comme il faut effectivement que les références soient classées par ordre croissant, j'ai donc appliqué un tri automatique par ordre alphabétique et le problème semble avoir disparu.
Merci encore
Quant à votre fonction, je l'ai copiée collée pour éviter les erreurs (et ne pas oublier le 0 par exemple) mais excel m'a affiché "erreur, nombre d'arguments invalides" sans me préciser quelle fonction n'a pas le bon nombre d'arguments.
auquel cas il faudrait rajouter une point virgule avant EQUIV
=SIERREUR(INDEX(Tableau2[Degré d''alcool]);;EQUIV(D55;Tableau2[Ingrédient];0));"Pas d'article")
et bien entendu si Ingredient et Degré d'alcool sont des champs à une seule colonne
voyez cet exemple
https://mon-partage.fr/f/QPj00pUj/
crdlmnt