Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Recherche de combinaison

blond2comet

XLDnaute Nouveau
Hello all et merci d'avance pour votre précieuse aide

Je n'ai faitque très peu de VBA et cela remonte a fort longtemps maintenant et me voici bloquée.

J'ai un charmant fichier base article qui contient quelques 30000 refs. Le PIM est super mal fait et donc difficilement exploitable. .. je dois donc le retravailler

A chaque article correspond un certain nombre d'attributs. Chaque type d'attribut = 1 colonne (il y en a env. 200)
Je cherche une formule qui trouve les lignes qui ont les mêmes attributs non vides et pour chaque combinaison donne un nom (genre aa , ab, ac etc )

Le nec plus ultra serait que sur une 2e feuillê, je puisse automatiquement reporter: aa correspond a hauteur, longueur, diamètre renseignés

J'espère être claire, je vous mets un mini fichier excel en pj à titre d'exemple
 

Pièces jointes

  • Excel simulation pour création groupes attributs.xlsx
    8.6 KB · Affichages: 27
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Recherche de combinaison

Bonjour blond2comet,

Un essai dans le fichier (avec une codification différente de la votre et la légende sur la même feuille).
 

Pièces jointes

  • blond2comet- simulation pour création groupes attributs- v1.xlsm
    21.4 KB · Affichages: 17
Dernière édition:

blond2comet

XLDnaute Nouveau
Re : Recherche de combinaison

En fait, j'allais justement te poser la question... car tu as traité les colonnes avec une désignation code ASCII (limité à 255 caractères je crois) et il est malheureusement envisageable qui il y ait plus de 255 caractéristiques (ce fichier est dingue)...

A ce moment là, est qu'on peut récupérer le nom de la colonne ou n'importe quelle autre codification ? Le nom de la famille importe peu, le tout est de réussir à regrouper les refs en fonction des attributs complétés.

Merci mille fois pour ton aide.
 

ODVJ

XLDnaute Impliqué
Re : Recherche de combinaison

Bonjour à tous,

si le codage t'importe peu, je te propose de signer chaque enregistrement avec la formule :
Code:
=DECHEX(SOMMEPROD((B4:AK4<>"")*TRANSPOSE(2^(36-LIGNE($1:$36))));9)&DECHEX(SOMMEPROD((AL4:BU4<>"")*TRANSPOSE(2^(36-LIGNE($1:$36))));9)&DECHEX(SOMMEPROD((BV4:DE4<>"")*TRANSPOSE(2^(36-LIGNE($1:$36))));9)&DECHEX(SOMMEPROD((DF4:EO4<>"")*TRANSPOSE(2^(36-LIGNE($1:$36))));9)&DECHEX(SOMMEPROD((EP4:FY4<>"")*TRANSPOSE(2^(36-LIGNE($1:$36))));9)&DECHEX(SOMMEPROD((FZ4:GS4<>"")*TRANSPOSE(2^(20-LIGNE($1:$20))));5)
Les 200 attributs sont en B:GS.

Il s'agit de la conversion en hexa de la transcription binaire de 200 bits qui valent 1 si un attribut contient quelque chose et 0 sinon.
A cause des limites de la fonction DECHEX, j'ai saucissonné les 200 colonnes en 5 paquets de 36 et 1 de 20.
Un paquet de 36 bits devient un nombre hexa de 9 positions.

J'ai créé un fichier de 31 000 lignes sur 200 colonnes rempli aléatoirement à 30% par des nombres.
J'ai eu la mauvaise surprise de ne trouver que 3 doublons!!
J'espère que tes données seront plus "regroupables".

Les temps de réponses ne sont pas désespérants.
A toi de voir.

Cordialement
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Recherche de combinaison

Re ,

Un deuxième essai avec un grand nombre de colonnes. Pour 30 000 lignes et 200 colonnes, la macro prend environ 17 sec.

nota: à partir des 1000 lignes de données du fichier, CTRL+MAJ+L lance une macro qui initialise à 30 000 lignes de données.
 

Pièces jointes

  • blond2comet- simulation pour création groupes attributs- v2.xlsm
    756.4 KB · Affichages: 23
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…