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 !
A voir également:
- Nombre de fonctions CHERCHE imbriquées
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Nombre de page - Guide
- Nombre de caractères word - Guide
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? ✓ - Forum Excel
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.
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
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 ?
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 !
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 !
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 !
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.
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.