Imbrication de plus de 7 si

Résolu
Bonjour,

Je vous fait part de ma formule suivante (c'est pour comptabilisé le nombre de "x" dans les cellules )

Et mon dernier si n'est plus pris en charge , avez vous une astuce pour contourner mon souci

=SI(ET(J15="x";L15="";N15="";P15="";R15="";T15="";V15="");1;SI(ET(L15="x";J15="";N15="";P15="";R15="";T15="";V15="");1;SI(ET(N15="x";J15="";L15="";P15="";R15="";T15="";V15="");1;SI(ET(P15="x";J15="";L15="";N15="";R15="";T15="";V15="");1;SI(ET(R15="x";J15="";L15="";N15="";P15="";R15="";T15="";V15="");1;SI(ET(T15="x";J15="";L15="";N15="";R15="";V15="");1;SI(ET(V15="x";J15="";L15="";N15="";P15="";R15="";T15="";V15="");1;SI(ET(J15="x";L15="x";N15="x";P15="x";R15="x";T15"x";V15="x");1)))))))

cordialement,

16 réponses

Résumé de la discussion

Il s'agit de compter le nombre de x dans les sept cellules J15, L15, N15, P15, R15, T15 et V15 d'une même ligne dans Excel afin de déterminer une valeur 1 ou 0 selon leur présence. Des approches principales utilisent NB.SI sur chaque cellule puis une somme dans Excel, ou bien des tests logiques combinés avec OU/ET pour obtenir 1 lorsque des x apparaissent dans une ou plusieurs cases. D'autres propositions avancent des formules plus compactes utilisant MOD et NB.SI pour éviter les longues listes, ou des versions OU qui renvoient directement 1 ou non selon le compte des x.

Bobot (l’IA à votre service)
  1. passe par vba ce serra plus joli et plus rapide.
    -3
    1. bonjour

      je ne connais rien de vba
      0
  2. Contributeur
    Bonjour
    à tout hasard
    si vous ne risquez pas d'avoir des X dans les colonnes K,M,O,Q,S,U

    =NB.SI(L5:V5;"X") vous donnera le nombre de X dans la ligne

    et si vous voulez, simplement renvoyer 1 plutôt qu'un total, lorsqu'il y a au moins un X
    =SI(NB.SI(L5:V5;"x");1;"")
    ou encore si vous voulez conditionner le 1 à un seul X

    =SI(NB.SI(L5:V5;"x")=1;1;"")

    crdlmnt

    Errare humanum est, perseverare diabolicum
    0
    1. Contributeur
      .. suite du précédent

      vous avez aussi celle ci liée uniquement aux colonnes désignées dans votre formule pour compter les X qui sont dans ces colonnes

      =SOMMEPROD((MOD(COLONNE(J5:V5);2)=0)*(J5:V5="X"))

      qui ne prendra pas en compte les éventuels X intercalés dans les autres colonnes

      et bien sur, si vous ne voulez le 1 que s'il y a un seul X dans le total:

      =SI(SOMMEPROD((MOD(COLONNE(J5:V5);2)=0)*(J5:V5="X"))=1;1;"")

      crdlmnt
      0
    2. bonjour

      Cela ne fonctionne pas
      0
  3. Re,

    en décortiquant ta formule qui est incomplète, il suffit de trouver une fois x dans tes cellules J, L, N, P, R, T et V pour donner quelle valeur ?

    et si on trouve un X dans toutes tes cellules quelle valeur donnée

    Pour compter les x une cellule sur deux j'utiliserai cette formule
    =SOMMEPROD((MOD(COLONNE(J15:V15);2)=0)*(J15:V15="x"))

    pour attribuer une valeur
    =si(SOMMEPROD((MOD(COLONNE(J15:V15);2)=0)*(J15:V15="x"))=1;que faire;si non)

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. bonjour

      j'essaie tant bien que mal , de comptabilisé le nombre de "x" dans une ligne

      Cette ligne comporte du texte (pour information)

      Je souhaite obtenir

      si J15="x" résultat = 1
      si J15 ="" résulat =0

      etc
      0
  4. Bonjour,
    J'y vais aussi de ma tentative:
    Si 6 vides et un x, ou 7 x -->OK
    =SI(OU((J15="x")+(L15="x")+(N15="x")+(P15="x")+(R15="x")+(T15="x")+(V15="x")=7;ET((J15="")+(L15="")+(N15="")+(P15="")+(R15="")+(T15="")+(V15="")=6;(J15="x")+(L15="x")+(N15="x")+(P15="x")+(R15="x")+(T15="x")+(V15="x")=1));"ok";"non")
    0
    1. Re,

      je crois que ta réponse est erronée lorsque tu parles de J5

      répond à chaque ligne de ta formule qui dès le départ est fausse
      quelle valeur doit on afficher à chaque ligne

      J15="x";L15="";N15="";P15="";R15="";T15="";V15=""
      L15="x";J15="";N15="";P15="";R15="";T15="";V15=""
      N15="x";J15="";L15="";P15="";R15="";T15="";V15=""
      P15="x";J15="";L15="";N15="";R15="";T15="";V15=""
      R15="x";J15="";L15="";N15="";P15="";T15="";V15=""
      T15="x";J15="";L15="";N15="";P15="";R15="";V15=""
      V15="x";J15="";L15="";N15="";P15="";R15="";T15=""
      J15="x";L15="x";N15="x";P15="x";R15="x";T15"x";V15="x"

      A+
      Mike-31

      Une période d'échec est un moment rêvé pour semer les graines du savoir.
      0
      1. Re,

        donne à chaque ligne la valeur que tu souhaites obtenir

        J15="x";L15="";N15="";P15="";R15="";T15="";V15=""
        L15="x";J15="";N15="";P15="";R15="";T15="";V15=""
        N15="x";J15="";L15="";P15="";R15="";T15="";V15=""
        P15="x";J15="";L15="";N15="";R15="";T15="";V15=""
        R15="x";J15="";L15="";N15="";P15="";T15="";V15=""
        T15="x";J15="";L15="";N15="";P15="";R15="";V15=""
        V15="x";J15="";L15="";N15="";P15="";R15="";T15=""
        J15="x";L15="x";N15="x";P15="x";R15="x";T15"x";V15="x"
        0
      2. désolée j'ai supprimé mon message
        0
      3. @Mike-31Je veux que l'on puisse choisir la cellule que l'on souhaite
        Il y a 7 cellules à cocher ou non
        J15 L15 N15 P15 R15 T15 V15
        =
        J15="x";L15="";N15="";P15="";R15="";T15="";V15=""
        valeur = 1(J15) L15 N15 P15 R15 T15 V15=0

        L15="x";J15="";N15="";P15="";R15="";T15="";V15=""
        valeur = 1(L15) J15 N15 P15 R15 T15 V15=0

        N15="x";J15="";L15="";P15="";R15="";T15="";V15=""
        valeur = 1(N15) J15 L15 P15 R15 T15 V15=0

        P15="x";J15="";L15="";N15="";R15="";T15="";V15=""
        valeur = 1(P15) J15 L15 N15 R15 T15 V15=0

        R15="x";J15="";L15="";N15="";P15="";T15="";V15=""
        valeur = 1(R15) J15 L15 N15 P15 T15 V15=0

        T15="x";J15="";L15="";N15="";R15="";V15=""
        valeur = 1(T15) J15 L15 N15 P15 R15 V15=0

        V15="x";J15="";L15="";N15="";P15="";R15="";T15=""
        valeur = 1(V15) J15 L15 N15 P15 R15 T15 =0

        J15="x";L15="x";N15="x";P15="x";R15="x";T15"x";V15="x"
        Valeur 7
        0
    2. Re,

      que veux tu dire par "désolée j'ai supprimé mon message"

      que tu abandonnes la discussion !
      0
      1. non , j'ai supprimé un message

        j'essaie les formules données plus haut d'ou ma lenteur à vous répondre

        Oh non je n'abandonne pas , pas encore lol
        0
    3. Re,

      essaye comme cela voir

      =SI(SOMMEPROD((MOD(COLONNE(J15:V15);2)=0)*(J15:V15="x"))=1;1;SI(SOMMEPROD((MOD(COLONNE(J15:V15);2)=0)*(J15:V15="x"))=7;7;0))
      0
      1. Contributeur
        Bonjour

        adieu les SI

        =((NBVAL(J15;L15;N15;P15;R15;T15;V15)=1)+(NBVAL(J15;L15;N15;P15;R15;T15;V15)=8))*1

        edit: 18h rectifié faute de frappe ";" entre L & N et non ":"

        Michel
        0
        1. Bonjour,

          je tente ma chance !

          =OUX(J15="x";L15="x";N15="x";P15="x";R15="x";T15"x";V15="x")
          0
          1. Contributeur
            Salut DjiDji ! Tu es sûr du début de ta formule ?

            Je crois que tu voulais écrire
            =SOMME(J15="x";L15="x";N15="x";P15="x";R15="x";T15="x";V15="x")
            ou encore
            =(J15="x")+(L15="x")+(N15="x")+(P15="x")+(R15="x")+(T15="x")+(V15="x")
            0
          2. @Raymond PENTIERÇa correspond a ce qui était demandé dans le premier post
            Soit un seul ==>1, soit tous ==>1
            0
        2. Je vous remercie tous ,

          je fais mes essais avec vos formules et je vous tiens au courant

          merci et bon dimanche
          0
          1. juste un truc

            pouvez vous m'indiquer la somme de la multiplication suivante

            84.67 * 3.94 =

            par excel je trouve 333.53
            par calculette ordinateur , je trouve 333.5998

            ?
            0
            1. Re,

              Excel donne bien

              333,5998
              0
            2. @Mike-31ok , donc j'ai un autre problème , mon excel ne me donne plus les bonnes sommes

              merci à vous je vous tiens au courant
              0
            3. Contributeur
              Attention ! Ce n'est pas "m'indiquer la somme de la multiplication" mais "m'indiquer le résultat de la multiplication"

              Dans ta calculette, tu as saisi les nombres 84,67 et 3,94
              Dans Excel, tu as multiplié deux cellules qui contenaient des formules, dont 84,67 et 3,94 sont des valeurs arrondies ; par exemple =254/3 dans l'une et =RACINE(15,525) dans l'autre ...
              0
          2. Contributeur
            Ah ! J'ai fini par aboutir à une formule :
            =SI(MOD((NB.SI(J15;"x")+NB.SI(L15;"x")+
            NB.SI(N15;"x")+NB.SI(P15;"x")+NB.SI(R15;"x")+
            NB.SI(T15;"x")+NB.SI(V15;"x"))-1 ; 6)=0 ; 1 ; 0)

            Cordialement.
            P.S. J'ai supprimé mes messages hors-sujet !
            0
            1. Re,

              Il serait très étonnant qu'Excel soit mis en cause, mais plutôt ta façon dont tu manipules tes formules
              je crois que me mieux serait d'avoir ton fichier anonymisé et en plus nous gagnerons du temps
              pour joindre ton fichier sert toi de ce lien
              https://www.cjoint.com/
              0
              1. Contributeur
                bonjour
                encore une autre si il faut la lettre x et seulement elle

                (J15&L15&N15&P15&R15&T15&V15 ="x")+(J15&L15&N15&P15&R15&T15&V15="xxxxxxx")

                explication:
                le "+" est équivalent à SI(OU(.....
                0
                1. Bonjour,
                  Celle-là je l'aime bien. Mais ce n'est qu'un modeste avis personnel.
                  0
                2. Et ce n'est pas equivalent a un "ou exclusif "??
                  Soit un seul, soit tous.....
                  0
              2. Je vous remercie de m'aider dans ce monde d'excel ,
                J'ai testé toutes vos formules* qui certaines ont données un résultat ,d'autres non .

                Je ne veux pas vous froisser qui a eu raison ou non, mais pour les futurs intéressés je donne mon avis

                Cette formule fonctionne si aucun texte n'est sur la ligne
                =SOMMEPROD((MOD(COLONNE(J15:V15);2)=0)*(J15:V15="x"))

                Mais comme j'ai du texte , J'ai pris
                =((NBVAL(J15;L15;N15;P15;R15;T15;V15)+(NBVAL(J15;L15;N15;P15;R15;T15;V15)=8))*1)

                Pour répondre à raymond , j'ai compris mon erreur de « nom » ,
                En mettant des « arrondi », je m'approche du résultat obtenu avec ma calculette mais approcher n'est pas le résultat voulu.

                Je conçois qu'en vous mettant mon fichier anonyme vous pouvez m'aider encore plus , mais je ne peux pas (pas tout de suite )
                • si vos formules fonctionnent de votre côté, ce n'est pas le cas pour moi


                Je vous souhaite un bon dimanche et merci

                Mon sujet est donc résolu
                0
                1. Contributeur
                  Merci Tontong
                  0
                2. Bonjour à tous,

                  Mais comme j'ai du texte , J'ai pris
                  =((NBVAL(J15;L15;N15;P15;R15;T15;V15)+(NBVAL(J15;L15;N15;P15;R15;T15;V15)=8))*1)


                  Surprenant !!
                  (NBVAL(J15;L15;N15;P15;R15;T15;V15)=8)) est toujours faux.

                  Donc la formule que tu sembles avoir adoptée est =(NBVAL(J15;L15;N15;P15;R15;T15;V15) qui te compte les cellules non vides mais certainement pas celles contenant un x ou X.

                  Ceci dit, si tes cellules ne peuvent contenir qu'un "x", cela répondra à ton post 17.

                  cordialement
                  0
                3. @JvDobonjour jvdo,

                  Mes diverses questions sur ce site ont eu ses réponses

                  Je suis surprise que vous m'étiez en doute les formules de vos collègues , chacun d'eux se sont respectés mutuellement et aucun n'a contesté !!

                  On m'a toujours dit , si on te rapporte que c'est faux , c'est à la personne qui le clame qui doit l'expliquer

                  Bon dimanche

                  Sujet clos
                  0
                4. @merci par avanceBonjour merci par avance

                  Tu sembles avoir du mal à comprendre.
                  Je réexplique donc :

                  (NBVAL(J15;L15;N15;P15;R15;T15;V15)=8) ne peut prendre que la valeur FAUX, soit encore la valeur 0 lorsqu'il apparaît dans une addition.
                  Autrement dit, cette partie de formule est inutile vu que tu ajoutes 0.

                  De même, le *1 est inutile puisque l'addition retourne un nombre, pas un booléen.

                  Quant à "mettre en doute les formules de mes collègues", sache que je les côtoie parfois depuis plus de 10 ans et j'espère bien qu'ils mettront en doute mes formules lorsqu'elles seront inexactes tout comme je le ferai pour eux.
                  C'est aussi comme ça qu'on progresse.

                  Et puis, l'exactitude d'une formule pour le fil que tu as créé est une notion difficile à apprécier vu que ta formulation a évolué entre le post 1 et le 17.

                  Dès le post 4, Vaucluse te donnait une bonne formule, même si j'ai une préférence pour celle du post 34 de michel_m qui répondait au post 1 et que tu aurais pu adapter assez simplement pour satisfaire ton post 17.

                  cordialement
                  0
                5. @JvDobonsoir jvdo,

                  Juste une chose la formule que vous citez n'est pas la mienne mais un choix cité par vos collègues qui fonctionne sur mon tableau excel( contraire à votre avis )
                  Donc je ne rajoute rien

                  (je tiens à votre disposition les mails reçus sur le sujet de vos collègues mentionnant cette formule )

                  Et non , je n'ai pas évolué ,de nombreuses réponses ont gravités autour de ma question première

                  Oui , la formule de vaucluse est une bonne formule comme je l'ai indiqué dans un de mes post

                  j'ai testé chaque formule et bon nombre d'entre elles ont aboutis à un résultat =0

                  Donc je répète mon sujet est clos

                  Merci à tous
                  0