Voir le flux RSS

Pierre Fauconnier

Excel 365: &, Concatener, Concat, Joindre.Texte: Que choisir pour assembler des textes?

Noter ce billet
par , 18/10/2019 à 09h00 (1129 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.
Nom : 2019-10-18_070034.png
Affichages : 309
Taille : 3,5 Ko

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.
Nom : 2019-10-18_070613.png
Affichages : 291
Taille : 3,3 Ko

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.
Nom : 2019-10-18_071239.png
Affichages : 298
Taille : 4,4 Ko

CONCAT ignore les cellules vides, de sorte que l'on peut utiliser éventuellement une ligne ou une colonne entière.
Nom : 2019-10-18_071301.png
Affichages : 329
Taille : 5,5 Ko


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.
Nom : 2019-10-18_071952.png
Affichages : 320
Taille : 5,7 Ko

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.
Nom : 2019-10-18_084915.png
Affichages : 297
Taille : 6,4 Ko

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?
Nom : 2019-10-18_085742.png
Affichages : 321
Taille : 14,8 Ko


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?

Envoyer le billet « Excel 365: &, Concatener, Concat, Joindre.Texte: Que choisir pour assembler des textes? » dans le blog Viadeo Envoyer le billet « Excel 365: &, Concatener, Concat, Joindre.Texte: Que choisir pour assembler des textes? » dans le blog Twitter Envoyer le billet « Excel 365: &, Concatener, Concat, Joindre.Texte: Que choisir pour assembler des textes? » dans le blog Google Envoyer le billet « Excel 365: &, Concatener, Concat, Joindre.Texte: Que choisir pour assembler des textes? » dans le blog Facebook Envoyer le billet « Excel 365: &, Concatener, Concat, Joindre.Texte: Que choisir pour assembler des textes? » dans le blog Digg Envoyer le billet « Excel 365: &, Concatener, Concat, Joindre.Texte: Que choisir pour assembler des textes? » dans le blog Delicious Envoyer le billet « Excel 365: &, Concatener, Concat, Joindre.Texte: Que choisir pour assembler des textes? » dans le blog MySpace Envoyer le billet « Excel 365: &, Concatener, Concat, Joindre.Texte: Que choisir pour assembler des textes? » dans le blog Yahoo

Commentaires

  1. Avatar de Malick
    • |
    • permalink
    Salut Pierre,

    Comme à mes habitudes, j'essaie d'appliquer tes astuces

    Cependant, la fonction JOINDRE.TEXTE() n'est pas présente sur ma version d'Excel Professionnelle 2016



    Quelque chose à activer ?

    Peut-être est-ce sur 2019 seulement, car je viens de lire ceci :

    Remarque : Cette fonctionnalité est disponible sur Windows ou Mac si vous avez Office 2019, ou si vous avez un abonnement Microsoft 365. Si vous êtes un abonnéMicrosoft 365, assurez- vous que vous disposez de la dernière version d’Office.
    Mis à jour 14/11/2020 à 04h51 par Malick
  2. Avatar de Pierre Fauconnier
    • |
    • permalink
    Salut Malick,

    Merci de passer par mon blog.

    En fait, je dis dans le texte, mais de manière trop discrète, qu'il s'agit de fonctions disponibles dans les versions 365 et 2019 d'Excel. La version 2016 ne dispose donc ni de CONCAT ni de JOINDRE.TEXTE.

    Désolé pour toi.

    Je vais modifier le titre et préciser explicitement les versions pour lesquelles ces fonctions sont disponibles
  3. Avatar de Malick
    • |
    • permalink
    Salut Pierre,

    Merci bien pour ce retour qui confirme mon doute aussi

    Bon week-end

    Superbe tes billets
  4. Avatar de Pierre Fauconnier
    • |
    • permalink
    Salut Malick,

    J'ai précisé la limitation 365 dans le titre du billet et l'ai mieux mise en évidence dans le code.

    N'hésite pas à commenter mes posts, c'est toujours intéressant de savoir qu'on est lu et de les améliorer sur base de tes critiques et commentaires.

    Bon dimanche
  5. Avatar de Malick
    • |
    • permalink
    Salut,

    Citation Envoyé par Pierre Fauconnier

    En fait, je dis dans le texte, mais de manière trop discrète, qu'il s'agit de fonctions disponibles dans les versions 365 et 2019 d'Excel. La version 2016 ne dispose donc ni de CONCAT ni de JOINDRE.TEXTE.

    Désolé pour toi
    Pour profiter davantage des nouveautés, je viens de passer à Office 365. Merci pour l'orientation