Agrégation conditionnelle

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jean Roc

XLDnaute Nouveau
Bonjour,

J'ai un tableau construit avec un numéro d'exemplaire par ligne d'enregistrement et une catégorie assignée par enregistrement. Il me faudrait agréger la totalité de ces numéros d'exemplaire par catégorie dans une cellule.

Quelle serait la fonction a utiliser pour poser cette condition de catégorie dans l'agrégation ?

Table source :

Cat.| Num.
A | 1
A | 2
A | 3
B | 4
B | 5
C | 6
C | 7
C | 8

Table cible :

Cat.| Num.
A | 1;2;3
B | 4;5
C | 6;7;8

Bonne journée à tous
 

Pièces jointes

Re : Agrégation conditionnelle

Bonjour le Forum,
Bonjour Jean Roc,

tu peux aller télécharger ici :
Ce lien n'existe plus
le XLA MORFUNC et une fois installer créer une formule comme celle du fichier joint

attention ne fonctionne que si MOREFUNC et coché dans les macro supplémentaire

tu peux aussi le télécharger ici

http://www.01net.com/telecharger/win...hes/32813.html

Jocelyn
 

Pièces jointes

Re : Agrégation conditionnelle

Merci Jocelyn, je récapitule le fonctionnement de la formule histoire de voir si j'ai bien assimilé : la concaténation (MCONCAT) des valeurs de la colonne des exemplaires se fait quand la valeur de la catégorie du 2nd tableau est égale à une liste de valeurs de catégories du 1er tableau.

Merci également hoerwind, je pense cependant utiliser la solution de jocelyn car j'ai un peu plus de mal à saisir le fonctionnement de votre formule.
 
Re : Agrégation conditionnelle

Bonjour à tous
Une autre fonction personnalisée :
Code:
[COLOR="DarkSlateGray"][B]Function CatEx(Cat As String, plgCat As Range, plgEx As Range) As String
Application.Volatile
Dim oCel As Range
   For Each oCel In plgCat.Columns(1).Cells
      If oCel.Value = Cat Then CatEx = _
         CatEx & Cells(oCel.Offset(plgEx.Cells(1, 1).Row - _
         plgCat.Cells(1, 1).Row).Row, plgEx.Columns(1).Column).Value & ";"
   Next oCel
   CatEx = Left$(CatEx, Len(CatEx) + (CatEx <> ""))
End Function[/B][/COLOR]
ROGER2327
#2778
 

Pièces jointes

Re : Agrégation conditionnelle

Bonjour à tous,
Ci-joint une proposition par formule (travail sur le fichier proposé par Hoerwind) et sans colonne complémentaire à tester.
Cela semble fonctionner avec 3 nombres maxi par lettre.
Au-delà, il faudra compléter la formule.
Cordialement
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
1
Affichages
1 K
Retour