XL 2019 Problème de concaténations automatisées

magicglide

XLDnaute Nouveau
Bonjour,
Je cherche à automatiser la concaténation de chaines de caractères placées dans un tableau.
Pour le moment, la seule chose que j'obtienne c'est des noeuds au cerveau mais pas de résultats.
J'ai besoin d'un bon coup de main.

Mes explications seront plus claires, une fois le fichier ouvert.

Ce que je veux automatiser c'est la partie 5, les cellules grisées.
Idéalement je souhaiterai une formule, pas de vba, je ne serais pas l'exploiter après.
J'ai tenté d'automatiser la concaténation à l'aide d'une formule utilisant les fonctions index et equiv... hélas sans succès.

Dès que le format des concaténations est défini en 4, alors les cellules grises devraient (dans un mode idéal) se remplir automatiquement et exhaustivement des concaténations. J'ai écrit à la main quelques exemples simples des résultats attendus.
Evidemment, il peut y avoir des centaines voire des milliers de concaténations générées selon le +/- grand nombre de lignes et de facteurs...


En 3 grâce aux listes déroulantes, je fabrique le format de concaténation qui apparait en 4.
Peu importe la saisie des facteurs dans les listes déroulantes, on doit concaténer selon le résultat affiché en 4.
Les chaines concaténées sont séparées par un espace entre elles.

En 2, le tableau des chaines de caractères à concaténer identifiées par 6 'Facteurs' (colonne) par 15 'Champs' (ligne).

En 1 bleu, le nombre total de combinaisons possible pour les champs sélectionnés par 'x'
En 1 rouge, le nombre total de combinaisons pour l'ensemble des champs saisis

J'espère avoir été clair, sinon n'hésitez pas à me demander.
Merci d'avance pour votre aide.
RV
 

Pièces jointes

  • concat.xlsx
    27.1 KB · Affichages: 7

CISCO

XLDnaute Barbatruc
Bonjour

Cela serait bien si tu expliquais les règles régissant quelques uns des résultats que tu as écris dans les cellules grises. On voit assez facilement de quelles colonnes ils proviennent, mais il nous faut d'autres informations pour tout comprendre...

@ plus
 

magicglide

XLDnaute Nouveau
Ah zut pardon, je suis tellement dans mon truc que c'est évident pour moi, désolé.

L'idée générale :
Il existe des arguments (chaines de caractères) classés par facteurs que je souhaiterai concaténer entre eux selon 2 règles :
1) s'ils sont sélectionnés par le 'x'
2) selon l'ordre de concaténation construit grâce aux listes déroulantes et donné dans les cellules de la ligne 29.

Prenons exemple avec la 1ère colonne de résultats de D30 à D50.
Le format de concaténation (D29) préconise de concaténer 2 chaines de caractères représentées symboliquement par F1 et F2.
Il s'agit donc de prendre les 9 chaines sélectionnées par 'x' de la colonne du Facteur 1 ('F1' : cellules D6 à D14) et de les concaténer une à une avec les lignes sélectionnées de la colonne du Facteur 2 ('F2' : cellules F7 et F10).
18 concaténations totales, car on ne concatène uniquement les chaines sélectionnées et non pas l'ensemble des chaines du tableau.

Les cellules de la ligne 29 donne le sens de la concaténation.
Dans l'exemple du dessus (D29) on prend d'abord toutes les chaines de F1 qu'on concaténe aux 2 chaines de F2, tour à tour.

Dans la cellule F29, on commence à concaténer les éléments de F5 à F3 à F2 enfin à F6.

On applique ce même principe à chacun de ce que j'appelle des "formats de concaténation" pour remplir les cellules grisées.

Selon le nombre de facteur demandé et selon le nombre de chaines sélectionnées, je comprends qu'il pourrait y avoir des centaines voire des milliers de résultats.

J'espère que c'est plus clair.
Et je te remercie de te pencher sur ce problème...
 
Dernière édition:

magicglide

XLDnaute Nouveau
Merci st007 de t'être penché sur le problème mais le résultat escompté n'est pas tout à fait celui que tu affiches

Plusieurs erreurs
- dans ta colonne 'F2' tu n'as qu'un seul élement, donc il y a bien 9 concaténations. Malheureusement il ne se passe rien si je sélectionne une nouvelle ligne ( via 'x') dans ma colonne F2, les concaténations ne sont donc pas automatisées.
- l'ordre de concaténation (D29) pour cette colonne de résultats, préconise de concaténer de F1 à F2. Tu as fait l'inverse, tes résultats affichent d'abord les éléments de 'F2'. Par exemple ton 1er résultat : "C2F2C1F1" devrait être : "C1F1 C2F2"
- enfin idéalement, les concaténations sont séparées par un espace
 

magicglide

XLDnaute Nouveau
Dans un monde idéal....
L'idée serait de mettre en place une formule a étirer dans les cellules grises. La feuille reste interactive, les concaténation se recalculent automatiquement.

Je peux alors sélectionner/déselectionner autant de chaine de caractère que je veux (dans la limite des 15 lignes et des 6 facteurs).
Grâce aux listes déroulantes je construis mes ordres de concaténations comme je l'entends, les concaténations se reconstruisent automatiquement...
 
Dernière édition:

magicglide

XLDnaute Nouveau
re, c'est du power query, pose tes "x", puis onglet données actualiser tout
f1-f2, f6-f5
Ah pardon je ne connais pas PQ.

Donc effectivement ça fonctionne, sauf le traitement des espaces entre chaque chaine et l'ordre des chaines représentées par 'F1', 'F2' reste inversé.

Le seul truc, c'est que je ne connais pas PQ et du coup je ne sais même pas reproduire ton résultat sur les autres colonnes grisées...
 

magicglide

XLDnaute Nouveau
Ah oui bravo, c'est corrigé, les résultats sont ceux attendus.

Mais attention... je suis taquin.
Les listes déroulantes me permettent de construire l'ordre de concaténation.
Malheureusement dans notre 1ère colonne D (dans mon fichier d'origine) si j'inverse le sens de la concaténation càd si je sélectionne 'F2' en D22 et 'F1' en D23, l'ordre de concaténation inscrit en D29 ("F2 F1") ne s'effectue pas après réactualisation... :(
 

magicglide

XLDnaute Nouveau
Trop bien !
Trop fort, trop beau... Chapeau st007.

Ca marche parfaitement comme demandé. C'est top, vraiment un grand merci à toi.
Je suis incapable de raisonner pour sortir une formule pareille. J'ai pas le cerveau pour.

Je vais essayer de la reproduire dans les 5 autres colonnes, sans garantie d'y parvenir. Oserai-je te demander d'anticiper et de le faire en parallèle parce que si je n'y arrivais, je reviendrai vers toi. Mais ne la livre pas tout de suite stp, je voudrai quand même essayer...

Encore mille merci :)
 

st007

XLDnaute Barbatruc
voilou, enfin je crois
des noms défini pour le nombre maximum de possibilités
l'idée est de recréer tes listes (en fonction des "x") s4:x20
Reconstituer l'ordre de tes choix : s21:x37 ........
Se servir de ces zones pour la création des combinaisons possibe
il reste que si tes choix lignes 22:27 ne se font pas à partir de la ligne 22, des espaces dans les combinaison apparaissent. (f1 en ligne 22, f2 en ligne 27 ---> C1F1 C1F2)
 

Pièces jointes

  • concat (1).xlsx
    40.1 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 292
Membres
103 171
dernier inscrit
clemm