3.6 Fonctions de texte

LOC – 27/06/2018 – 2

Plan de la fiche

1. Avant de commencer

1.1 Le paradoxe «Formule – Texte»

1.2 formats et cadrages

1.3 Approche pédagogique

1.4 Vocabulaire et syntaxe

2. Manipulation de texte

Cherche()

Concatener()

Droite()

Epurage()

Exact()

Gauche()

Majuscule()

Minuscule()

Nompropre()

Remplacer()

Rept()

Stxt()

Substitue()

Supprespace()

T()

3. Texte vers nombre

Arabe()

Cnum()

Decimal()

Nbcar()

Trouve()

4. Nombre vers texte

Romain()

Base()

Ctxt()

Franc()

Texte()

5. Codage

Car()

Code()

Unicar()

Unicode()

Présentation

Les fonctions de texte sont particulièrement appréciées par ceux qui soignent la mise en forme de leurs tableaux. Elles sont relativement faciles à mettre en œuvre et méritent donc qu’on s’y intéresse

Préalables

Connaître la résolution d’erreur avec la fonction Sierreur() : 3.3 Composer une formule, § 5. Messages d’erreurs.

Caractères génériques et expressions régulières : 3.3 Composer une formule, § 3.3 Utiliser les caractères génériques ou les expressions régulières.

1. Avant de commencer 

1.1 Le paradoxe «Formule – Texte»

Une des grandes forces d’un tableur est de faire aussi des opérations sur les chaînes de caractères.

Je rappelle qu’une cellule destinée à recevoir une formule de calcul (fût-ce sur des textes) doit être déclarée de type Nombre ou assimilée (Date, Heure, Pourcentage, Monnaie, Fraction). C’est la première condition pour qu’une formule soit reconnue. La deuxième condition, c’est que le contenu de cette cellule commence par “=”. Une cellule de type  Texte recevant une formule (commençant par “=”) affichera la formule comme un texte sans l’interpréter.

Le paradoxe est là : déclarer une cellule Nombre pour y enregistrer une formule destinée à traiter des textes pouvant donner comme résultat une information de type Texte.

1.2 Formats et cadrages

Il existe en fait deux niveaux de formatage dans une cellule. Le niveau cellule et le niveau information. Au niveau Cellule, le format va décider la couleur du fond, la bordure, le cadrage de l’information (à droite, à gauche, au centre), la forme de l’information (police, couleur). Au niveau de l’information, le format précise la nature de l’information (Nombre, Date, Texte), sa présentation (séparateurs, décimales).

Les formules de Texte génèrent de l’information, indépendamment du format au niveau Cellule. Le format échappe en général aux formules. Néanmoins, ce formatage au niveau Cellule peut être calculé avec la fonction Formatage conditionnel. Je le présente en détail ici : 4.2 Le formatage conditionnel.

1.3 Approche pédagogique

Je présente les formules de Texte en les regroupant par type d’opérations :

  • Manipulations de texte : ces formules partent d’un texte pour donner un résultat de type Texte ou donner des informations sur ce texte.
  • Texte vers nombre : ces formules partent d’un texte exprimant un nombre pour générer un résultat de type Nombre.
  • Nombre vers texte : ces formules transforment une information de type Nombre en un résultat de type Texte.
  • Codages : ces formules retournent un ou des codes à partir d’un texte. Les formules relatives aux codages DBCS, JIS, etc. sont ignorées.

1.4 Vocabulaire et syntaxe

J’emploie indistinctement pour désigner une chaîne de caractères, les mots : Texte, Caractère, Chaîne de caractères.

Les Textes peuvent être des constantes ou des références de cellules Texte. Les constantes utilisées en paramètres des fonctions sont toujours entre guillemets doubles. Certains paramètres peuvent n’admettre que des constantes.

Les guillemets doubles s’obtiennent sur un clavier AZERTY français avec la touche « 3 ». Mais les préférences syntaxiques LibreOffice doivent préciser que ceux-ci ne doivent pas être remplacés. C’est expliqué ici : 1.1 Paramétrages de base conseillés, § 3.4 Outils.

2. Manipulations de texte

