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. 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
  2. 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
  3. 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
      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. 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. Je vous remercie tous ,

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

        merci et bon dimanche
        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. 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. 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. 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
            2. 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
            3. 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,

                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
              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. passe par vba ce serra plus joli et plus rapide.
                -3
                1. bonjour

                  je ne connais rien de vba
                  0