Recherche d'association / correspondance de critères

Bonjour à tous,

Si je suis là c'est que j'ai un (petit?) souci, pourtant je pensais ne pas être trop mauvais sur Excel

Bref...

Alors voilà : j'ai analysé un corpus de 20 images. Pour chacune j'ai relevé les couleurs en présence (dans le tableau en pièce jointe la présence d'une couleur est marquée d'un "1", son absence par un vide).

J'aurai besoin de savoir quelles sont les associations de couleurs les plus fréquentes. Bien sur je pourrai le faire à la main, mais je vais devoir en analyser bien davantage à l'avenir.

Voilà, ça à l’air facile dit comme ça, mais je vous assure que je galère dessus depuis un bon moment...

D'avance un grand merci à celles et ceux qui pourront m'aider !

A bientôt.

PS : désolé s'il y a déjà eu un post similaire mais j'ai cherché sur le forum et je n'ai pas trouvé. Si ce topic fait doublon c'est que (précisément) je ne connais pas le nom de ce que je cherche. D’où le titre sans doute peu clair

PS2 : je suis sur Excel 2010

17couleurs.xlsx (10.22 Ko)

Bonsoir,

Cela m'a l'air de recouper ce que j'ai fait il y a 2 jours pour autre chose que des couleurs...

Sans retouche pour adapter, sauf -1 pour les bornes de ton tableau (colonne et ligne Total) et un tri final décroissant.

(Les noms de variables sont peu en rapport avec ton thème, mais cela ne nuit pas à l'exécution ).

Cordialement.

ÉNORME !!!

C'est super ! Merci

Mais alors du coup j'ai 2 ou 3 questions :

1 / comment est-ce que tu as fait ? (oui tu peux me considérer comme un noob )

2 / est-il possible de faire la même chose pour des associations de 3 ou 4 couleurs ?

3 / y a-t-il un moyen d’éliminer automatiquement les doublons (par exemple l'association blanc / rouge fait doublon avec l'association rouge / blanc puisque c'est la même chose pour moi. je ne sais pas si je suis clair )

Encore merci, je n'en revient pas !

Les explications peuvent attendre un peu...

Associations de 3 ou 4 couleurs : rien ne s'y oppose a-priori...

Ce que tu appelles doublon n'en était pas pour la demande ayant donné lieu à l'élaboration de cette macro... mais on peut bien sûr les supprimer. Il faut enlever la boucle qui opère les substitutions permettant de créer toutes les permutations et n'associer que les combinaisons simples. Mais demain il fera jour !

Cordialement.

Bonjour,

Voilà déjà pour la version ne créant pas de "doublons"...

La méthode est assez simple. On utilise l'outil Dictionnaire qui permet diverses manipulations qui, de plus, s'exécutent de façon très rapide... Un premier dico est nommé dp.

On parcours donc la colonne A pour créer un élément de dico par image. La valeur en A constituant la clé de l'élément, on aura :

dp("image 1"), dp("image 2"), etc.

A chaque ligne, on va parcourir les colonnes de la ligne et composer une chaîne des noms de couleur à retenir (cellules ayant la valeur 1) pour l'affecter à l'élément de dico correspondant, on aura donc :

dp("image 1") = ";blanc;bleu;rouge;doré"

dp("image 2") = ";blanc;bleu;rouge;doré"

etc.

Ce premier dico établi on en définit un second, nommé df, dont les clés seront constituées par les noms d'associations de couleurs 2 à 2 trouvées dans le premier dico, dont on va parcourir tous les élément pour ce faire.

Exemple avec le premier : dp("image 1") , dont la valeur est : ";blanc;bleu;rouge;doré", on commence par transformer cette valeur en tableau selon le séparateur ";". On voit que la chaîne commençant par un ";", on aura toujours un tableau d'au-moins 2 éléments dont le premier (d'indice 0) sera vide. Il n'y aura d'association que si l'indice maximal du tableau est supérieur à 1.

Dans ce cas, on crée les éléments correspondant à chaque association, soit pour l'exemple ci-dessus, les clés du dico df : "blanc|bleu", "blanc|rouge", "blanc|doré", "bleu|rouge", "bleu|doré", "rouge|doré" (le caractère "|" est utilisé pour pouvoir séparer les deux couleurs associées dans le tableau final).

On teste évidemment l'existence de l'élément avant de le créer : s'il existait, on ajoute 1 à sa valeur, sinon on le crée en lui affectant la valeur 1.

Enfin, on trnsfère dans un tableau à 3 colonnes (et on redissocie les couples de couleurs associés)... D'ailleurs la fin de la macro est à simplifier (on faisait un tri alphabétique des associations, qui peut être supprimé puisqu'on retrie ensuite pour les classer par valeurs dans cette adaptation). Je verrai à la prochaine version.

Cordialement.

Merci de ta réponse !

En te lisant j'avais presque l'impression de comprendre ! Et puis j'ai ouvert le document et j'ai vu le codage vba...

J'ai potassé toute la journée pour essayer de progresser mais je crains d'être (très) loin du compte !

Si tu as le temps je suis intéressé par les correspondances de 3 et 4 couleurs (mais je comprendrai que toi tu ne le sois pas )

Encore merci et à bientôt !

Bonjour,

Ce type de recherche semble offrir pas mal de possibilités d'utilisation (3e sujet en peu de temps permettant d'utiliser la même méthode...)

Cette version permet de choisir de rechercher les associations de 2, 3 ou 4 couleurs.

Au lancement de la procédure, celle-ci appelle une fonction, laquelle ouvre un formulaire dans lequel l'utilisateur peut choisir 3 ou 4 (au lieu de 2 par défaut) en agissant sur un bouton-toupie. La procédure adapte la recherche au choix de l'utilisateur.

Hormis cela, le déroulement est tout à fait similaire... Je te laisse démêler l'ensemble de boucles imbriquées répertoriant les associations (en notant que l'établissement ou incrémentation de chacune est renvoyée à une petite procédure auxiliaire, pour éviter de répéter 3 fois le même code, ce qui a fait déclarer la variable objet accueillant le dico associations au niveau module (qui le rend accessible à toutes les proc. du module), (ce pourquoi on l'élimine à la fin pour libérer la mémoire...)

Cordialement.

C'est GÉNIAL !

c'est exactement ce dont j'avais besoin !

merci beaucoup !!!

Je vais devoir faire d'autres analyses d'image, j'espère que je pourrais utiliser ce que tu as fait avec plus de lignes et de colonnes.

Encore merci

Salut MFerrand

désolé de déranger mais une question me taraude.

Le tableau que tu as fait est parfait pour moi. Je me demandais s'il est possible d'insérer de lignes et colonnes sans que cela ne perturbe la macro (en fait je n'ose pas le faire de peur de tout péter).

En fait la question c'est de savoir si j’insère une ligne par exemple, est-ce que celle-ci sera prise en compte dans la zone de de calcul (genre j'ai un corpus de 25 images au lieu de 20 sur l'exemple).

D'avance merci de ta réponse !

Bonjour,

Les bornes du tableau sont calculées. Donc tant que tu conserves la même structure : ligne 1 et colonne A pour les en-têtes de colonnes et de lignes, colonne Total et ligne total (qui sont déduites de la plage prise en considération), les procédures fonctionneront de la même façon.

Cordialement.

Bonjour,

merci de ta réponse !

Je vais tenter de l'étendre alors

A bientôt

Rechercher des sujets similaires à "recherche association correspondance criteres"