Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Classer et regrouper des données

  • Initiateur de la discussion Initiateur de la discussion gerzouille
  • Date de début Date de début

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 !

G

gerzouille

Guest
Bonjour,

Je souhaiterais regrouper sous un critère les différentes valeurs qui le composent tout en n'en faisant qu'une cellule.

Pour être plus imagé je joint le fichier avec le résultat fait à la main.

Je n'arrive pas à cela avec un croisé dynamique.

Merci de votre aide
 

Pièces jointes

Re : Classer et regrouper des données

Bonjour,
sélectionner A20:J20 rentrer la formule valider en matriciel :
Code:
=TRANSPOSE(INDEX($E$1:$E$15;PETITE.VALEUR(SI(EQUIV($E$2:$E$15;$E$2:$E$15;0)=LIGNE(INDIRECT("1:"&LIGNES($E$2:$E$15)));LIGNE($E$2:$E$15));LIGNE(INDIRECT("1:"&LIGNES($E$2:$E$15))))))
En A21 :
Code:
=SIERREUR(INDEX($B$1:$B$15;PETITE.VALEUR(SI($E$2:$E$15=I$5;LIGNE($B$2:$B$15));LIGNE(1:1)))&INDEX($C$1:$C$15;PETITE.VALEUR(SI($E$2:$E$15=I$5;LIGNE($B$2:$B$15));LIGNE(1:1)))&INDEX($D$1:$D$15;PETITE.VALEUR(SI($E$2:$E$15=I$5;LIGNE($B$2:$B$15));LIGNE(1:1)));"")
Validation matricielle également et tirer vers la droite et le bas.
A+
 
Re : Classer et regrouper des données

Merci
Pour la première partie pas de soucis, par contre la deuxième ne marche pas , j'ai essayé en changeant la référence à I5 mais cela ne fait rien non plus .

Merci
 
Re : Classer et regrouper des données

Merci
Pour la première partie pas de soucis, par contre la deuxième ne marche pas , j'ai essayé en changeant la référence à I5 mais cela ne fait rien non plus .

Merci
La référence n'est pas la bonne :
Code:
=SIERREUR(INDEX($B$1:$B$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)))&INDEX($C$1:$C$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)))&INDEX($D$1:$D$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)));"")
A+
 
Re : Classer et regrouper des données

et pour être complet

Code:
=SIERREUR(INDEX($B$1:$B$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)))&" "&INDEX($C$1:$C$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)))&" "&INDEX($D$1:$D$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)));"")

en matriciel

"CTRL"+"MAJ"+"ENTREE"


IMPECCABLE DAVID84 !!
 
Re : Classer et regrouper des données

et encore, avant que tu dise que çà coince sur 2003
Code:
=SI(ESTERREUR(INDEX($B$1:$B$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)))&" "&INDEX($C$1:$C$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)))&" "&INDEX($D$1:$D$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1))));"";INDEX($B$1:$B$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)))&" "&INDEX($C$1:$C$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)))&" "&INDEX($D$1:$D$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1))))
 
Re : Classer et regrouper des données

Plus simple pour la 2ème formule :
Code:
=SIERREUR(INDEX($B$1:$B$15&$C$1:$C$15&$D$1:$D$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)));"")
A+
 
Re : Classer et regrouper des données

Sur Excel 2003, avec une condition pour cacher les valeurs d'erreur :
Code:
=SI(LIGNE(1:1)<=NB.SI($E$2:$E$15;A$20);INDEX($B$1:$B$15&$C$1:$C$15&$D$1:$D$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)));"")
A+
 
Re : Classer et regrouper des données

Avec des espaces
Code:
=SI(LIGNE(1:1)<=NB.SI($E$2:$E$15;A$20);INDEX($B$1:$B$15&" "&$C$1:$C$15&" "&$D$1:$D$15;PETITE.VALEUR(SI($E$2:$E$15=A$20;LIGNE($B$2:$B$15));LIGNE(1:1)));"")
 
Re : Classer et regrouper des données

Bonjour gerzouille,

Voyez le fichier joint avec cette macro :

Code:
Sub Classer()
Dim tablo, d As Object, i&, t$, a, b, cc%, s
tablo = Range("B1", Range("E" & Rows.Count).End(xlUp))
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(tablo)
  t = tablo(i, 4)
  d(t) = d(t) & Chr(1) & tablo(i, 1) & " " & tablo(i, 2) & " " & tablo(i, 3)
Next
a = d.keys: b = d.items
'---restitution---
Application.ScreenUpdating = False
cc = Columns.Count
Range(Columns(7), Columns(cc)).ClearContents 'RAZ
For i = 0 To UBound(a)
  If i + 7 > cc Then MsgBox "Feuille insuffisante...": Exit Sub
  [G1].Offset(, i) = a(i)
  s = Split(Mid(b(i), 2), Chr(1))
  [G2].Offset(, i).Resize(UBound(s) + 1) = Application.Transpose(s)
Next
End Sub
Edit :avec Mid(b(i), 2) c'est mieux qu'un test dans la 1ère boucle.

A+
 

Pièces jointes

Dernière édition:
Re : Classer et regrouper des données

Bonjour le fil, le forum,

On peut terminer par un tri de gauche à droite et un ajustement des colonnes :

Code:
Application.ScreenUpdating = False
cc = Columns.Count
Range(Columns(7), Columns(cc)).Delete 'RAZ
For i = 0 To UBound(a)
  If i + 7 > cc Then MsgBox "Feuille insuffisante...": GoTo 1
  [G1].Offset(, i) = a(i)
  s = Split(Mid(b(i), 2), Chr(1))
  [G2].Offset(, i).Resize(UBound(s) + 1) = Application.Transpose(s)
Next
1 With Range(Columns(7), Columns(cc))
  .Sort [G1], xlAscending, Orientation:=xlLeftToRight 'tri
  .AutoFit 'ajustement automatique des colonnes
End With
Fichier (2).

Edit : la RAZ avec .Delete c'est mieux pour la largeur des colonnes vides.

A+
 

Pièces jointes

Dernière édition:
Re : Classer et regrouper des données

Re,

Si en colonne E on a toujours "CDIS" suivi d'un numéro, on peut trier sur ces numéros :

Code:
Application.ScreenUpdating = False
cc = Columns.Count
Range(Columns(7), Columns(cc)).Delete 'RAZ
Rows(1).Insert 'ligne auxiliaire pour le tri
For i = 0 To UBound(a)
  If i + 7 > cc Then MsgBox "Feuille insuffisante...": GoTo 1
  [G1].Offset(, i) = Replace(a(i), "CDIS", "")
  [G2].Offset(, i) = a(i)
  s = Split(Mid(b(i), 2), Chr(1))
  [G3].Offset(, i).Resize(UBound(s) + 1) = Application.Transpose(s)
Next
1 With Range(Columns(7), Columns(cc))
  .Sort [G1], xlAscending, Orientation:=xlLeftToRight 'tri
  .AutoFit 'ajustement automatique des colonnes
End With
Rows(1).Delete
Fichier (3).

A+
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…