XL 2019 Script pour vérifier le nombre doublon par rapport à un filtre

xorf

XLDnaute Nouveau
Bonjour à tous,

Je viens vers vous car je cherche une solution à mon problème qui est bien loin de mes compétences pour y parvenir (mais peut-être trop complexe à mettre en œuvre ?).

J'ai ce fichier en PJ.

Je cherche un moyen de vérifier combien j'ai de fois les mêmes nombres en colonne B, C et D, indifféremment de l'ordre et suivant un filtre en A.

Exemple :
Si je filtre en colonne A le "D" et que j'ai :
Ligne 6 : B6=1, C6=10, D6=11
Ligne 20 : B20=11, C20=1, D20=10
Ligne 30 : B30=5, C30=1, D30=8
Ligne 35 : B35=15, C35=16, D35=17

Sachant que Ligne 6 et 20 je retrouve bien les mêmes nombres INDIFFEREMENT de l'ordre des 3 colonnes, que le script me retourne par exemple en colonne H et I :

H=(la combinaison de nombres) 1 10 11 puis I=(le nombre de fois qu'on la retrouve) 2
H=5 1 8 I=1
H=15 16 17 I=1
etc....

Avec en plus comme contrainte, le fait que le résultat varie suivant le filtre de la colonne A "EFFIC".

Je vous remercie par avance de votre retour.
 

Pièces jointes

  • Effic.xlsx
    28.4 KB · Affichages: 13

xorf

XLDnaute Nouveau
Bonsoir xorf,

Ce n'est pas ce qu'il y a sur les lignes 6 20 30 35...

A+
Bonjour job75,

Non effectivement, j'avais pris un exemple "hors fichier" en pensant que cela serait plus clair.
Un même exemple dans ce fichier :
Ligne 59 : B59=1 C59=3 D59=2
Ligne 60 : B60=1 C60=3 D60=2
Ligne 64 B64=3 C64=1 D64=2

Vu que je retrouve bien ces 3 nombres, peu importe l'ordre sur ces 3 lignes, il faudrait que le script me retourne que 1-2-3 apparait bien 3 fois
Par contre, en colonne A, chaque ligne à une lettre différente. La 59 c'est A=M
La 60 c'est A=J et la 64 c'est A=L
Cela veut dire que si je filtre la colonne A en "M", le script doit m'indiquer que j'ai qu'une seule fois "1-2-3".
Quand je dis une seule fois, c'est évidement par rapport aux 3 lignes ci-dessus car dans le fichier, cela se représente plusieurs fois...

Dans mon idée, qui n'est peut-être pas bonne, je pensais déjà "Trier" par ligne de Gauche à droite toutes les lignes et pour les colonnes B-C-D.
Cela permettrait déjà peut-être de faciliter la reconnaissance des doublons car par exemple à l'exemple cité ci-dessus, je n'aurai plus
L59 "1-3-2"
L60 "1-3-2"
L64 "3-1-2

Mais
L59 "1-2-3"
L60 "1-2-3"
L64 "1-2-3"

Et là je pourrai dire que j'ai 3x 1-2-3

Je vous remercie pour votre aide.
 

job75

XLDnaute Barbatruc
Bonjour xorf,

Formule en H2 à tirer vers le bas :
Code:
=REPT(PETITE.VALEUR(B2:D2;1)&" "&PETITE.VALEUR(B2:D2;2)&" "&PETITE.VALEUR(B2:D2;3);SOUS.TOTAL(3;A2))
SOUS.TOTAL renvoie 1 ou 0 et permet de renvoyer un texte vide "" pour les valeurs filtrées.

Formule en I2 à tirer vers le bas :
Code:
=NB.SI(H:H;H2)
A+
 

Pièces jointes

  • Effic.xlsx
    47.6 KB · Affichages: 5

xorf

XLDnaute Nouveau
Merci beaucoup job75, c'est top ! Cela fonctionne parfaitement.
Je vais maintenant essayer d'adapter cela afin de synthétiser le résultat de façon à n'avoir qu'une seule fois les nombres de la colonne concaténation lorsqu'ils apparaissent plusieurs fois.
Avec je pense un affichage des valeurs dans 2 autres colonnes et un bouton pour supprimer automatiquement les doublons qui correspondent à la colonne H + un tri des nombres du plus grand au plus petit par rapport à la colonne I.
Je vous souhaite une bonne journée.
 

job75

XLDnaute Barbatruc
Je vais maintenant essayer d'adapter cela afin de synthétiser le résultat de façon à n'avoir qu'une seule fois les nombres de la colonne concaténation lorsqu'ils apparaissent plusieurs fois.
Il suffit d'insérer une colonne I et d'entrer les formules :

- en I2 =REPT(H2;EQUIV(H2;H:H;0)=LIGNE())

- en J2 =SI(I2="";"";NB.SI(H:H;H2))

la colonne H est à masquer.
 

Pièces jointes

  • Effic(1).xlsx
    51.2 KB · Affichages: 3

job75

XLDnaute Barbatruc
Pour permettre un tri décroissant en colonne J il faut plutôt cette formule en J2 :
Code:
=SI(I2="";0;NB.SI(H:H;H2))
Les valeurs zéro de cette colonne sont masquées par le format personnalisé 0;;
 

Pièces jointes

  • Effic(2).xlsx
    51.2 KB · Affichages: 9

xorf

XLDnaute Nouveau
Pour permettre un tri décroissant en colonne J il faut plutôt cette formule en J2 :
Code:
=SI(I2="";0;NB.SI(H:H;H2))
Les valeurs zéro de cette colonne sont masquées par le format personnalisé 0;;
Bonjour job75
Je vous remercie pour votre retour. J'ai essayé de reproduire avec votre fichier mais je n'arrive ni à obtenir le tri par ordre décroissant sur la colonne J, ni cacher les lignes à 0 sur J. Pourtant, la colonne H est bien cachée et j'ai bien 0;; en format personnalisé sur toute la colonne J.
Vraisemblablement que j'ai raté quelque chose pour faire fonctionner votre formule mais quoi ?

Voici une capture d'écran.

1673177947678.png

Je vous remercie en tout cas pour votre aide et le temps passé à m'aider.

Bon dimanche.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 904
Membres
101 834
dernier inscrit
Jeremy06510