Cherche (Texte cherché; Base; [à partir de])

Retourne la position (de 1 à N) du Texte cherché dans Base. La recherche peut commencer à partir de (premier caractère (1) si omis).

Texte cherché est une séquence quelconque de caractères.

La recherche se fait indépendamment de la casse.

Si la recherche n’aboutit pas, la fonction retourne #Valeur!

Avec A1 = abc, A2 = 123456789ABC0123,

Cherche(A1; A2) = 10.

Voir aussi Trouve().

Concatener (Texte-1; Texte-2; … ; Texte-30)

Retourne un Texte résultant de la mise bout à bout des Texte-1, Texte-2, etc.

Admet 30 paramètres maximum.

Résultat équivalent à Texte-1&Texte-2&…&Texte-30.

Concatener (“Bonjour·”; “Monsieur·”;“Dubois”) = Bonjour·Monsieur·Dubois. (Notez les espaces – · – à la fin de deux premiers mots).

Droite (Base[; N derniers caractères])

Retourne les N derniers caractères (à droite) de Base.

N derniers caractères est un nombre entier positif, éventuellement nul ou supérieur au nombre de caractères de Base. Omis, = 1.

Base est une constante Texte entre guillemets doubles ou la référence d’une cellule quelconque.

Droite(« abcdef »; 3) = abc

Comparable à : Gauche().

Voir aussi Stxt().

Epurage (Base)

Retourne Base après suppression de tous les caractères non imprimables. Cette fonction garantie une impression sans anomalie ni bizarrerie.

Exact (Texte-1; Texte-2)

Compare Texte-1 et Texte-2 et retourne la valeur VRAI ou FAUX.

La casse est prise en compte. Si les deux Texte sont identiques, le résultat est VRAI, sinon, le résultat est faux.

Exact(« ABC »; « abc ») = FAUX

Exact(« 123a »; « 123a ») = VRAI.

Gauche (Base[; N premiers caractères])

Retourne le N premiers caractères (à gauche) de Base.

Base est une constante Texte entre guillemets doubles ou la référence d’une cellule quelconque.

N premiers caractères est un nombre entier positif, éventuellement nul ; si omis = 1.

Gauche(« ABCDEFG »; 3) = ABC.

Comparable à Droite().

Voir aussi Stxt().

Majuscule (Base)

Retourne Base après avoir converti les minuscules en majuscules.

Base peut être une constante Texte entre guillemets doubles ou la référence d’une cellule quelconque.

Majuscule(« Abcde ») = ABCDE

Voir aussi Minuscule(), Nompropre().

Minuscule (Base)

Retourne Base après avoir converti les majuscules en minuscules.

Base peut être une constante Texte entre guillemets doubles ou la référence d’une cellule quelconque.

Minuscule(« Abcde ») = abcde

Voir aussi Majuscule(), Nompropre().

Nompropre (Base)

Retourne Base après avoir converti l’initiale de chaque mot en majuscule et les autres caractères en minuscules.

Base peut être une constante Texte entre guillemets doubles ou la référence d’une cellule quelconque.

Nompropre(« open OFFICE ») = Open Office

Cette forme est courante en anglais US, mais ne convient pas à la syntaxe habituelle du français.

Voir aussi Majuscule(), Minuscule().

Remplacer (Texte de départ; Position; Nb de caractères ; Texte de remplacement)

Retourne Texte de départ après avoir remplacé les Nb de caractères à partir de la Position par le Texte de remplacement.

Texte de départ est une chaîne de caractères entre guillemets doubles ou la référence d’une cellule quelconque.

Position est un nombre entier positif non nul dans Texte de départ à partir de laquelle le remplacement va se faire. Pour le premier caractère, Position = 1. Si Position est supérieur au nombre de caractères de Texte de départ, Texte de remplacement sera collé en fin de Texte de départ. Si le paramètre est incorrect, une erreur #502 est retournée.

Nb de caractères indique combien de caractères dans Texte de départ vont être supprimés à partir de Position par le Texte de remplacement. Peut être nul, dans ce cas Texte de remplacement est inséré à Position dans Texte de départ. Peut être supérieur au nombre de caractères de Texte de départ, et dans ce cas, Texte de remplacement remplace purement et simplement Texte de départ.

