Nombre de fonctions CHERCHE imbriquées
Résolu
identifiant-comment
Messages postés
351
Statut
Membre
-
identifiant-comment Messages postés 351 Statut Membre -
identifiant-comment Messages postés 351 Statut Membre -
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 !
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 !
Configuration: Windows XP Internet Explorer 7.0
8 réponses
-
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. -
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 -
(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-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)))
pourra s'écrire
=SI(A9=Params!$D$8;SI(SOMME(NON(ESTERREUR(CHERCHE(B9;MatH)))*1);INDEX(MatA; MAX(NON(ESTERREUR(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(ESTERREUR(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 ? -
Ah, oui, je le note !
Là, on est jeudi, 19h30 et veille de long WE... Alors on verra lundi matin sans fautes ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 ! -
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 ! -
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. -
Vous avez raison, ça relevait des sciences divinatoires... Et j'ai trouvé l'erreur ! :)
Merci pour votre aide !