---
title: "Text.Upper : mettre un texte en majuscules (Power Query)"
description: "Text.Upper convertit un texte en majuscules dans Power Query : syntaxe, paramètre culture, exemples et le piège des fusions sensibles à la casse."
url: "https://data-slconsulting.com/reference-power-query-dax/textupper-power-query/"
lang: "fr-FR"
---

Référence Power Query · 4 min de lecture

# Text.Upper : convertir un texte en majuscules dans Power Query

Mettre en capitales un nom de client, un code ou un libellé, pour que des saisies différentes deviennent enfin comparables.

`Text.Upper` renvoie le texte reçu avec tous ses caractères convertis en majuscules. Rien d’autre ne change : ni la longueur, ni l’ordre des caractères, ni les espaces. On s’en sert surtout pour normaliser une colonne avant de la comparer, de la fusionner ou de la dédoublonner, par exemple quand le même client est saisi « Bob » dans une facture et « BOB » dans une autre.

Dans l’éditeur, la même conversion se trouve dans le menu **Format** de l’onglet **Transformer**. En M, on l’écrit le plus souvent à l’intérieur de `Table.TransformColumns` pour traiter toute une colonne d’un coup.

Syntaxe

## Un texte, et une culture facultative

```
Text.Upper(
text as nullable text,
optional culture as nullable text
) as nullable text
```

| Paramètre | Rôle |
| --- | --- |
| `text` | Le texte à convertir. Le type `nullable text` indique que la fonction accepte aussi une valeur null. |
| `culture` | Facultatif. Un code de culture sous forme de texte, par exemple `"en-US"`. La documentation ne détaille pas l’effet de chaque culture sur la conversion. |

La fonction attend du texte : une colonne de nombres doit d’abord être convertie, par exemple avec `Text.From`.

Exemples

## Trois façons de s’en servir

Sur une table de factures avec une colonne Client qui contient Bob, jim, Paul et RINGO, saisis sans règle commune.

### Convertir une valeur

```
Text.Upper("aBcD")
```

Le résultat est `"ABCD"`. C’est l’exemple de la documentation officielle.

### Convertir toute une colonne

```
Table.TransformColumns(Factures, {{"Client", Text.Upper, type text}})
```

La colonne Client contient désormais BOB, JIM, PAUL et RINGO. Le troisième élément de la paire fixe le type de la colonne transformée.

### Préciser la culture

```
Text.Upper("facture de mars", "fr-FR")
```

Le résultat est `"FACTURE DE MARS"`. Sur des libellés en français, nous omettons en général ce paramètre.

En pratique

## La fusion qui ne trouve pas Bob

Vous fusionnez une table de factures avec une table de clients sur le nom. Côté factures, le nom est saisi « bob » ; côté clients, « Bob ». La fusion ne trouve aucune correspondance pour cette ligne, et la facture se retrouve sans client dans le rapport.

La raison est écrite dans la spécification du langage M : deux textes sont comparés de façon ordinale et en respectant la casse. Pour Power Query, « bob » et « Bob » sont deux valeurs différentes.

La parade consiste à créer, dans chacune des deux tables, une clé normalisée, et à fusionner sur cette clé plutôt que sur le nom affiché :

```
#"Clé client" = Table.AddColumn(
Factures, "CleClient",
each Text.Upper(Text.Trim([Client])), type text)
```

`Text.Trim` retire au passage les espaces de début et de fin, l’autre cause fréquente de correspondances manquées. La colonne Client d’origine reste intacte pour l’affichage : seule la clé sert à la fusion.

Questions fréquentes

## Ce qu’on nous demande sur Text.Upper

### Quelle différence avec Text.Proper ?

`Text.Upper` met toutes les lettres en majuscules. `Text.Proper` met une majuscule à la première lettre de chaque mot, ce qui convient mieux à un nom destiné à l’affichage.

### Que renvoie Text.Upper sur une valeur null ?

La signature accepte un texte nullable et renvoie un texte nullable : une cellule vide à null ne provoque pas d’erreur et reste null.

### Peut-on comparer deux textes sans changer leur casse ?

Oui. Plusieurs fonctions de listes acceptent un comparateur, par exemple `List.Contains(Clients, "bob", Comparer.OrdinalIgnoreCase)`, qui ignore la casse sans modifier les données.

### Faut-il renseigner le paramètre culture ?

Il est facultatif. La documentation officielle se limite à l’exemple `"en-US"` ; nous ne le renseignons que lorsqu’une règle propre à une langue l’impose.

À côté

## Pour aller plus loin

- [Les fonctions de texte en Power Query](https://data-slconsulting.com/texte-power-query/).
- [Mettre une majuscule à chaque mot](https://data-slconsulting.com/reference-power-query-dax/mettre-une-majuscule-a-chaque-mot-power-bi/) avec `Text.Proper`.
- [Fusionner plusieurs tables dans Power BI](https://data-slconsulting.com/reference-power-query-dax/fusionner-plusieurs-tables-power-bi/).
- [La référence complète Power Query et DAX](https://data-slconsulting.com/reference-power-query-dax/).

**Sources.** Documentation officielle de l’éditeur, consultée le 14 octobre 2026 : [Text.Upper](https://learn.microsoft.com/fr-fr/powerquery-m/text-upper), [Table.TransformColumns](https://learn.microsoft.com/fr-fr/powerquery-m/table-transformcolumns), [Comparer.OrdinalIgnoreCase](https://learn.microsoft.com/fr-fr/powerquery-m/comparer-ordinalignorecase), [Opérateurs du langage M](https://learn.microsoft.com/fr-fr/powerquery-m/m-spec-operators).

## Vos fusions laissent des factures sans client ?

Nous relisons vos requêtes pour repérer les clés de jointure qui dépendent d’une saisie et les normaliser.

[Réserver un appel](https://data-slconsulting.com/contact/) ou 01 83 64 60 25

---

Version Markdown de https://data-slconsulting.com/reference-power-query-dax/textupper-power-query/ (pour les agents IA : en-tête Accept: text/markdown, suffixe .md ou ?mode=agent). Index du site pour les agents : https://data-slconsulting.com/llms.txt. API publique : https://data-slconsulting.com/developers/. Contact : contact@data-slconsulting.com, 01 83 64 60 25.
