Recherche différent de ...

Shiriu

XLDnaute Nouveau
Bonjour,

Je souhaiterai faire une recherche différent d'un résultat obtenu.

Exemple :
Dans la colonne 'B' les valeurs sont 'AB', 'AC', 'BD, 'FB', 'SIT', 'DIV', 'TRAN'. Les valeurs peuvent être répétés plusieurs centaines de fois. Et les valeurs ne sont pas toujours identiques.

- Je connais la 1er valeur, '=B2'. Résultat obtenu en F1

- Je souhaiterai faire une 1er recherche sur les autres valeurs en excluant la première valeur trouvé. L'ordre n'a pas d'importance. Résultat en F2 =(Recherche B2:B500 Différent de F1)

- Une fois la deuxième valeur trouver je souhaiterai fais une deuxième recherche en excluant les deux premières valeurs.
Résultat en F3.

- Et répété l'opération en excluant à chaque fois les valeurs déjà trouvé.
Résultat en F4 puis F5, F6, F7,...

Bien à vous.
 

Shiriu

XLDnaute Nouveau
Re : Recherche différent de ...

Re,

Exact, j'y avais pensé. Mais l'intervention ferai l'objet d'une macro. Rien de bien méchant. A voir.

Bon là j'ai les yeux qui piquent. Je vais réfléchir cette nuit à une formule sans macro.

Merci à toi Tototiti2008 de m'avoir accompagné ce soir.
A+
 

Shiriu

XLDnaute Nouveau
Re : Recherche différent de ...

Bonjour à tous,

Vous trouverez ci-joint un fichier exemple :
En feuille1 la liste de données en colonne O.
En feuille RF un exemple du résultat attendu colonne B. Le traitement final se ferait en colonne D zone orange.

Bonne réception.

Shiriu
 

Pièces jointes

  • Liste JL.xlsm
    89.2 KB · Affichages: 18
  • Liste JL.xlsm
    89.2 KB · Affichages: 30
  • Liste JL.xlsm
    89.2 KB · Affichages: 34

Shiriu

XLDnaute Nouveau
Re : Recherche différent de ...

Salut R@chid,

Mais c'est nickel...

En précision :
Tu utilises le gestionnaire de noms en incluant une formule. Ok
La formule décaler prend la source dans la feuille1 sur la colonne O sans pour autant intervenir ni en ligne ni en colonne. Il s'agit juste d'une lecture de colonne.
C'est bien cela ?

Pour la formule en colonne D. C'est nickel mais j'ai rien compris.
La formule est identique quelque soit la ligne.
Pourrais-tu me faire une petite phrase pour comprendre le fonctionnement de ta formule.
En tous cas j'en était très loin.

Un grand merci à toi. R@chid.
 

R@chid

XLDnaute Barbatruc
Re : Recherche différent de ...

Re,
pour le nom de champ dynamique c'est pour ne pas appliquer la formule matricielle sur toute la colonne A, la plage change de taille automatiquement à l'ajout de nouvelles données.

Pour bien comprendre a formule, tu peux l'appliquer sur une plage de 30 lignes en regardant les étapes de calcul sur l'audit de formules.


@ + +
 

Shiriu

XLDnaute Nouveau
Re : Recherche différent de ...

Bonjour à tous,

Il y a quelque chose qui cloche.
Je ne parviens pas à reproduire le fonctionnement dans un autre fichier.

1 - Menu : Formules > Gestionnaire de noms.
J'ai ajouter une ligne dans mon fichier 'CodeJL' étendue au classeur avec la Valeur {...} (Je suppose qu'il s'agit de l'appel de la formule matricielle.
La ligne fait référence à : =DECALER(IRF!$O$2;;;NBVAL(IRF!$O:$O)-1)
IRF étant le nom de mon onglet, O étant la position de la colonne.

2 - Dans le fichier IRF en colonne O : L'entête de colonne se nomme 'Code du Jour'.
Je n'ai pas a modifier cette information.

3 - Dans ma feuille résultat
J'ai copié la formule ci-dessous dans une cellule (En apparence la formule peut être placer n'importe ou) :

=SIERREUR(INDEX(CodeJL;PETITE.VALEUR(SI(EQUIV(CodeJL;CodeJL;0)=LIGNE(INDIRECT("1:"&LIGNES(CodeJL)));EQUIV(CodeJL;CodeJL;0));LIGNE(INDIRECT("1:"&LIGNES(CodeJL)))));"")

J'ai valider la formule par la combinaison [CTRL] + [MAJ] + [ENTREE] et je confirme avoir les { en début et } en fin nous indiquant qu'il s'agit d'une formule matricielle.

J'ai répété l'opération 3 sur plusieurs lignes.

4 - Résultat : Il n'apparait que le résultat de la 1er recherche soit AN sur chacune des lignes suivantes.

Qu'est ce que j'ai oublié ??

Bonne réception.

Cordialement.

Shiriu
 

gosselien

XLDnaute Barbatruc
Re : Recherche différent de ...

Bonjour,

Pourquoi pas quand même un macro simple ? La mise à jour est très rapide
ou bien menu/donnés/supprimer les doublons ?

Sub UnikColonneA() ' pour une colonne !!
Set dico = CreateObject("Scripting.Dictionary")
Set ws1 = Sheets("Feuil1")
For Each c In Range("Col_CodeJL")
dico(c.Value) = ""
Next c
Sheets("rf").[A1].Value = "Unique"
Sheets("rf").[A2].Resize(dico.Count, 1) = Application.Transpose(dico.keys)
End Sub
 

Shiriu

XLDnaute Nouveau
Re : Recherche différent de ...

Bonjour à tous,

Décidément BOISGONTIER maitrise des fonctions matricielles et du VBA. Je me débrouille pas mal en Excel, mais je ne suis pas encore au niveau. En tous cas toute ces solutions sont à prendre en considération.

Il faut que je test a niveau la fonction matricielle de R@chid j'ai du loupé un truc.

Je vous tiens au jus.

A+
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 850
dernier inscrit
Danigra