Nombre de fonctions CHERCHE imbriquées

Résolu/Fermé
identifiant-comment Messages postés 341 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 mars 2017 - 30 avril 2009 à 15:04
identifiant-comment Messages postés 341 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 mars 2017 - 4 mai 2009 à 14:02
Bonjour,

Savez-vous combien de fois on peut utiliser la fonction CHERCHE dans une formule ?

Dans la formule qui suit, la sixième et dernière occurrence de CHERCHE est signalée comme erreur. Je n'ai fait pourtant que copier la formule précédente...

=SI(A9=Params!$D$8;SI(SOMME(NON(ESTERREUR(CHERCHE(B9;'[Ref-cas-test-ProjetX-v0.6.xls]REF'!$H$19:$H$868)))*1);INDEX('[Ref-cas-test-ProjetX-v0.6.xls]REF'!$A$1:$A$868;MAX(NON(ESTERREUR(CHERCHE(B9;'[Ref-cas-test-ProjetX-v0.6.xls]REF'!$H$19:$H$868)))*LIGNE($H$19:$H$868)));Params!$D$19);SI(A9=Params!$D$9;SI(SOMME(NON(ESTERREUR(CHERCHE(B9;'[Ref-cas-test-ProjetX-v0.6.xls]REF'!$J$19:$J$868)))*1);INDEX('[Ref-cas-test-ProjetX-v0.6.xls]REF'!$A$1:$A$868;MAX(NON(ESTERREUR(CHERCHE(B9;'[Ref-cas-test-ProjetX-v0.6.xls]REF'!$J$19:$J$868)))*LIGNE($J$19:$J$868)));Params!$D$19);SI(A9=Params!$D$10;SI(SOMME(NON(ESTERREUR(CHERCHE(B9;'[Ref-cas-test-ProjetX-v0.6.xls]REF'!$F$19:$F$868)))*1);INDEX('[Ref-cas-test-ProjetX-v0.6.xls]REF'!$A$1:$A$868;MAX(NON(ESTERREUR(CHERCHE(B9;'[Ref-cas-test-ProjetX-v0.6.xls]REF'!$F$19:$F$868)))*LIGNE($F$19:$F$868)));Params!$D$19);0)))

Merci pour votre aide !

8 réponses

Raymond PENTIER Messages postés 58440 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 mai 2024 17 112
30 avril 2009 à 19:15
Bonjour.
1) La formule écrite ci-dessus comporte 855 caractères, alors qu'Excel n'en accepte que 255.
2) Les versions d'Excel antérieures à 2007 n'acceptent effectivement que 7 niveaux d'imbrication dans les formules.
3) Par ailleurs veuille noter que
=Si(ESTERREUR(calcul);"à revoir";résultat)
est équivalent à
=SI(NON(ESTERREUR(calcul);résultat;"à revoir"))
et fait gagner en mémoire, en vitesse d'exécution, en fiabilité et en lisibilité !
Cordialement.
1
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 217
30 avril 2009 à 18:50
Re,

