Supprimer les doublons a partir d'un certain nombre

Bonjour ,

je souhaite dans un fichier gsheet , je souhaite conserver les 3 premières lignes pour chaque valeur unique de clé et supprimer les doublons restants ?

Pour l'exemple suivant

https://docs.google.com/spreadsheets/d/1JHXigsT12K1QjGfCX9FKLDIJmnx76bII3DRIELQnIKo/edit?usp=sharing

(avec python je l'aurais fait avec df.groupby('key').tail(3) ) je devrai avoir , et pour cet exemple je prend les 3 dernieres lignes et non les 3 premieres lignes ,pour les premieres lignes j'aurais mis head à la place de tail

    value  key  something
0     a    1          1
1     b    1          2
2     c    1          4
3     x    2          5
4     d    2          3
5     d    2         10
6     e    3          5
7     a    3          5

est ce que vous savez si il existe une formule sur gsheet pour avoir le même resultat ?

Bonjour,

C'est certainement réalisable grâce à la fonction QUERY, mais avant de me lancer je voudrais être sûr de bien comprendre le résultat attendu. Pouvez vous indiquer un résultat fait main pour votre tableau exemple ci-dessous ?

Bonjour ,

comme output si je veux garder les 3 premiers doublons , ce serai ça

valuekeysomethinga11b12c14c29b210x25e35a35

valuekeysomethinga11b12c14c29b210x25e35a35

Houston, on a un problème ! Le message n'est pas bien passé...

Et même en déchiffrant, je tombe sur des lignes qui n'étaient pas présentes dans le 1er exemple (ou alors j'ai mal interprété quelque chose).

Re, c'est peut être un problème d'encodage , j'ai mis l'output dans le lien gsheet pour mieux comprendre

Pour le moment je n'ai pas trouvé comment affecter un index à chaque ligne d'une même clé directement dans la fonction QUERY. C'est possible en SQL mais QUERY ne dispose que de fonctions SQL limitées (et ma maitrise en elle-même de QUERY est encore limitée !).

Du coup j'ai procédé en 2 fois, d'abord ajouter une colonne pour associer un index à chaque ligne, avec la formule suivante placée en D2 :

=NB.SI(B$1:B2;B2)

Ensuite une requête qui ne renvoie que les index <= 3 :

=QUERY($A$1:$D$11;"SELECT A, B, C WHERE D <= 3")

En une formule (en suivant l'idée de Pedro que je salue)

=query({A2:C\ ARRAYFORMULA(COUNTIFS(B2:B; B2:B; ROW(B2:B); "<="&ROW(B2:B))-1)};"select Col1,Col2,Col3 where Col1 is not null and Col4<3")

et pour les 3 dernières, on peut changer le <= par >=

Salut Mike,

Quand le vrai expert débarque, je me tais et j'apprends !

tu as fait le travail de conception , moi celui de réalisation

re,

Merci beaucoup à tous les deux ça marche parfait !!! :D

Salutations ,

J'ai suivi le développement de la solution de ce sujet et je me suis intéressé pour la soluce .

mais je veux utiliser l'idée dans un fichier excel 2010 , donc je viens vers vous pour demander si cette solution est aussi possible de la faire fonctionner dans un fichier excel 2010 ? ou ne fonctionne que sur un fichier gsheet ?

pourriez-vous s'il vous plaît joindre un petit modèle d'utilisation dans un fichier excel avec la formule appliquée dans l'exemple .

Merci pour votre attention .

Bonjour,

La fonction QUERY n'a pas d'équivalent dans Excel, mais on peut toujours y parvenir de manière détournée (par exemple fonction personnalisée VBA). Je vous invite à ouvrir votre propre sujet dans la section Excel - VBA du forum, en joignant un fichier qui illustre les données à votre disposition et le but recherché.

vu mon incompétence en excel je laisse le soin à Pedro de le faire ...

  • mais un TCD ne ferait pas aussi bien ?
  • il y a des formules matricielles et des possibilités avec grande.valeur ,

d'ailleurs on aurait pu aussi utiliser cette façon de faire ici !

Rechercher des sujets similaires à "supprimer doublons partir certain nombre"