Formule =SI (exclure formule des cellules) ?

Bonjour,

Après un certain temps de recherche, je trouve pas de réponse à mon problème :

Voici la formule toute simple : =SI(E25<>0;E25;SI(E24<>0;E24;SI(E22<>0;E22;SI(E20<>0;E20;"0.00"))))

Elle a pour but d'afficher la valeur d'une cellule (des chiffres) si elle contient des chiffres, sinon elle affiche la cellule suivante et ainsi de suite.

Mon souci, c'est que les cellules E24, E22, E20 contiennent des formules et donc ça marche moins bien…

Bonjour

Un fichier est TOUJOURS le bienvenu

Mettre à jour votre version d'Excel...

=Si(E25>0;E25;si(E24>0;E24;si(E22>0;E22;Si(E20>0;E20;""))))

A+ François

Bonjour,

et vos formules renvoient du texte ? Si elles renvoient parfois des chiffres, ça va compliquer les choses.

Normalement votre formule vérifie le résultats des formules contenues dans E24, E22 et E20.
Donc si souci il y a, ça serait plutôt sur les formules de départs.
Vérifier si les nombres renvoyés par les formules ne sont pas en format texte.

Si le but est de garder le premier des chiffres mis en alternance avec du texte et qu'il y a une longue plage, alors on peut faire ceci pour éviter de multiples imbrications de SI ;

=INDEX($E$20:$E$25;EQUIV(1;ESTNUM($E$20:$E$25)*1;0))

Sauver en matriciel sur les Excel antérieurs à 365.

Bonjour

D'après ce que je comprends il faut exclure les 0 et les "Textes" + commencer par la ligne 25, puis 24, 22 et 20. Les formules EQUIV classiques commenceront par le 20 et non le 25. d'autre part il ne faut pas prendre la valeur des lignes 21 et 23.

Par exemple avec SI.CONDITIONS et N pour convertir les textes en 0

=SI.CONDITIONS(
N(E25)<>0;E25;
N(E24)<>0;E24;
N(E22)<>0;E22;
N(E20)<>0;E20;
VRAI;0)

ou avec ASSEMB.V pour mettre la 25 d'abord et la 20 en dernier

=LET(
plage ; ASSEMB.V(E25;E24;E22;E20) ;
diff0 ; N(plage)<>0 ;
RECHERCHEX(VRAI;diff0;plage;0))

Stéphane

D'après ce que je comprends il faut exclure les 0 et les "Textes" + commencer par la ligne 25, puis 24, 22 et 20.

Possible oui, alors on peut aussi procéder comme ceci ;

=INDEX($E$20:$E$25;MAX((ESTNUM($E$20:$E$25)*($E$20:$E$25<>0))*(LIGNE($E$20:$E$25)-19)))

Sauf que ça n'exclut pas les lignes 21 et 23, alors j'utiliserais une plage nommée.

Pour exclure les lignes 21 et 23 on doit pouvoir utiliser cette formule dans les versions un peu "anciennes" d'Excel

INDEX(
  INDEX(E$20:E$25;{1;3;5;6});
  MAX(
    ESTNUM(INDEX(E$20:E$25;{1;3;5;6}))*
    (INDEX(E$20:E$25;{1;3;5;6})<>0)*
    {1;2;3;4}
  )
)

Stéphane

Les deux solutions Stéphane et Doux Rêveur fonctionne parfaitement merci.

Merci du retour

si la proposition de @Doux Rêveur fonctionne c'est que le contenu des lignes 21 et 23 ne vous importe pas.
Ma formule est donc inutile car trop complexe

Vous n'indiquez pas votre version d'Excel ("Français", ce n'est pas une version) si vous disposez de la fonction RECHERCHEX, vous pouvez utiliser

=RECHERCHEX(1;ESTNUM(E20:E25)*(E20:E25<>0);E20:E25;0;;-1)

Le -1 en 6e argument est pour indiquer de rechercher le dernier nombre non nul (et non le premier par défaut).

Le 0 en 4e argument est pour renvoyer 0 si aucune cellule ne rempli les conditions

Stéphane

Rechercher des sujets similaires à "formule exclure"