Bonjour,
Je me permets de venir vers vous sur un petit problème que je ne parviens pas à résoudre.
Mes données sont réparties sur plusieurs (6) colonnes et sont de la forme x-x, où la longueur de chaque élément de part et d'autre de - est variable, et où, pour chaque ligne, ces données sont présentes a minima dans une colonne (les autres renvoient #N/A) et au maximum dans 2.
Je cherche à agréger ligne par ligne ces données en ne reprenant à chaque fois que la partie gauche de la première occurrence puis la partie droite de la dernière occurrence.
Avec des données de longueur fixe (22 caractères de part et d'autre du -) la formule suivante fonctionnait parfaitement :
Le format des données ayant changé et étant maintenant variable (x-x avec x variant entre 1 et 5 caractères), j'ai tenté la formule suivante :
=CONCATENATE((IF(ISTEXT(D2);(LEFT(D2;FIND("-";D2)-1));IF(ISTEXT(E2);(LEFT(E2;FIND("-";E2)-1));IF(ISTEXT(F2);(LEFT(F2;FIND("-";F2)-1));IF(ISTEXT(G2);(LEFT(G2;FIND("-";G2)-1));IF(ISTEXT(H2);(LEFT(H2;FIND("-";H2)-1));IF(ISTEXT(I2);(LEFT(I2;FIND("-";I2)-1));"")))))));"-";(IF(ISTEXT(I2);(RIGHT(I2;FIND("-";I2)-1));IF(ISTEXT(H2);(RIGHT(H2;FIND("-";H2)-1));IF(ISTEXT(G2);(RIGHT(G2;FIND("-";G2)-1));IF(ISTEXT(F2);(RIGHT(F2;FIND("-";F2)-1));IF(ISTEXT(E2);(RIGHT(E2;FIND("-";E2)-1));IF(ISTEXT(D2);(RIGHT(D2;FIND("-";D2)-1));""))))))))
Elle renvoie une erreur sur les deux éléments mis en gras qui ne sont pas identifiés comme des valeurs [num_chars] de LEFT et RIGHT (alors qu'ils le sont partout ailleurs dans la formule et que la formule fonctionne parfaitement jusqu'à ces deux éléments).
Je souhaiterais m'en tenir à une formule dans la mesure du possible, quelqu'un saurait-il m'aider ?
Je joins un fichier exemple.
Je me permets de venir vers vous sur un petit problème que je ne parviens pas à résoudre.
Mes données sont réparties sur plusieurs (6) colonnes et sont de la forme x-x, où la longueur de chaque élément de part et d'autre de - est variable, et où, pour chaque ligne, ces données sont présentes a minima dans une colonne (les autres renvoient #N/A) et au maximum dans 2.
Je cherche à agréger ligne par ligne ces données en ne reprenant à chaque fois que la partie gauche de la première occurrence puis la partie droite de la dernière occurrence.
Avec des données de longueur fixe (22 caractères de part et d'autre du -) la formule suivante fonctionnait parfaitement :
Code:
=CONCATENATE((IF(ISTEXT(D2);(LEFT(D2;22));IF(ISTEXT(E2);(LEFT(E2;22));IF(ISTEXT(F2);(LEFT(F2;22));IF(ISTEXT(G2);(LEFT(G2;22));IF(ISTEXT(H2);(LEFT(H2;22));IF(ISTEXT(I2);(LEFT(I2;22));"")))))));"-";(IF(ISTEXT(I2);(RIGHT(I2;22));IF(ISTEXT(H2);(RIGHT(H2;22));IF(ISTEXT(G2);(RIGHT(G2;22));IF(ISTEXT(F2);(RIGHT(F2;22));IF(ISTEXT(E2);(RIGHT(E2;22));IF(ISTEXT(D2);(RIGHT(D2;22));""))))))))
Le format des données ayant changé et étant maintenant variable (x-x avec x variant entre 1 et 5 caractères), j'ai tenté la formule suivante :
=CONCATENATE((IF(ISTEXT(D2);(LEFT(D2;FIND("-";D2)-1));IF(ISTEXT(E2);(LEFT(E2;FIND("-";E2)-1));IF(ISTEXT(F2);(LEFT(F2;FIND("-";F2)-1));IF(ISTEXT(G2);(LEFT(G2;FIND("-";G2)-1));IF(ISTEXT(H2);(LEFT(H2;FIND("-";H2)-1));IF(ISTEXT(I2);(LEFT(I2;FIND("-";I2)-1));"")))))));"-";(IF(ISTEXT(I2);(RIGHT(I2;FIND("-";I2)-1));IF(ISTEXT(H2);(RIGHT(H2;FIND("-";H2)-1));IF(ISTEXT(G2);(RIGHT(G2;FIND("-";G2)-1));IF(ISTEXT(F2);(RIGHT(F2;FIND("-";F2)-1));IF(ISTEXT(E2);(RIGHT(E2;FIND("-";E2)-1));IF(ISTEXT(D2);(RIGHT(D2;FIND("-";D2)-1));""))))))))
Elle renvoie une erreur sur les deux éléments mis en gras qui ne sont pas identifiés comme des valeurs [num_chars] de LEFT et RIGHT (alors qu'ils le sont partout ailleurs dans la formule et que la formule fonctionne parfaitement jusqu'à ces deux éléments).
Je souhaiterais m'en tenir à une formule dans la mesure du possible, quelqu'un saurait-il m'aider ?
Je joins un fichier exemple.
Pièces jointes
Dernière édition: