Formules conditionnelles Excel

Résolu
Bonjour,

Je bataille avec une formule conditionnelle sous excel. C'est pourtant une formule toute bête...
Je souhaite faire une opération en fonction d'une période préalablement selctionner à l'aide d'une Recherche V et d'une liste déroulante. Sachant qu'il y a 12 périodes j'ai rentrée11 formules "SI" à la suite. Ma formule bug à partir de la 6ème formules: si(B4=1;C14-E14;si(B4=2;C14-(E14+F14);si(B4=3;C14-E14+F14+G14);si(B4=4;C14-(E14+F14+G14+H14);si(B4=5;C14-(E14+F14+G14+H14+I14);si(B4=6;c14-(E14+F14+G14+H14+I14+J14

Quelqu'un peut me dire pourquoi ça ne fonctionne pas?

Merci d'avance!
Configuration: Windows XP
Internet Explorer 7.0

23 réponses

Résumé de la discussion

Une formule conditionnelle sous Excel, destinée à effectuer une opération selon une période préalablement sélectionnée via une RechercheV et une liste déroulante, plante à partir de la sixième conditionnelle enchaînée. Plusieurs participants suggèrent des solutions: soit réduire les nombreux SI en utilisant la fonction CHOISIR avec des cas successifs, soit repenser le mécanisme avec RECHERCHEV ou des regroupements plus lisibles. La solution CHOISIR proposée par Michel permet d’aligner le choix sur B4 et d’indiquer les résultats intermédiaires sans imbrication excessive, mais elle peut créer des répétitions si mal nommées. Certaines discussions abordent la suppression des doublons via des noms de plage ou l’utilisation d’indices paysCode, tout en notant que la réorganisation du calcul peut être nécessaire.

Bobot (l’IA à votre service)
  1. Contributeur
    Bonjour à tous

    petite astuce pour éviter les enchainements de SI et de compter les parenthèses( j'y suis rarement arrivé du 1° coup!)

    =CHOISIR(B4;C14-E14;C14-(E14+F14);...etc)
    4
    1. Contributeur
      Impeccable Michel
      Merci pour lui et pour nous
      0
    2. Pas mal la formule.

      Simplissime!!
      0
  2. Contributeur
    Bonjour
    Sur Excel, on suppose
    Barre des tâches / Format / Mise en forme conditionnelle:
    La fenêtre s'affiche:
    à gauche: choisir: Formule
    A droite, rentrez la formule:
    =(1° cellule du champ)="gaz"
    Cliquez sur format de cellule: choisir le motif voulu/ Ok
    on revient à la fenêtre:
    Cliquez sur Ajouter
    =(1°Cellule du champ)="huile"
    Cliquez sur format de cellule: choisir le motif voulu/ Ok
    Fermez la fenêtre par Ok
    Ca devrait marcher, si les textes entre guillemets des formules ci dessus correpondent exactement aux textes de vos tableaux
    Crdlmnt
    0
    1. bonjour
      est ce que tu peus m'aidé j'ai un problème de mise en forme conditionnelle je voudrai à chaque fois que j'ecris "gaz" la cellule apparé en vert et quand j'ecris "huile" la cellule apparé en rouge est ce que c'est possible
      0
      1. Contributeur
        Bonsoir tout le monde,

        Merci michel d'avoir pris le relais.
        Je complète juste pour l' * en bas de liste qui t'a intrigué :
        Cette étoile ce n'est pas moi qui l'ai ajoutée, c'est excel car j'ai sélectionné les données et fait (sous excel 2003) menu 'données / liste / créer une liste...'
        Comme ça c'est excel qui gère la liste, la plage nommée est redimensionnée automatiquement même si on ajoute un item en fin de liste, et l'* indique la zone de saisie. Elle n'apparait que si on sélectionne un élément de la liste.

        eric
        0
        1. Contributeur
          >0 veut dire que l'on a trouvé le pays au moins 1 fois...
          Si Eric n'avait pas géré cette possibilité d'erreur, par ex: suissse au lieu de suisse, XL aurait retourné un symbole d'erreur genre #N/A, en gérant cette formule (NB.SI(plage, valeur) équivaut à "dis moi le nombre de "valeurs" dans la plage) si le nombre de suissse est égal à Zéro, la formule renvoie la valeur vide "".

          Bonne soirée
          0
          1. Merci pour cette précision Michel.
            Je comprends mieux.

            meme si il existe toujours un flou.
            Notemment concernant

            =SI(NB.SI(PaysCode;A1)>0;RECHERCHEV(A1;PaysCode;2;FAUX);"" )

            Le ">0" joue quel role ?
            0
            1. Contributeur
              Pour nommer une cellule ou une plage de cellules
              XL<2007
              Sélectionner la plage voulue
              Insertion-nom-définir

              pour trouver la plage nommée
              edition-atteindre et tu sélectionnes "payscode"
              0
              1. Contributeur
                Merci pour ta grande indulgence! ;-)

                Pour me faire pardonner en répondant à ta question , Eric ne m'en voudra pas j'espère ( 7° Apéro?)

                "Payscode" est le nom de la plage de données regroupant dans une 1° colonne (pas forcément A) le nom du pays et dans une 2° colonne le code
                donc le 2 désigne la 2° colonne dans le tableau (plage) "payscode"
                0
                1. J'ai compris plus tard que le 2 signifiait deuxième colonne;

                  mais ce qui me bloque c'est "PaysCode"
                  EN décryptant la formule je suppose que PaysCode est un nom donné aux colonnes A et B ou plutôt à la plage de cellules contenus dans A et B.

                  Mais pour être sur de cela j'ai cherché ou était déclaré "PaysCode" mais sans succès.

                  Donc PaysCode concerne t-il les colonnes A et B en même temps ? Et comment déclaré un nom à ces cellules si c'est bien le cas?

                  Merci
                  0
              2. Pas de souci, ca me fait un UP ;)
                0
                1. Contributeur
                  Bonjour le forum
                  Eric,
                  ..."celles des vache-qui-rit deviennent dures... ;-)"...
                  connais pas! le forum étant un lieu de partage de connaissances etc etc ( et 1 air de violon romantique, 1)
                  Excuses moi, Sango, de foutre le B... dans ton post.
                  0
                  1. Bonjour,

                    Tout d'abord merci de vous être penchés sur mon cas.

                    Michel merci pour ta petite explication en effet elle ne correspond donc pas à ma requête.
                    F1 & ( si...) sert à réutiliser la fonction SI car cela est limité à 7 sous excel 2003.

                    Donc je déclare 7 conditions dans une colonne.

                    Puis 7 dans une autre, en veillant à dire a cette colonne de reprendre la condition de la colonne précendete.
                    Ainsi la j'ai 14 conditions réalisables.
                    Et j'ai procédé comme ca sur plusieurs colonnes car j'ai 36 pays et donc 36 conditions.
                    mais le résulat n'est pas probant comme le montre mon copier coller sur mon précédent poste car ca crée des doublons sur différentes colonnes.

                    En fait, mon problème est de retrouver un code en fonction d'un pays comme l'affirme eric.
                    Cela dans le but de réaliser une sorte d'automatisme pour que lorsque la base de mon fichier sera alimenté, alors les pays seront directement classé selon le code en question.

                    Ex : si j'ai Belgique et Luxembroug je veut qu'a la colonne suivante soit ajouté automatiquement BELUX.

                    Eric, La fonction rechercheV semble etre une solution en effet (je vais essayer de comprendre ton code car bien que simple j'ai un problème avec cette fonction je n'arrive jamais a bien l'utiliser).

                    Je reviendrais a vous si je n'arrive pas a le comprendre.
                    merci encore.
                    0
                    1. re tout le monde.

                      J'ai besoin de quelques précisions supplémentaires.

                      Eric, tout d'abord quel est le rôle de l'astérisque tout en bas de la liste des pays?.

                      Si j'ia bien compris ta forumule Recherche V se résume ainsi :

                      Excel compte le nombre de fois ou le pays correspondant apparait.
                      Si ce nombre est supérieure à 0 alors on pratique une rechercheV.
                      Si résulat vrai on affiche le code du Pays.
                      Si résultat faux on met FAUX.

                      Pour le chiffre 2 dans ce bout de forumule (A1;PaysCode;2;FAUX);"") je n'arrive pas à saisir son rôle par contre.
                      0
                  2. Contributeur
                    Bonsoir Eric

                    Moi, après le 5° apéro, ch,e.. chuis.. roubé, hips!, bou- bourré; :-#

                    bonne soirée
                    0
                    1. Contributeur
                      bé moi aussi, c'est bien pour ça qu'il faut qu'elles soit faciles les devinettes. Même celles des vache-qui-rit deviennent dures... ;-)
                      0
                  3. Contributeur
                    Bonsoir tout le monde,

                    Plutôt que supprimer des doublons je me demande si ton pb n'est pas plutôt de retrouver un code en fonction d'un pays.
                    Si oui, c'est recherchev() qu'il te faut :
                    sangokamel.xls

                    Si non, explique ta problématique plutôt que de nous demander de corriger un résultat obtenu avec des choix hasardeux. Si on ne connait pas tes données de départ ni ce que tu veux obtenir comment veux-tu obtenir une aide efficace...
                    On aime bien les devinettes, mais faciles et après le 5ème apéro

                    eric
                    0
                    1. Contributeur
                      Bonsoir,

                      La fonction choisir: par ex
                      Choisir(A1;"zaza";zeze";zyzy";A3+A4)

                      en A1 il y a un nombre
                      si A1=1 il renvoie zaza
                      2 renvoie zeze
                      ...
                      A1=4 effectue le calcul A3+A4...

                      Donc tu ne peux pas l'utiliser.

                      Par contre je n'ai pas compris
                      F1 & ( si...) dans tes formules
                      il faudrait nous en dire +
                      0
                      1. Bonsoir tout le monde.

                        Je relance ce sujet car j'aimerais des explications pour la solution de michel :

                        =CHOISIR(B4;C14-E14;C14-(E14+F14);...etc)

                        Serait- il possible de décrire son fonctionnement ? Car je ne comprend pas trop.

                        J'ai un probleme avec une trentaine de conditions à réaliser. Et vu que Exce l2003 ne gère que 7 conditions je sèche.

                        Voici ma formule avec toutes mes conditions (chaque série de 7 conditions est donc reprise par la

                        =SI(A1="France";"FR";SI(A1="Morocco";"FR";SI(A1="Spain";"IB";SI(A1="Andorra";"IB";SI(A1="Belgium";"BELUX";SI(A1="Luxembourg";"BELUX";""))))))

                        =F1 & SI(A1="Hong-Kong";"APAC";SI(A1="Japan";"APAC";SI(A1="Malaysia";"APAC";SI(A1="Singapore";"APAC";SI(A1="Taiwan";"APAC";SI(A1="Thailand";"APAC";""))))))

                        =F1 & SI(A1="Indonesia";"APAC";SI(A1="Austria";"GCE";SI(A1="Germany";"GCE";SI(A1="Poland";"GCE";SI(A1="Portugal";"IB";SI(A1="India";"INDIA";""))))))

                        =F1 & SI(A1="Greece";"MEA";SI(A1="South Africa";"MEA";SI(A1="South Africa (SAF)";"GCE";SI(A1="Swiss";"MEA";SI(A1="Turkey";"MEA";SI(A1="US";"NAM";""))))))

                        =F1 & SI(A1="Mexico";"NAM";SI(A1="The Netherlands";"NL";SI(A1="Brasil";"SAM";SI(A1="Argentina";"SAM";SI(A1="Chile";"SAM";SI(A1="US";"NAM";""))))))

                        =F1 & SI(A1="Colombia";"SAM";SI(A1="Peru";"SAM";SI(A1="Venezuela";"SAM";SI(A1="United Kinkgdom";"UK";""))))

                        Cette solution marche mais elle crée donc des doublons voici le résultat :

                        Hong-Kong APAC APAC
                        Japan APAC APAC
                        Malaysia APAC APAC
                        Singapore APAC APAC
                        Taiwan APAC APAC
                        Thailand APAC APAC
                        Indonesia APAC APAC
                        Luxembourg BELUXBELUXBELUXBELUX BELUX BELUX BELUX BELUX BELUX
                        France FRFRFRFR FR FR FR FR FR
                        Morocco FRFRFRFR FR FR FR FR FR
                        Austria GCE GCE
                        Germany GCE GCE
                        Poland GCE GCE
                        Andorra IBIBIBIB IB IB IB IB IB
                        Portugal IB IB
                        Spain IBIBIBIB IB IB IB IB IB
                        India INDIA INDIA
                        Italy
                        Greece MEA MEA
                        South Africa (SAF) GCE GCE
                        Swiss MEA MEA
                        Turkey MEA MEA
                        US NAMNAM NAM
                        Mexico NAM
                        The Netherlands NL
                        Brasil SAM
                        Argentina SAM
                        Chile SAM
                        Colombia SAM
                        Peru SAM
                        Venezuela SAM
                        United Kingdom
                        Belgium BELUXBELUXBELUXBELUX BELUX BELUX BELUX BELUX BELUX
                        France FRFRFRFR FR FR FR FR FR
                        Germany GCE

                        DOnc ma question : comment supprimer les doublons ?

                        Ou mieux, pensez vous que la technique sus-citées de michel puisse résoudre ce problème?

                        merci par avance.
                        0
                        1. Salut je crois que dans ta formule tu as oublié de paranthese !!!
                          0
                          1. Contributeur
                            Merci à vous Wilfried,Vaucluse, Zorro, Raymond mais il n'y a pas grand mérite;( j'ai été à l'école de Monique que Wilfied connait bien! Wilfied, STP, tu lui diras bonjour de ma part + bisous ce WE à Rennes)

                            à creuser: cette fonction a pas mal de possibilités expliquées dans l'aide.

                            Bonne soirée
                            0
                            1. Contributeur
                              re:

                              Pas de problème michel, je lui ferai un bisou de ta part, il est vrai que Monique est époustouflante, et j'ai beaucoup appris grâce à elle, (Sommeprod et formules matricielles)
                              0
                          2. Contributeur
                            Bravo, michel ! tout comme wilfried et certainement beaucoup d'autres, je n'avais jamais essayé cette fonction, qui se révèle précieuse dans bien des cas ...
                            0
                            1. Ok merci à tous.
                              J'ai opté pour la solution de la céllule contigüe.

                              A plus
                              0
                              1. Contributeur
                                bonjour à tous

                                jolie solution michel (je ne connaissais pas)

                                autre solution dont la limite est la longueur de la formule utilisation des fonction booléennes

                                =((B4=1)*C4-E14) + ((B4=2)*(C14-(E14+F14))) + ((B4=3) * (C14-E14+F14+G14)) etc......

                                bien mettre les parenthèses (moins difficile qu'avec des si imbriqués)
                                0
                                • 1
                                • 2