Bonjour à tous,
Comment faire pour séparer la colonne "C1 & C2" ci-dessous avec une seule fonction?
L'objectif est de comprendre la fonction REDUCE, fournir une application pratique et ouvrir la porte à des formules plus complexes pour vos propres fichiers.
Voici la réponse directement implantable, puis la vidéo en dessous pour une explication détaillée.
La fonction que j'utilise :
En gras, les informations à adapter à votre cas.
=EXCLURE(REDUCE("";T_Chaines[C 1 & C2] ; LAMBDA(_accu;_val; ASSEMB.V(_accu; FRACTIONNER.TEXTE(_val; "/"))));1)
Que vous pouvez facilement transformer en LAMBDA en collant ceci dans le gestionnaire de nom :
L_FRACTIONNER_TEXTE
=LAMBDA(_Tableau;_Separateur;EXCLURE(REDUCE("";_Tableau;LAMBDA(_accu;_val;
ASSEMB.V(_accu;FRACTIONNER.TEXTE(_val;_Separateur))));1))
Explication de la fonction en vidéos
Comparaison rapide des solutions alternatives
Solution | Avantages | Inconvénients |
Autre formule. | Fonctionne dans des versions plus anciennes d'excel | La fonction est plus longue et plus difficile à comprendre |
Utiliser uniquement FRACTIONNER.TEXTE | Fonction native, très rapide à implanter | Elle ne s'étend pas vers le bas |
PowerQuery | Très intéressant, surtout pour de gros volumes de données. Le résultat est sous forme de tableau. | Il faut actualiser les données. Le résultat est sous forme d'un tableau, dans certains contextes, c'est pénalisant (e.g. calculs financier) |
Données, convertir | Intéressant pour de gros volumes de données. Utilisation unique. | Il faut refaire l'opération à chaque fois. |
Autres alternatives, telles que =TEXTE.AVANT(), TEXTE.APRES(), STXT() et TROUVE(), etc. | Si la séparation ne requiert qu'un élément, ce sont d'excellentes solutions | Moins universel et parfois plus difficile à implanter. |