Nombre de colonnes répondant à plusieurs conditions

Résolu
Bonjour,

Dans le fichier en lien, je voudrais qu'Excel me donne le nombre de colonne où les cellules de la ligne contenant B commencant soit par T ou D, et que la colonne contient T01.

https://www.cjoint.com/c/DLmhLJSAiEv

Si le message n'est pas assez clair, n'hésitez pas à me poser des questions.

Merci

6 réponses

  1. Contributeur
    Bonjour
    effectivement, ça n'est pas clair du tout
    on ne voit pas dans le tableau où vous aller chercher les D et T et à priori vous avez un feuille 1 une formule qui fait référence à un autre fichier?
    on ne voit pas non plus où vous voulez le résultat
    à vous lire pour complément

    0
    1. Bonjour,

      Vous avez dit pas clair ! alors non pas clair

      Donne un exemple avec des cellules commençant par T et dans la colonne nous trouvons T01 il faut en trouver combien ? cela nous aidera certainement à comprendre
      0
      1. Si je prends le fichier en pièce jointe, le résultat (à trouver dans la colonne C de l'onglert Feuil1) serait pour chaque colonne :

        - Jour 2 = 1 car la ligne avec "B" dans la colonne C (recherche de la cellule A2) contient "T01"
        - Jour 3 = 1 (idem jour 2)
        - Jour 4 = 1 car la ligne avec "B" dans la colonne C (recherche de la cellule A2) ne contient pas T01 MAIS commence par T et une autre cellule de la colonne contient T01
        - Jour 10 = 0 car la ligne avec "B" dans la colonne C (recherche de la cellule A2) ne commence pas par T
        - Jour 31 = 0 car la ligne avec "B" dans la colonne C (recherche de la cellule A2) ne contient pas T01 ET aucune cellule de la colonne ne contient T01

        J'ai modifié le fichier pour faciliter la compréhension :
        https://www.cjoint.com/c/DLmvXSBddEJ

        Il ne peut pas y avoir plusieurs fois T01 dans une colonne.

        Merci de voir si vous pouvez m'aider.
        0
        1. Bonsoir Aurelp95,

          La formule que je peux te proposer se décompose de cette manière:
          Commençons par la colonne D.J'inscris la formule en D12.
          1.
          =RECHERCHEV("B";$C$3:D11;COLONNES($C$3:D11);FAUX)
          Renvoie la valeur de la colonne D qui est sur la même ligne que "B" dans la colonne C.

          2.
          =GAUCHE(INDEX(D3:D11;EQUIV("B";$C$3:$C$11;1);1);1)
          ou
          =GAUCHE(RECHERCHEV("B";$C$3:D11;COLONNES($C$3:D11);FAUX);1)
          Renvoie la première lettre de la valeur de la colonne D qui est sur la même ligne que "B" dans la colonne C.

          3.Formule finale:
          =SI(RECHERCHEV("B";$C$3:D11;COLONNES($C$3:D11);FAUX)="T01";1;SI(ET(GAUCHE(INDEX(D3:D11;EQUIV("B";$C$3:$C$11;1);1);1)="T";NB.SI(D3:D11;"T01")=1);1;0))
          ou
          =SI(RECHERCHEV("B";$C$3:D11;COLONNES($C$3:D11);FAUX)="T01";1;SI(ET(GAUCHE(RECHERCHEV("B";$C$3:D11;COLONNES($C$3:D11);FAUX);1)="T";NB.SI(D3:D11;"T01")=1);1;0))
          Renvoie "1" si la valeur de la colonne D qui est sur la même ligne que "B" dans la colonne C = "T01"
          Renvoie "1" si la valeur de la colonne D qui est sur la même ligne que "B" dans la colonne C commence par "T" et si il y a "T01" présent une seule fois dans la colonne D.
          Renvoie "0" si aucune des deux conditions au-dessus sont satisfaisantes.

          4.Copier la formule du 3. dans [E12:AH12]

          J'espère avoir répondu à ton soucis.Bonne soirée.
          Je ne suis pas magicien :D
          0
          1. Je viens de la tester sur l'exemple, la 2ème fonctionne.

            Je vais donc la tester ce week-end sur le reste de mon fichier pour voir si celà fonctionne, mais ça me parait pas mal.
            0
          2. Alors?Elle fonctionne ou pas?
            0
          3. Bonjour,

            Je viens de finir de la tester sur l'ensemble de mon fichier en la modifiant bien entendu pour que ça colle, d'où le retour un peu tardif.

            C'est vrai qu'au départ, je cherchais une formule qui me donne tous le mois dans une seule cellule, mais si il faut passer par un calcul par jour, c'est déjà ça.

            Merci.
            0
          4. Bonjour,

            Ça fait 2 jour que tu l'as ta formule !
            Enfin, je devrais plutôt dire la formule qui correspond à ce que j'ai compris de ton problème

            Et elle te calcule le mois en une seule fois.
            Je l'ai même décomposée avec des noms (qu'il te reste quand même à créer) pour qu'elle soit plus claire.

            Cdlt
            0
          5. Bonjour,

            Désolé, je viens seulement de voir votre message car quand j'ai travaillé sur la feuille ce matin, je n'étais pas connecté (boîte mail du boulot que je ne reçois pas sur mon téléphone).

            Je vais y regarder de plus près pour voir si celà fonctionne.

            Merci.
            0
        2. Contributeur
          Salut le Forum

          Essaye cette formule :
          =SOMMEPROD(($C$3:$C$11="B")*(NON(ESTERREUR(TROUVE("T01";$D$3:$AH$11))))*((GAUCHE($D$3:$AH$11;1)="T")+(GAUCHE($D$3:$AH$11;1)="D")))

          Mytå
          0
          1. J'avais déjà essayé cette formule, mais je l'ai tout de même réessayé, et elle ne fonctionne pas car elle ne tient pas compte de la condition si T01 est attribué à une autre lettre que "B" et que la cellule de "B" de cette colonne commence par "T" ou "D".

            Le résultat pour la formule devrait être 15 et là, on ne trouve que 14.
            0
          2. Contributeur
            Re le Forum

            J'aurais 16 comme résultat 14 pour B et 2 pour A

            =SOMMEPROD(($C$3:$C$11="B")*(NON(ESTERREUR(TROUVE("T01";$D$3:$AH$11))))*((GAUCHE($D$3:$AH$11;1)="T")+(GAUCHE($D$3:$AH$11;1)="D")))+SOMMEPROD(($C$3:$C$11<>"B")*(NON(ESTERREUR(TROUVE("T01";$D$3:$AH$11)))))

            Mytå
            0
          3. Contributeur
            Re le Forum

            Si c'est pas le bon résultat, colore en rouge les cellules à compter dans ton fichier.

            Mytå
            0
          4. @MytåVoici le nouveau lien avec les cellules coloriées en rouge

            https://www.cjoint.com/?DLnv7hTnqVJ

            Le problème est qu'elle compte toutes les fois où T01 apparait dans le tableau, peu importe ce qu'il y a dans la ligne de "B" alors que si la ligne de "B" ne commence par "T" ou "D", le T01 ne doit pas être comptabilisé.
            0
        3. Bonsoir à tous,

          proposition de formule :
          =SOMMEPROD(zone_Data_T01*ligne_Lettre_Deb_T_ou_D)

          avec comme liste de noms :
          agents	        ='01'!$C$3:$C$197
          lettre =Feuil1!$A$2
          ligne_Lettre =INDEX(zone_Data;EQUIV(lettre;agents;FAUX);0)
          ligne_Lettre_Deb_T_ou_D =--(GAUCHE(ligne_Lettre)="T")--(GAUCHE(ligne_Lettre)="D")
          zone_Data ='01'!$D$3:$AH$197
          zone_Data_T01 =--(zone_Data="T01")


          cordialement
          0
          1. Merci JvDo, elle fonctionne nickel.

            Et pour me faciliter le travail pour les autres mois et pour d'autres agents, j'ai tous remis directement dans la cellule sans passer par les listes de noms et celà fonctionne aussi.

            Bonne journée
            0