LOC – 27/06/2018 – 2
Plan de la fiche
1.1 Le paradoxe «Formule – Texte»
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!
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().
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.
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().
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.
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.
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.
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.
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 “·”)
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.
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.
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.
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.
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égorie ‡ Nombres…
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