Remplacer(« 123456789 »; 4; 1; « 000 ») = 12300056789

Rept (Base; Répétition)

Retourne un texte composé de Répétition fois Base.

Base est une constante Texte entre guillemets doubles ou la référence d’une cellule quelconque.

Répétition est un nombre entier positif éventuellement nul.

Rept(« 123 »; 2) = 123123

Voir aussi Substitue().

Stxt (Base; Position de départ; Nb caractères)

Extrait à partir de Position de départ, Nb caractères de Base.

Base est une constante Texte entre guillemets doubles ou la référence d’une cellule quelconque.

Position de départ est un entier positif non nul. S’il est plus grand que le nombre de caractères de Base, la fonction renvoie un texte vide.

Nb caractères est un entier positif éventuellement nul ou supérieur au nombre de caractères disponibles.

Stxt(« azertyuiop »; 2; 4) = zert

Voir aussi Droite(), Gauche().

Substitue (Base; Texte à remplacer; Texte de remplacement [; Nb fois])

Retourne Base après avoir remplacé partout ou le Nb de fois indiqué, Texte à remplacer par Texte de remplacement.

Base, Texte à remplacer et Texte de remplacement sont des constantes Texte entre guillemets doubles ou les références de cellules quelconques.

Nb de fois est un entier positif éventuellement nul. Si absent = partout.

Substitue(« abcde123efg »; « e »; « x ») = abcdx123xfg

Voir aussi Rept().

Supprespace (Base)

Retourne Base après avoir supprimé éventuellement les espaces en début ou fin de chaîne, et les espaces excédentaires entre les mots pour n’en laisser qu’un.

(Dans l’exemple, les espaces sont matérialisées par “·”)

Supprespace(« ·Bonjour···les···amis.· ») = Bonjour·les·amis.

T (Valeur)

Si Valeur est une référence de cellule de type Texte ou une constante Texte, retourne le contenu de cette cellule ou la constante. Sinon, retourne une chaîne vide.

T(12345) = (chaîne vide)

T(« 12345 ») = 12345.

Cette fonction permet de confirmer la nature Texte d’une information.

3. Texte vers nombre

Arabe (Base)

Retourne un nombre en chiffres arabes à partir du nombre en chiffres romains.

Base contient un nombre en chiffres romains, posé entre guillemets doubles, ou la référence d’une cellule Texte.

Arabe(“XX”) = 20.

La fonction inverse est Romain().

Cnum (Base)

Retourne Base dans un format numérique.

Base peut être une chaîne de caractères entre guillemets doubles ou la référence d’une cellule Texte.

Si Base ne peut pas être transformé en nombre, une erreur #502 est retournée.

Cnum(“123”) = 123.

Decimal (Nombre; Base)

Interprète Nombre dans la Base de numérotation et retourne le nombre correspondant, de type Nombre.

Nombre peut être une constante entre guillemets doubles ou une référence de cellule Texte. La casse n’est pas prise en compte.

Base est un entier positif pouvant prendre les valeurs de 2 à 36.

Si l’interprétation n’est pas possible, une erreur #502 (Paramètre incorrect) est retournée.

En Base 16 : X, x, 0X, 0x au début ou h ou H en fin de Texte sont ignorés ; comme b ou B en base 2.

Decimal(“ah”; 16) = 10

La fonction réciproque est Base().

Nbcar (Base)

Retourne le nombre de caractères de Base.

Une espace est comptée pour un caractère.

Nbcar(“abc 123 def”) = 11.

Trouve (Texte à trouver; Base [; à partir de])

Retourne la position de Texte à trouver dans Base, en commençant éventuellement la recherche à partir de.

Texte à trouver et Base sont des références de cellules quelconques, des constantes Texte entre guillemets doubles ou des Nombres. La casse est prise en compte.

Si Texte à trouver n’existe pas dans Texte de base, #VALEUR! est retournée.

Trouve(123; 987456123) = 7.

Voir aussi Cherche().

4. Nombre vers texte

Romain (Nombre; [Mode])

Retourne Nombre en chiffres romains.

