X colonnes d'une plage dynamique en 1 et seulement les lignes avec du texte

Bonjour,

Cela fait plusieurs jours que je cherche à créer la formule qui va me permettre de fusionner X colonnes en 1 seule et seulement les lignes qui contient du texte.

J'ai un début de formule comme suit (je joins un fichier d'exemple pour que cela soit plus clair):

=LET(debutmat;C2#; donne;DECALER(debutmat;1;0;6); filtcode;{"Lot1";"Truc1"}; matcol;(debutmat=filtcode)*COLONNE(debutmat); coll;PETITE.VALEUR(matcol;SEQUENCE(SOMMEPROD(--(matcol<>0));;SOMMEPROD(--(matcol=0))+1;1))-PETITE.VALEUR(COLONNE(debutmat);1)+1; donnecol;CHOISIRCOLS(donne;coll); donnecol )

J'aimerai avoir la formule qui n'aura pas besoin d'être modifiée si j'ajoute d'autre terme dans "filtcode" donc si j'ai plus que 2 colonnes dans ma matrice "donnecol".

J'ai bien essayé avec les formules comme BYCOL / BYROW / DECALER ou encore FILTRE mais sans succès...

Merci de votre aide

Bonjour à tous !

Peut-être ceci ?

=TRIER(DANSCOL(C3:F8;3))

Bonjour à tous,

Une proposition, améliorable sans doute :

=LET(td;C3:F8;tt;C2#;tc;{"Lot1"."Truc1"};DANSCOL(CHOISIRCOLS(td;BYCOL(tc;LAMBDA(p;EQUIV(p;tt;0))));3;VRAI))

Cordialement

Waouh !!

Les 2 solutions fonctionnent et me permettent de simplifier grandement la formule.

Voici la solution que j'ai choisie:

=LET(debutmat;C2#; donne;DECALER(debutmat;1;0;6); filtcode;{"Lot1";"Truc1"}; DANSCOL(CHOISIRCOLS(donne;BYROW(filtcode;LAMBDA(p;EQUIV(p;debutmat;0))));3;VRAI) )

Merci beaucoup. Je viens de découvrir la fonction "DANSCOL" que je ne connaissais pas. Et une bonne utilisation du BYROW/BYCOL et LAMBDA.

Bonsoir à tous de nouveau !

Et pour une "gestion" des lots via une table de correspondance :

Rechercher des sujets similaires à "colonnes plage dynamique seulement lignes texte"