Excel 365: &, Concatener, Concat, Joindre.Texte: Que choisir pour assembler des textes?
par
, 18/10/2019 à 08h00 (4021 Affichages)
Salut.
Avec Excel, on a régulièrement besoin de fusionner des textes, d'assembler en une seule valeur plusieurs cellules. Cette technique d'assemblage de texte s'appelle la concaténation. Bien évidemment, Excel répond à ce besoin et proposait jusqu'à la version 2016 comprise un opérateur et une fonction.
La fonction CONCATENER
Assez naturellement, la fonction de concaténation s'appelle CONCATENER et peut recevoir jusqu'à 255 chaînes de caractères à assembler. Son utilisation est assez simple.
La fonction CONCATENER souffre d'un problème qui rend son utilisation assez lourde: Elle ne peut pas recevoir une plage de données. Il faut donc reprendre chaque chaîne dans un argument isolé. Il n'est pas possible, par exemple, d'utiliser =CONCATENER(A1:A10) pour assembler les 10 premières cellules de la colonne A. Il faut obligatoirement écrire =CONCATENER(A1;A2;A3;...). Vous imaginez devoir réaliser la somme de A1:A10 de cette manière? =SOMME(A1;A2;A3;...) au lieu de =SOMME(A1:A10]? Qui plus est, si à un moment de la vie du classeur la plage est étendue, CONCATENER ne tiendra pas compte des nouvelles données et il faudra modifier la formule... Ce n'est guère pratique, et comme CONCATENER ne sait pas être utilisée en matricielle, on a en fait comme seule solution pérenne de passer par une fonction perso en VBA.
L'opérateur &
Excel propose un opérateur de concaténation (une sorte de signe +, mais pour les textes...). Cet opérateur est le signe & (de son nom poétique esperluette). Il s'utilise comme tout opérateur en Excel et est très souvent utilisé à la place de CONCATENER. Comme tout opérateur, il impose, lui aussi, de citer chaque chaîne de l'assemblage.
Cette obligation de citer chaque élément était bloquante pour certaines utilisations, et il avait été maintes fois demandé à Microsoft de mettre au point une fonction qui permettait d'utiliser à tout le moins une plage, voire une matrice.
Les versions 365 et 2019 ont vu apparaître deux nouvelles fonctions: CONCAT et JOINDRE.TEXTE.
La fonction CONCAT
CONCAT peut utiliser une plage de cellules pour les assembler sans qu'il soit besoin de citer chaque cellule de ladite plage.
CONCAT ignore les cellules vides, de sorte que l'on peut utiliser éventuellement une ligne ou une colonne entière.
La fonction JOINDRE.TEXTE
La fonction JOINDRE.TEXTE, apparue en même temps que CONCAT, ajoute la possibilité d'utiliser un séparateur et permet, lorsqu'un séparateur est utilisé, d'ignorer ou pas les cellules vides. Elle permet, par exemple, de rassembler en une seule chaîne des mots-clé séparés par une virgule.
Avec la prise en compte des cellules vides, elle permettrait de préparer une colonne utilisable pour la création d'un fichier CSV, par exemple.
Le deuxième argument qui spécifie la prise en compte des cellules vides n'est opérant que lorsqu'un séparateur est précisé. Si un séparateur est précisé, JOINDRE.TEXTE ne peut pas utiliser une ligne entière car, tout comme CONCAT, la valeur renvoyée est limitée à 32.767 caractères.On pourrait techniquement l'utiliser pour une colonne entière avec séparateurs, mais il faut imaginer la suite de séparateurs collés l'un à l'autre. Dans les faits, ce n'est donc pas exploitable.
Utilisation en matricielle
CONCAT et JOINDRE.TEXTE peuvent être utilisées en matricielle, ce qui permet d'exprimer des conditions pour déterminer les cellules qui doivent être utilisées, comme ci-dessous pour extraire les mots-clé par utilisateur. Sympa, non?
Personnellement, j'ai choisi: j'utilise l'opérateur & ou la fonction JOINDRE.TEXTE. CONCATENER est pour moi au oubliettes depuis longtemps vu sa lourdeur et, JOINDRE.TEXTE étant plus puissante que CONCAT, je considère CONCAT comme mort-née.
Et vous?
Cconnaissiez-vous ces nouvelles fonctions 2019-365?
Quel est votre choix parmi ces possibilité?
L'utilisation de Joindre.Texte en matricielle, ça vous parle? Ca vous donne des idées pour vos fichiers?