Nombre est un nombre exprimé en chiffres arabes ou la référence d’une cellule de type Nombre.

Mode indique comment calculer le nombre en chiffres romains. Plus la valeur est élevée, plus le nombre sera simplifié. Si omis, =0.

Romain(999; 0) = CMXCIX

Romain(999; 4) = IM

La fonction inverse est Arabe().

Base (Nombre; Base; Longueur minimum)

Retourne un texte exprimant Nombre dans Base.

Nombre est un nombre entier positif.

Base est le système dans lequel Nombre est à convertir : 10 pour décimal, 2 pour binaire, etc.

Longueur minimum  permet d’obtenir un nombre converti d’une longueur minimale en ajoutant si nécessaire des zéros à gauche.

Base(17; 10; 4) = 0017

Base(255; 16; 4) = 00FF

La fonction réciproque est Decimal().

Ctxt (Nombre; Nb décimales [; Séparateur milliers])

Retourne un texte à partir de Nombre, avec le Nb décimales voulu, et le Séparateur milliers.

Si Séparateur milliers est omis ou =0, le paramétrage local du séparateur est respecté. Si différent de zéro, le séparateur est omis.

Ctxt(123456,89; 3; 1) = 123456,890

Ctxt(123456,789; 2) = 123 456,79 (si le paramétrage de la cellule prévoit le séparateur des milliers.

Voir aussi Texte().

Franc (Monnaie [; Nb de décimales])

Monnaie est une valeur de type Nombre.

Convertit Monnaie en un Texte correspondant au format de la monnaie locale, en forçant éventuellement le Nombre de décimales.

La monnaie locale est définie ici : Outils, Options, Paramètres linguistiques, Langues Langues de ‡ ♫ Monnaie par défaut.

Le séparateur décimal de Monnaie doit correspondre à celui de la langue locale.

Monnaie peut aussi être la référence d’une cellule de type Nombre.

Avec une monnaie par défaut = EUR,

Franc(12345,2) = 12 345,20 €

Texte (Nombre; Format)

Transforme Nombre en Texte en suivant le Format indiqué.

Nombre est un nombre décimal quelconque, variable ou constante.

Format est la référence d’une cellule Texte ou une constante Texte. La syntaxe dépend de la langue de la cellule. Les modèles sont dans Format, Cellules… | Nombres | ‡ CatégorieNombres…

Avec A1 = 000#.###,

Texte(12.3; A1) = 0012.300

Voir aussi Ctxt().

5. Codages

Car (Code)

Retourne le caractère correspondant au Code ASCII en fonction du mappage des caractères du système.

Car(65) = A

Car(65)&car(10)&car(66) = A B (B étant affiché sous A).

car(10) est le caractère de contrôle pour sauter à la ligne.

De 0 à 127, les caractères sont communs à tous les jeux de caractères (ASCII 7 bits). Au-delà, les caractères dépendent du jeu utilisé (ISO-8859-1, UTF-8, etc.).

Dans LibreOffice, le jeu de caractères utilisé en compatibilité HTML est défini ici : Outils, Options, Chargement/Enregistrement, Compatibilité HTML, ♫ Jeu de caractères.

La fonction réciproque est Code().

Code (Texte)

Retourne le code ASCII du premier caractère de Texte.

Texte peut être une constante ou la référence d’une cellule Texte.

Code(« A ») = 65

La fonction réciproque est Car(). S’y reporter pour plus de précisions.

Unicar (Nombre)

Retourne un caractère correspondant au code Unicode de Nombre.

Avec A1 = 169,

Unicar(A1) = ©

Unicar(169) = ©

La fonction réciproque est Unicode().

Unicode (Texte)

Retourne le code Unicode du premier caractère de Texte.

Avec A1 = ©,

Unicode(A1) = 169

Unicode(« © ») = 169

La fonction réciproque est Unicar().

Informations complémentaires

Liens

1.1 Paramétrages de base conseillés, § 3.4 Outils

3.3 Composer une formule, § 3.3 Utiliser les caractères génériques ou les expressions régulières

3.3 Composer une formule, § 5. Messages d’erreurs

4.2 Le formatage conditionnel

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *