Doublons sur un intervalle de temps donné

Bonjour à tous,

Je sollicite votre aide suite à mon dernier sujet, complexifiant un peu plus le cas d'étude?

J'ai donc une liste de date / heure à laquelle se trouve affecté un utilisateur.

Il s'agirait de trouver les mêmes utilisateurs qui se trouvent dans un intervalle de temps donné [-30 min ; + 30 min] étant entendu que d'autres utilisateurs peuvent s’intercaler.

L'idée pour chaque utilisateur dont l’occurrence serait supérieure à 1 de comparer les utilisateurs sur l'intervalle [-30 min ; + 30 min] et comparer avec les autres occurrences sur le même intervalle de temps si on a des utilisateurs identiques peu importe l'ordre.

Je joins un fichier test pour exemple. L'idée serait de n'avoir plus que les lignes au jaune.

Je pense qu'avec Excel c'est compliqué, peut-être en power query mais j'avoue que là je sèche quelque peu...

Vous remerciant.

11classeurtest.xlsx (9.89 Ko)

Bonjour à tous !

Avec Power Query, j'obtiens ceci :

image

Est-ce le résultat attendu ? (Je dois avouer avoir passé plus de temps à essayer de comprendre votre besoin qu'à mettre en place la requête...)

@JFL merci beaucoup, oui j'imagine 😑 pas simple à expliquer...

Du coup, ça pourrait coller, juste user1 et user8 qui ne devraient pas apparaître car pas de doublons identiques sur les -30 / +30.

Cela donnerait quoi en programmation jquery ?

Bonjour à tous de nouveau !

Du coup, ça pourrait coller, juste user1 et user8 qui ne devraient pas apparaître car pas de doublons identiques sur les -30 / +30.

Le doute quant à la bonne compréhension de votre besoin était donc....justifié.

Je tente ceci :

image

Ça me paraîtrait pas mal. Le User11 apparaît car il est en doublons "à cheval" sur les deux suites 1 fois dans un (5,6,7) et une autre fois dans un (10,32)

Je n'y avais pas pensé mais c'est peut-être pas plus mal 🙂

En revanche, je ne suis pas du tout rompu avec jquery, si vous voulez m'aiguiller sur les requêtes, je suis preneur... 🙄

Bonjour à tous de nouveau !

Je vous livre donc ma proposition.... en croisant les doigts..... et votre "Je n'y avais pas pensé mais c'est peut-être pas plus mal" m'inquiète car j'y vois la preuve d'un besoin pas assez précisé en amont)

Pour ce qui est des étapes appliquées à vos données, je vous invite à en prendre connaissance (clic droit sur le tableau retourné, puis "Table....Modifier la requête". Si un traitement vous pose souci, n'hésitez pas à questionner.

Merci beaucoup JFL. Je vais étudier cela dans le détail 🙏

Merci JFL

J'ai pu étudier ta programmation Power Query et j'ai adapté à ma version Excel 2016 sur deux étapes. Pas de souci.

En revanche, cela me fait trop de faux positifs avec les doublons "à cheval". Cas du User11 apparaît car il est en doublons "à cheval" sur les deux suites 1 fois dans un (5,6,7) et une autre fois dans un (10,32)

Il me faudrait pouvoir me contenter des doublons "stricts" mais là encore mon raisonnement de programmation est limité...

Bonjour à tous !

Je perçois de moins en moins bien votre besoin.....

Prenons le cas de l'utilisateur 11.
Quelle serait la présence à éliminer ? La première ? La seconde ? Et pourquoi ?

Je perçois de moins en moins bien votre besoin.....

Je sais et ce n'est pas facile à expliquer. Je cherche en fait à isoler les utilisateurs "identiques" qui se précéderaient / suivraient sur le créneau horaire -30/+30 min

User11 n'a au final aucun doublon d'utilisateur identique sur -30/+30 min sur les deux occurrences qui le concernent

Je pensais que ce serait simple à discriminer manuellement mais au final sur de nombreux utilisateurs, c'est énorme à traiter.

User11 n'a au final aucun doublon d'utilisateur identique sur -30/+30 min sur les deux occurrences qui le concernent

Pouvez-vous expliciter ce que vous entendez par "doublon d'utilisateur identique" ?

Par ailleurs, vous ne répondez pas à mon questionnement "Quelle serait la présence à éliminer ? La première ? La seconde ? Et pourquoi ?

L'idée est la suivante, je vais reprendre avec User1

On prend la première occurrence de User1
On fait une extraction dans une table temporaire de tous les User sur le créneau -30 ; +30 min précédant / suivant User1, on la met dans un tableau 1
On va à la prochaine (2eme) occurrence de User1
On fait une extraction dans une table temporaire de tous les User sur le créneau -30 ; +30 min précédant / suivant User1, on la met dans un tableau 2
On va à la prochaine (3eme) occurrence de User1
On fait une extraction dans une table temporaire de tous les User sur le créneau -30 ; +30 min précédant / suivant User1, on la met dans un tableau 3
Arrivé à la fin, on compare les tableaux 1, 2 et 3
On ne garde les user / DHMS que des seuls User dont l'occurrence est supérieure à 2

On passe ensuite à User2

Et ainsi de suite

Pour User11, effectivement, mea culpa, il doit être conservé

1ere occurence, tableau 1

12/12/22 04:50:38User8
12/12/22 04:52:44User9
12/12/22 05:08:59User10
12/12/22 05:15:41User11
12/12/22 05:17:54User32

2eme occurence, tableau 2

13/12/22 12:55:59User8
13/12/22 12:56:40User23
13/12/22 12:57:15User24
13/12/22 13:05:06User25
13/12/22 13:07:15User26
13/12/22 13:10:59User7
13/12/22 13:15:29User1
13/12/22 13:19:24User11
13/12/22 13:22:53User6
13/12/22 13:24:54User27
13/12/22 13:27:23User28
13/12/22 13:28:39User5

On devrait donc garder

12/12/22 04:50:38User8
12/12/22 05:15:41User11
13/12/22 12:55:59User8
13/12/22 13:19:24User11

En espérant avoir été plus clair, encore désolé

Bonsoir à tous de nouveau !

Ma compréhension s'affaiblit au fur et à mesure de nos échanges.....

Je vous propose une solution progressive :
Regardez la requête "t_Final_Version3_SelectionCréneau". Elle sélectionne les enregistrements dans le respect du créneau horaire (+/- 30 minutes).

Quelle serait l'étape suivante ?

Merci JFL.

Bon çà ne passe pas avec Excel 2016 (Text.BeforeDelimiter) dans l'étape "Texte extrait avant le délimiteur"

Peut-on le remplacer ?

Je dirai qu'au final de ta proposition, il faut supprimer les occurrences égales à 1 et conserver les autres pour obtenir

DHMSUser
12/12/2022 01:06:40User2
12/12/2022 01:08:29User5
12/12/2022 01:12:42User6
12/12/2022 01:14:29User7
12/12/2022 04:33:10User1
12/12/2022 04:50:38User8
12/12/2022 05:08:59User10
12/12/2022 05:15:41User11
12/12/2022 05:17:54User32
13/12/2022 12:55:59User8
13/12/2022 13:10:59User7
13/12/2022 13:15:29User1
13/12/2022 13:19:24User11
13/12/2022 13:22:53User6
13/12/2022 13:28:39User5
13/12/2022 14:08:13User2
13/12/2022 14:26:44User32
13/12/2022 14:35:10User10

Et là çà me semblerait pleinement conforme

Merci encore pour ton aide

Bonsoir à tous de nouveau !

J'obtiens ceci :

image

Peut-on espérer une issue heureuse ?

çà me paraît pas mal du tout

Tu peux m'aiguiller sur ls dernières étapes ?

Et - je t'embête encore - si tu as un moyen de contourner Text.BeforeDelimiter pour Excel 2016, je suis preneur.

Merci beaucoup.

Bonsoir à tous de nouveau !

Version 3 :

Note : J'ai opéré différemment pour éviter l'erreur.

Rechercher des sujets similaires à "doublons intervalle temps donne"