Tri de données multiples

Bonjour, je voudrais utiliser des données en éliminant des doublons et en faisant un tri par date et par heure.

Je m'explique (je crois que c'est indispensable )

J'ai besoin de savoir combien de salle sont visitées par jour et par équipe de médiateurs.

Pour cela, on me donne des données brutes avec un tableau qui me donne en 1ère colonne la date, en deuxième colonne l'heure de pointage de chaque agent (une équipe comporte de 2 à 6 agents) et en troisième colonne un numéro de salle.

15salles.xlsx (9.19 Ko)

Sur l'exemple que je vous joins, je sais que le 2 janvier, 5 salles ont été visitées (peu importe le nombre d'agents, il s'agit donc, dans un premier temps, de faire disparaitre les doublons).

Mais la salle 214 apparait 2 fois à deux horaires différents ! Il faut donc conserver ces 2 fois...

Bref, ce que j'aimerai savoir au final, c'est que (sur l'exemple que je vous donne), le 2 janvier, 5 salles ont eu le temps d'être visitées (la 214, la 751, la 222, la 353 et enfin, à nouveau, la 214)

Mon fichier cours pour toute l'année en cours et comporte 117 000 lignes. Je ne me vois guère faire ce tri à la main

Merci !

Salut ogo,

il nous faudrait une idée de la structure RÉELLE de ton fichier de travail et ta façon de travailler : quels résultats doivent être affichés d'office et où, quelle recherche doit-elle être possible en cliquant à gauche à droite, etc...
117.000 lignes d'infos, ça ne se traite pas comme ton fichier-exemple!

A+

Salut Ogo,

travail dans le vide, j'adore...
Un début de solution.
- tu encodes la date à analyser en [B2] ou
- double-clic en colonne [D:D] sur la date à analyser.

Public Sub TriSalles(ByVal dDate As Date)
'
Dim tTab, tSort, iRow1%, iRow2%, iStep%
'
Columns("H:J").ClearContents
On Error Resume Next
iRow1 = Columns(4).Find(what:=dDate, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row
iRow2 = Columns(4).Find(what:=dDate, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Row
On Error GoTo 0
'
If iRow1 = 0 Then
    MsgBox "Pas de date correspondante dans la base de données!", vbInformation + vbOKOnly, "Salles - Info"
Else
    tTab = Range("D" & iRow1 & ":F" & iRow2).Value
    tSort = Range("AD" & iRow1 & ":AF" & iRow2).Value
    tSort(1, 1) = tTab(1, 1)
    tSort(1, 2) = tTab(1, 2)
    tSort(1, 3) = tTab(1, 3)
    iStep = 1
    For x = 2 To UBound(tTab, 1)
        If tTab(x, 2) <> tTab(x - 1, 2) Or tTab(x, 3) <> tTab(x - 1, 3) Then _
            iStep = iStep + 1: _
            tSort(iStep, 2) = tTab(x, 2): _
            tSort(iStep, 3) = tTab(x, 3)
    Next
    Range("H3").Resize(UBound(tTab, 1), 3).Value = tSort
End If
'
End Sub
13ogo.xlsm (18.88 Ko)

A+

Merci et désolé de l'absence de fichier, je croyais qu'il était joint à mon premier message.

J'étudie ça et je reviens vers toi la semaine prochaine, avec un fichier joint si besoin

Bonjour à tous !

A partir du classeur fourni, je vous propose de tester la formule suivante :

=TRIER(UNIQUE(D5:F19);{1;2};{1;1})

Elle retourne les éléments uniques triés de la plage.

image
Rechercher des sujets similaires à "tri donnees multiples"