Nbre d ´occurence de valeurs dans une cellule avec un TDC

Aurelie -  
 Aurelie -

Allo!  Peux-tu m’aider avec ce problème:
J ai crée un menu déroulant à choix multiples pour sélectionner les membres d’une équipe ( Zaza, Jojo , Lulul) pour différents projets (Projet 1- ligne 1; Projet 2 - ligne 2;  Projet 3 - ligne 3) . La cellule peut donc contenir un ou combinaison de noms. 
En TCD, je veux savoir combien de fois le nom de Zaza a été assigné au total des projets. 
A date, les occurences en TCD sont distribuées pour Zaza en 4 scénarios (valeur) : 
Zaza
Zaza Jojo
Zaza Lulu
Zaza Jojo, Lulu

Ce n est pas ce que je veux Je recherche l’occurrence en TCD pour tous les projets par personne :
Zaza (total)
ou
Jojo (total)
ou
Lulu. (total)

Une idée via un TDC?

merci beaucoup de ton aide ! 


iPad / Safari 604.1

13 réponses

Résumé de la discussion

Le problème est de calculer, dans un PivotTable, le total des affectations par personne lorsque les cellules projet contiennent des listes séparées par des virgules (par ex. Zaza, Jojo, Lulu). La solution la plus directe est de normaliser les données avant le TCD, par exemple avec Power Query qui éclate les valeurs multiples en lignes distinctes, éventuellement via une plage intermédiaire. En alternative, une approche mixte utilisant des formules sur une plage et le TCD permet d’obtenir les totaux par personne sans modifier en profondeur le modèle. On peut aussi envisager une solution pure formule (LET, FRACTIONNER.TEXTE, etc.) ou des macros/champs calculés dans le TCD pour compter les occurrences.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. mariam-j Messages postés 1656 Date d'inscription   Statut Membre Dernière intervention   38
     

    Il faut héberger le fichier là-->:  https://www.cjoint.com/

    Et coller le lien qui te sera donné dans ta prochaine réponse.

    1
    1. Aurelie
       

      Bonjour Mariam-j, merci pour l’information!

      voici mon lien https://www.cjoint.com/c/NEynDBLRrEv

      0
  2. danielc0 Messages postés 2187 Date d'inscription   Statut Membre Dernière intervention   287
     

    Bonjour,

    Peux-tu  partager un classeur ? Et indiquer ta version d'Excel ?

    Merci.

    Daniel


    0
    1. Aurelie
       

      Bonjour Daniel, je suis avec 365. Je cherche comment joindre mon fichier.

      Faut-il être membre pour avoir accès à cette fonctionnalité?

      Désolée, c'est la première fois que j'utilise l'aide de ce forum. Merci de ta patience.

      0
  3. Aurelie
     

    Bonjour Daniel, 

    voici https://www.cjoint.com/c/NEynDBLRrEv

    merci d’avance pour ton aide !

    0
  4. Aurelie
     

    Bonjour, j'ai trouvé cette solution théorique ci-dessous, mais je ne sais pas comment l'appliquer. Qui est A et B dans mon cas. Est-ce qu'il faut que j'insère une nouvelle colonne après ma C, pour créer la colonne "B" de la formule? Je suis confuse....

    1. Utiliser une formule personnalisée et un champ calculé:

    1. Créez un champ calculé dans votre TCD.
    2. Saisissez la formule suivante dans la zone Formule personnalisée du champ calculé:

    Excel

    =NB.SI(TRANSPOSE(TEXTE(A2:A10;"@";",";0));";"&"&B2&",")

    Remplacez A2:A10 par la plage de cellules contenant les valeurs textuelles séparées par des virgules que vous souhaitez analyser, et B2 par la référence de la cellule contenant la valeur texte spécifique dont vous souhaitez compter les occurrences.

    1. Placez le champ calculé dans la zone Valeurs du TCD.
    2. Sélectionnez la fonction de synthèse "Somme" pour le champ calculé.

    Explication de la formule:

    • TRANSPOSE(TEXTE(A2:A10;"@";",";0)): Cette partie de la formule convertit la plage de cellules A2:A10 en une plage de lignes, où chaque cellule contient une valeur textuelle séparée par des virgules. La fonction TEXTE formate les valeurs avec un séparateur de virgules (",") et un séparateur de ligne ("@") pour faciliter le traitement.
    • "&"&B2&",": Cette partie de la formule crée une chaîne de texte qui inclut la valeur texte spécifique que vous souhaitez compter, entourée de virgules.
    • NB.SI( ;"&"&B2&","): La fonction NB.SI compte le nombre de fois que la chaîne de texte créée apparaît dans la plage de lignes transposée.

      1. Utiliser une formule personnalisée et un champ calculé:

    • Créez un champ calculé dans votre TCD.
    • Saisissez la formule suivante dans la zone Formule personnalisée du champ calculé:
    • Excel

      =NB.SI(TRANSPOSE(TEXTE(A2:A10;"@";",";0));";"&"&B2&",")

      Remplacez A2:A10 par la plage de cellules contenant les valeurs textuelles séparées par des virgules que vous souhaitez analyser, et B2 par la référence de la cellule contenant la valeur texte spécifique dont vous souhaitez compter les occurrences.

    • Placez le champ calculé dans la zone Valeurs du TCD.
    • Sélectionnez la fonction de synthèse "Somme" pour le champ calculé.
    • Explication de la formule:

    • TRANSPOSE(TEXTE(A2:A10;"@";",";0)): Cette partie de la formule convertit la plage de cellules A2:A10 en une plage de lignes, où chaque cellule contient une valeur textuelle séparée par des virgules. La fonction TEXTE formate les valeurs avec un séparateur de virgules (",") et un séparateur de ligne ("@") pour faciliter le traitement.
    • "&"&B2&",": Cette partie de la formule crée une chaîne de texte qui inclut la valeur texte spécifique que vous souhaitez compter, entourée de virgules.
    • NB.SI( ;"&"&B2&","): La fonction NB.SI compte le nombre de fois que la chaîne de texte créée apparaît dans la plage de lignes transposée.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. danielc0 Messages postés 2187 Date d'inscription   Statut Membre Dernière intervention   287
     

    Bonjour,

    Je ne sais pas si c'est possible avec un TCD. Une solution avec une seule formule :

    =LET(tbl;FRACTIONNER.TEXTE(JOINDRE.TEXTE(",";;Table2[MEMBRE]);;",");unq;UNIQUE(tbl);ASSEMB.H(unq;BYROW(unq;LAMBDA(x;SOMME(SI(tbl=x;1;0))))))

    NB, il faut supprimer les espaces de la colonne C.

    Daniel


    0
  7. Aurelie
     

    Merci Daniel. Avec cette option, le tri par pays est il possible? Ce que me permettait le TCD ? 

    0
  8. danielc0 Messages postés 2187 Date d'inscription   Statut Membre Dernière intervention   287
     

    Comme ceci ?

    =LET(tbl;TRIER(UNIQUE(Table2[PAYS]));ASSEMB.H(tbl;BYROW(tbl;LAMBDA(x;SOMME(SI(Table2[PAYS]=x;1;0))))))

    Daniel


    0
  9. Aurelie
     

    Merci. Toutefois je cherche une approche dynamique et intégrée. 
    Par exemple, trier par pays ( un ou plusieurs) , et de présenter l’occurence des individus. 
     

    0
  10. danielc0 Messages postés 2187 Date d'inscription   Statut Membre Dernière intervention   287
     

    "trier par pays ( un ou plusieurs)" je ne comprends pas ce que tu veux dire. Tu veux dire filtrer ?

    Daniel


    0
  11. Aurelie
     

    Allo Daniel, la solution doit me permettre d’utiliser un affichage avec un TCD qui me permet de sélectionner un ou des pays, puis d’afficher les occurrences par nom de personnes. 
    Je joins une capture d’ecran  je cherche un TCD qui me permet d’afficher par pays, l’occurence des noms de personne  

    0
  12. danielc0 Messages postés 2187 Date d'inscription   Statut Membre Dernière intervention   287
     

    Bonjour,

    La solution la plus simple serait sans doute d'utiliser une macro. Est-ce que c'est possible dans ton environnement ?

    Daniel


    0
  13. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     

    Bonjour,

    Par le biais de Power Query, injecté dans un TCD

    Pour voir les étapes (toutes simples) dans PQ, Alt + F12 pour ouvrir l'éditeur PQ

    Bonne journée

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


    0
    1. Aurelie
       

      Merci beaucoup!

      0
  14. danielc0 Messages postés 2187 Date d'inscription   Statut Membre Dernière intervention   287
     

    Une solution mixte avec formules et TCD, plage intermédiaire. La plage et le TCD sont sur Feuil1 :

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

    Daniel


    0
    1. Aurelie
       

      Merci beaucoup! 

      0