[Formule] scinder cellule en 2 (... ou 3!)

nanouuu

XLDnaute Nouveau
Bonjour,

J'ai une colonne de données.
Chaque cellule de la colonne contient une information de ce type :
soit AAA
soit AAA:BBB
soit AAA:BBB:CCC


Je dois scinder chaque cellule en 1, 2 ou 3 cellules, en utilisant le séparateur ':'. Pour réutiliser les données pour autre chose...
Les données n'ont bien sur jamais la même taille...
J'arrive à le faire grâce à une macro mais il faut drait que j'évite d'utiliser les macros...

Existe-t-il une formule pour cela?
Une formule qui fasse plus ou moins l'inverse de Concatener

Vous remerciant par avance !!!
Nanou
 

nanouuu

XLDnaute Nouveau
Re : [Formule] scinder cellule en 2 (... ou 3!)

Merci pour ta réponse, mais je cherche à le faire par formule...

C'est pour faire un fichier qui servira à plusieurs personnes (qui ne veulent pas s'embêter à cliquer partout...), donc c'est à moi de m'embeter à le faire automatiquement...

Et pas par macro car elles sont désactivées sur tout les postes...

Vive les stagiaires ! ^^
 
Dernière édition:

abcd

XLDnaute Barbatruc
Re : [Formule] scinder cellule en 2 (... ou 3!)

Bonour,

Si les données sont toujours du type XXX et XXX:XXX et XXX:XXX:XXX
La chaine de caractères en A1
B1 : =GAUCHE(A1;3)
C1 : =STXT(A1;5;3)
D1 : =STXT(A1;9;3)
formules à copier vers le bas.

abcd
 

nanouuu

XLDnaute Nouveau
Re : [Formule] scinder cellule en 2 (... ou 3!)

Merci beaucoup abcd
Voici un début d'avancement pour moi :)

Par contre, et cela je ne l'avais pas précisé, les données ne sont pas forcément toujours de taille identique...
je peux avoir 1234:123456 comme je peux avoir 12:123:123456 ou même 1234:11 ect...
(Pas forcément des chiffres non plus, c'est pour l'exemple)

Me voici donc encore embêtée...
Je pensais à utiliser la formule
=TROUVE(":";A1)
pour récupérer les positions de mes séparateurs et pour les utiliser ensuite avec la formule =STXT()...

Mais cela me renvoi uniquement la position de mon premier séparateur...
Et maintenant je bloque pour récupérer la position de mon 2ème...

Une idée?

Merci beaucoup!
Nanouuu
 

nanouuu

XLDnaute Nouveau
Re : [Formule] scinder cellule en 2 (... ou 3!)

Je viens d'avoir une autre idée mais ça me paraît "lourd".

Ce serait donc dans cellule
A1 -> Mes données concaténées
B1 -> =TROUVE(":";A1) // récupérer la place de mon 1er séparateur
C1 -> =NBCAR(A1) // récup la longueur de mes données
D1 -> =DROITE(A1;(C1-B1)) // récup partie droite (après 1er séparateur)
E1 -> =TROUVE(":";D1) // rebelotte
F1 -> =NBCAR(D1) //
G1 -> =DROITE(D1;(F1-E1)) //

M'égare-jeeee ou bonne idée???
Je débute...

Mais je trouve ça un peu lourd surtout que je dois faire ça sur 2 colonnes de données de départ, pour récupéré la 1ere valeur de l'une, la 2eme valeur de l'autre, et la 3eme valeur de la premiere.... et concaténer ça dans une derniere toute nouvelle colonne :D
euhhhhhhhh

Je vais essayer encore hein!

;)
Merci...
 
Dernière édition:

nanouuu

XLDnaute Nouveau
Re : [Formule] scinder cellule en 2 (... ou 3!)

Merci beaucoup Denis123

Ton aide m'a bien aidée. Et j'ai réussi à venir à bout de mon problème !

Juste comme ça si ça intéresse quelqu'un, (bien que je sois incapable de la commenter!), voila ma formule finale !!!

=SI(D11="";"";SI(A11="";"";(SI(TYPE(TROUVE(":";A11))=16;A11;SI(TYPE(TROUVE(":";DROITE(A11;(NBCAR(A11)-(TROUVE(":";A11))))))=16;(GAUCHE(A11;(TROUVE(":";A11)-1)))&":"&(DROITE(D11;(NBCAR(D11)-(TROUVE(":";D11)))));( GAUCHE(A11;(TROUVE(":";A11)-1))&":"& STXT(D11; (TROUVE(":";D11))+1; ((TROUVE(":";DROITE(D11;(NBCAR(D11)-(TROUVE(":";D11))))))-1))&":"& DROITE(D11;NBCAR(D11)-((TROUVE(":";D11))+(TROUVE(":";DROITE(D11;(NBCAR(D11)-(TROUVE(":";D11))))))))))))))

Bien complexe je l'avoue, mais pas réussi à faire autrement...

Encore merci à vous.
nanouuu
 

Discussions similaires

Réponses
10
Affichages
499

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22