Le nombre maxi de fonctions (quelles qu'elles soient) imbriquées est de 7.
Là en l'occurence il s'agit des SI
eric
0
Raymond PENTIER Messages postés 58440 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 mai 2024 17 112
30 avril 2009 à 19:18
(suite)

Ta formule est inutilement compliquée à lire ; il faut la rendre plus lisible. Tu commences par nommer tes 4 plages
MatA pour '[Ref­-cas-test-ProjetX-v0.6.xls]REF'!$A$1:$A$868,
MatF pour '[Ref-­cas-test-ProjetX-v0.6.xls]REF'!$F$19:$F$868,
MatH pour '[Ref-­cas-test-ProjetX-v0.6.xls]REF'!$H$19:$H$868,
MatJ pour '[Ref-­cas-test-ProjetX-v0.6.xls]REF'!$J$19:$J$868.
Du coup ta formule
=SI(A9=Params!$D$8;SI(SOMME(NON(ESTERREUR(CHERCHE(B9;'[Ref-c­as-test-ProjetX-v0.6.xls]REF'!$H$19:$H$868)))*1);INDEX('[Ref­-cas-test-ProjetX-v0.6.xls]REF'!$A$1:$A$868;MAX(NON(ESTERREU­R(CHERCHE(B9;'[Ref-cas-test-ProjetX-v0.6.xls]REF'!$H$19:$H$8­68)))*LIGNE($H$19:$H$868)));Params!$D$19);SI(A9=Params!$D$9;­SI(SOMME(NON(ESTERREUR(CHERCHE(B9;'[Ref-cas-test-ProjetX-v0.­6.xls]REF'!$J$19:$J$868)))*1);INDEX('[Ref-cas-test-ProjetX-v­0.6.xls]REF'!$A$1:$A$868;MAX(NON(ESTERREUR(CHERCHE(B9;'[Ref-­cas-test-ProjetX-v0.6.xls]REF'!$J$19:$J$868)))*LIGNE($J$19:$­J$868)));Params!$D$19);SI(A9=Params!$D$10;SI(SOMME(NON(ESTER­REUR(CHERCHE(B9;'[Ref-cas-test-ProjetX-v0.6.xls]REF'!$F$19:$­F$868)))*1);INDEX('[Ref-cas-test-ProjetX-v0.6.xls]REF'!$A$1:­$A$868;MAX(NON(ESTERREUR(CHERCHE(B9;'[Ref-cas-test-ProjetX-v­0.6.xls]REF'!$F$19:$F$868)))*LIGNE($F$19:$F$868)));Params!$D­$19);0)))
pourra s'écrire
=SI(A9=Params!$D$8;SI(SOMME(NON(ESTERREUR(CHERCHE(B9;MatH)))*1);INDEX(MatA; MAX(NON(ESTERREU­R(CHERCHE(B9;MatH)))*LIGNE($H$19:$H$868)));Params!$D$19);SI(A9=Params!$D$9;­SI(SOMME(NON(ESTERREUR(CHERCHE(B9;MatJ)))*1);INDEX(MatA;MAX(NON(ESTERREUR(CHERCHE(B9;MatJ)))*LIGNE($J$19:$­J$868)));Params!$D$19);SI(A9=Params!$D$10;SI(SOMME(NON(ESTER­REUR(CHERCHE(B9;MatF)))*1);INDEX(MatA;MAX(NON(ESTERREUR(CHERCHE(B9;MatF)))*LIGNE($F$19:$F$868)));Params!$D­$19);0)))
le gain est appréciable, non ?
0
identifiant-comment Messages postés 341 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 mars 2017 54
30 avril 2009 à 19:31
Ah, oui, je le note !
Là, on est jeudi, 19h30 et veille de long WE... Alors on verra lundi matin sans fautes !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
identifiant-comment Messages postés 341 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 mars 2017 54
4 mai 2009 à 09:45
Bonjour !

C'est la première fois que je nomme des plages de cellules, et je dois louper une fois, parce que ma formule ne les reconnais pas...
Vous auriez une idée ?

merci !
0
identifiant-comment Messages postés 341 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 mars 2017 54
4 mai 2009 à 12:41
Re bonjour...

Après pas mal de test j'en arrive à la conclusion suivante : j'arrive à nommer des plages de cellules, à les imbriquer dans des formules, mais dès que j'essaie de le faire pour la formule citée plus haut, cela me renvoie un résultat à 0. Je n'arrive vraiment pas à voir pourquoi.

Vivement votre retour et merci de votre aide !
0
Raymond PENTIER Messages postés 58440 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 mai 2024 17 112
4 mai 2009 à 13:29
Sans voir le fichier, ça relève des sciences divinatoires !
Assure-toi de faire une copie de fichier au format 2003 (.xls) sans macro, en modifiant les noms propres s'il y en avant de créer un lien avec https://www.cjoint.com/ et de le coller dans un procahin post.
0
identifiant-comment Messages postés 341 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 mars 2017 54
4 mai 2009 à 14:02
Vous avez raison, ça relevait des sciences divinatoires... Et j'ai trouvé l'erreur ! :)
Merci pour votre aide !
0