Augmentez le nb de d'imbrication de la fonction SI

B

Blues

Guest
Hello,

J'aimerais savoir comment je peux augmenter le nb de fonction imbriqué dans la fonction SI ?? Pour vous donnez plus de détails,dans un colonne où les données sont classées par dates, j'aimerais pouvoir renvoyer dans une autre cellule l'information suivante : Si la cellule contenant l'information de décembre est pleine, qu'il me l'affiche, par contre si elle est vide, il faut qu'il remonte d'une case (dans ce cas novembre), afin de vérifier si celle-ci est pleine ou vide, si elle est également vide qu'il remonte encore d'une case, etc....

Je pensais utiliser la fonction SI de la manière suivante :

=SI(B31<>"";B31;SI(B30<>"";B30;SI(B29<>"";B29;SI(B28<>"";B28;SI(B27<>"";B27;SI(B26<>"";B26;SI(B25<>"";B25;SI(B24<>"";B24;SI(B23<>"";B23;SI(B22<>"";B22;SI(B21<>"";B21;SI(B20<>"";B20;))))))))

Hélas, dans cette fonction, on ne peut imbriquer que 7 autres fonctions. Ainsi je demande votre aide, afin de régler ce petit soucis. Si vous avez d'autres propositions que l'utilisation de cette fonction, je suis tout ouïe.

Merci d'avance pour ceux qui pourront m'aider, quant aux autres...... :)
Non, merci à tous. Peut-être ferons-nous avancer le smillblick.
 
C

CBernardT

Guest
Bonjour Blues et le forum

Pour imbriquer plus de 7 si tu fais la concaténation de plusieurs séries d'imbrication de si.

=SI(B31<>"";B31;SI(B30<>"";B30;SI(B29<>"";B29;SI(B28<>"";B28;SI(B27<>"";B27;SI(B26<>"";B26;SI(B25<>"";B25;SI(B24<>"";B24;SI(B23<>"";B23;SI(B22<>"";B22;SI(B21<>"";B21;SI(B20<>"";B20;))))))))
&=SI(B31<>"";B31;SI(B30<>"";B30;SI(B29<>"";B29;SI(B28<>"";B28;SI(B27<>"";B27;SI(B26<>"";B26;SI(B25<>"";B25;SI(B24<>"";B24;SI(B23<>"";B23;SI(B22<>"";B22;SI(B21<>"";B21;SI(B20<>"";B20;))))))))

Cordialement

CBernardT
 
C

CBernardT

Guest
Re

Oupss, il faut enlever le second =
ceci n'est qu'un exemple :

=SI(B31<>"";B31;SI(B30<>"";B30;SI(B29<>"";B29;SI(B28<>"";B28;SI(B27<>"";B27;SI(B26<>"";B26;SI(B25<>"";B25;SI(B24<>"";B24;SI(B23<>"";B23;SI(B22<>"";B22;SI(B21<>"";B21;SI(B20<>"";B20;))))))))
&SI(B31<>"";B31;SI(B30<>"";B30;SI(B29<>"";B29;SI(B28<>"";B28;SI(B27<>"";B27;SI(B26<>"";B26;SI(B25<>"";B25;SI(B24<>"";B24;SI(B23<>"";B23;SI(B22<>"";B22;SI(B21<>"";B21;SI(B20<>"";B20;))))))))

Salut

CBernardT
 
A

andré

Guest
Salut,

Comme tes fonctions SI sont en cascade, j'entends par là qu'Xl s'arrête dès que la première condition renvoie VRAI, tu peux concaténer tes SI par sérien de 7, et la seule limite sera dès lors le nombre de caractères de la formule, ... et encore pour cela il y a aussi desd astuces.

=SI(B31<>"";B31;
SI(B30<>"";B30;
SI(B29<>"";B29;
SI(B28<>"";B28;
SI(B27<>"";B27;
SI(B26<>"";B26;
SI(B25<>"";B25;"")))))))
&
SI(B24<>"";B24;
SI(B23<>"";B23;
SI(B22<>"";B22;
SI(B21<>"";B21;
SI(B20<>"";B20;""))))

Ândré.
Vérifie quand même le nombre de )
 
B

Blues

Guest
Je vous remercie grandement pour toutes vos réponses. Cependant, j'aimerais un ou deux petits éclaircissement :

1) Dans la méthode consistant à "chaîner" les fonctions SI, je n'arrive plus à mettre le résultat en pourcentage. Il s'obstine à me laisser les 50 décimales, et refuse de changer quoi que se soit.

2) Dans la seconde méthode (donc avec la fonction recherche), pouvez-vous m'expliquer quelle est son mode de calcul. Plus précisément ce qu'il fait : par exemple à quoi sert le 9^9. Enfin, à quoi correspond les informations entre les parenthèses ??

Mais je vous remercie déjà beaucoup pour ce que vous avez fait.

A+
 
A

andré

Guest
Salut,

Pour la première question, c'est normal, puisque la fonction CONCATENER (ou son raccourci "&") renvoie du texte.
Il te suffira de précsier que ta caconténation est un nombre en l'incluant dans une fonction CNUM(), donc : CNUM(SI(.....)&SI(....)

Pour la deuxième question, j'ai l'impression que la dernière formule de Monique n'est pas d'application à ton cas.
En effet, elle renvoie la dernière valeur numérique d'une plage, alors que d'après ta formule initiale, tu recherches la première.

L'explication de cette formule :
Elle recherche dans la plage B20:B31 une valeur égale à 9^9, soit 387.420.489
Comme elle ne la trouve pas, elle renvoie la dernière valeur testée.

Ândré.
 
B

Blues

Guest
Je continue sur ma lancée. J'aimerais que la case soit vide si le résultat de la "recherche" ne renvoit à rien. Par exemple les cases contenant les informations dans lequelle la fonction "recherche" va puiser, sont vides. J'ai mixé ces deux fonctions, mais cela ne fonctionne pas. Pensez-vous que la fonction recherche ne redirige pas directement un résultat nul, si les cases sont vides, d'où un message d'erreur du genre : #N/A

Voilà ce que j'ai utilisé : =SI(RECHERCHE(9^9;B32:B43)<>"";RECHERCHE(9^9;B32:B43);"")
 
A

andré

Guest
Resalut Blues,

Ton approche est bonne, ... mais fausse (lol)

Essaie ceci : =SI(ESTERREUR(RECHERCHE(9^9;B32:B43);"";RECHERCHE(9^9;B32:B43))

Bien que je lui préfère la suivante (plus courte) :
=SI(NB(B32:B43)=0;"";RECHERCHE(9^9;B32:B43))

Ândré.
 
B

Blues

Guest
Merci à tous les deux. Et merci à tous les forumeurs / forumeuses, qui aident constamment ceux qui en ont besoin. Esperons que nous aussi puissions de temps à autre "apporter notre pierre à l'édifice" (NDR: J'ai un doute sur l'utilisation de ce "proverbe" dans ce contexte :) ).

A+
 

cameton

XLDnaute Nouveau
Re : Augmentez le nb de d'imbrication de la fonction SI

Bonjour à tous,

je rebondi sur le sujet car je pensais y trouver la solution à mes problèmes mais finalement......non.

Dans un premier temps j'avais un problème de SI imbriqués trop nombreux....vous m'avez fourni la solution : génial.
Ensuite j'ai comme Blues étais confronté au problème des cellules qui ne voulaient plus passer en pourcentage. J'ai donc suivi le conseil de André en incluant une fonction CNUM....mais là c'est le drame! Excel refuse d'appliquer la fonction. J'ai pourtant respecter il me semble toutes les parenthèse et compagnie.

Je vous joins la fonction en bas de texte, si l'un de vous sait de quoi vient le problème je suis preneur!

Merci d'avance.

Cameton

=cnum(SI(ESTERREUR(SI($E7<>0;($E7-F7)/F7;SI($F7<>0;($F7-G7)/G7;SI($G7<>0;($G7-H7)/H7;SI($H7<>0;($H7-I7)/I7;SI($I7<>0;($I7-J7)/J7;SI($J7<>0;($J7-K7)/K7;""))))))&SI($K7<>0;($K7-L7)/L7;SI($L7<>0;($L7-M7)/M7;SI($M7<>0;($M7-N7)/N7;"-"))));"-";SI($E7<>0;($E7-F7)/F7;SI($F7<>0;($F7-G7)/G7;SI($G7<>0;($G7-H7)/H7;SI($H7<>0;($H7-I7)/I7;SI($I7<>0;($I7-J7)/J7;SI($J7<>0;($J7-K7)/K7;""))))))&SI($K7<>0;($K7-L7)/L7;SI($L7<>0;($L7-M7)/M7;SI($M7<>0;($M7-N7)/N7;"-")))))
 

eugenie2305

XLDnaute Nouveau
Bonjour,

Je suis tombée sur ce poste car j'ai le même souci concernant le format de ma cellule lorsque j'utilise la concatenation de si.

Ma formule est la suivante :
=SI(ET(SOMME(H864;H865:H867)>0;SOMME(H864;H865:H867)<5001);3%;SI(ET(SOMME(H864;H865:H867)>=5001;SOMME(H864;H865:H867)<10001);6%;SI(ET(SOMME(H864;H865:H867)>=10001;SOMME(H864;H865:H867)<20001);7%;SI(ET(SOMME(H864;H865:H867)>=20001;SOMME(H854;H865:H867)<30001);9%))))&SI(SOMME(H864;H865:H867)>=30001;10%;0)

Somme(H864;H865:867) = 110 093

Le résultat à obtenir est donc 10%

Or, le résultat obtenu est : 0.090.1

Le format de ma celle est en POURCENTAGE

J'ai essayé de mettre CNUM() en début de formule sans oublier la parenthèse de fin mais lorsque j'applique la formule, VALEUR# apparaît.

J'ai remarqué que si j'enlève &SI(SOMME(H864;H865:H867)>=30001;10%;0) de ma formule initiale le calcul est bon et le format aussi.

Je pense donc qu'il y a un souci avec la concaténation.

Auriez-vous SVP une solution ?

Merci beaucoup par avance pour votre aide.

Belle journée !
 

Dugenou

XLDnaute Barbatruc
Bonjour,
Il serait bien plus pratique et simple d'utiliser un tableau à deux colonnes : la premiere avec les valeurs de 0 à 30 000 et la seconde avec le pourcentage correspondant et une fonction rechercheV (voyez l'aide à se sujet ou joignez un fichier exemple).
Cordialement
 

Discussions similaires

Réponses
26
Affichages
1 K

Statistiques des forums

Discussions
314 450
Messages
2 109 724
Membres
110 552
dernier inscrit
jasson