Aller au contenu principal

Qu'est-ce que la fonction DETECTERLANGUE ?

Définition
La fonction DETECTERLANGUE identifie la langue d'un texte et renvoie son code, par exemple `fr` pour du français ou `en` pour de l'anglais. C'est le nom français de DETECTLANGUAGE, une fonction cloud de Microsoft 365 : elle interroge un service en ligne à chaque calcul et réclame donc une connexion internet.

DETECTERLANGUE (DETECTLANGUAGE en anglais) te sert au moment où une boîte de réception internationale déborde et que tu n'as pas le temps de lire chaque message pour savoir dans quelle langue il est écrit : elle pose le code en face de chaque ligne en une seule formule recopiée vers le bas.

C'est une fonction cloud de Microsoft 365, comme TRADUIRE : elle a besoin d'une connexion internet pour répondre. Elle n'attend qu'un seul argument, le texte, et elle est donc plus simple à écrire que la plupart des fonctions. Le code qu'elle renvoie te sert ensuite de clé : tu aiguilles des messages clients vers la bonne équipe, tu comptes la répartition linguistique de tes avis, ou tu n'envoies à la traduction que ce qui n'est pas déjà en français.

Syntaxe

=DETECTERLANGUE(texte)

Clique sur un argument pour aller à son explication.

Le nom s'écrit d'un seul tenant : DETECTER.LANGUE, avec un point, renvoie #NOM?. La fonction n'attend qu'un seul argument, le texte, et il est obligatoire. Sur une cellule vide, elle ne renvoie pas d'erreur mais un texte vide.

Vrai ou faux ?
« DETECTERLANGUE n'existe pas dans Excel, c'est une fonction Google Sheets. » Faux : DETECTERLANGUE est bel et bien une fonction d'Excel, le nom français de DETECTLANGUAGE. Sur « Bonjour tout le monde », elle renvoie fr. La confusion vient de Google Sheets, qui possède une fonction du même nom anglais.
Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction DETECTERLANGUE

DETECTERLANGUE ne prend qu'un seul argument, le texte à analyser, et il n'y a donc rien à paramétrer : tu ne choisis ni la liste des langues attendues, ni le format du code renvoyé.

Le code qui revient tient sur deux lettres dans la plupart des cas (fr, en, es, de, it, pt, ja, ru). Le chinois fait exception et précise l'écriture : zh-Hans pour le chinois simplifié, zh-Hant pour le traditionnel. Ne pars donc pas du principe que le résultat fait toujours deux caractères.

1

texte

: le texte dont tu veux identifier la langue

Tu peux saisir du texte entre guillemets, référencer une cellule, ou reprendre le résultat d'une autre formule.

Exemples valides : "Bonjour le monde" (texte en dur), A2 (référence de cellule), SUPPRESPACE(A2) (résultat d'une formule). Une cellule vide renvoie un texte vide, sans erreur, et une cellule qui ne contient que des espaces fait de même.

Attention : Le texte est limité à 3 000 caractères, les espaces de fin non comptés. À partir de 3 001, la cellule renvoie #VALEUR!. Un nombre passé à la fonction ne déclenche pas d'erreur non plus : =DETECTERLANGUE(12345) renvoie en, ce qui n'a aucun sens mais ne se voit pas dans une colonne.

L’erreur fatale
Le nom s'écrit d'un seul tenant, sans point au milieu : =DETECTER.LANGUE(A2) renvoie #NOM?. Le point est un réflexe compréhensible, puisque beaucoup de fonctions françaises en portent un, comme NB.SI ou SI.CONDITIONS. Celle-ci n'en prend pas.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment identifier la langue d'un texte avec la fonction DETECTERLANGUE

Les messages du week-end se sont empilés dans la boîte du service client et ils arrivent de toute l'Europe. Avant même de savoir ce qu'ils racontent, tu as besoin de les étiqueter par langue pour les répartir entre les personnes qui peuvent y répondre. Lire quatre-vingts messages un par un pour repérer lesquels sont en allemand te prendrait la matinée, alors que la fonction DETECTERLANGUE pose le code de chaque langue en face de chaque ligne.

Les étapes
  1. 1
    Dans une cellule, écris =DETECTERLANGUE(.
  2. 2
    En 1er argument : clique sur la cellule du message à identifier, A2. Elle contient Where is my order? It has not arrived yet., et la fonction lit ce contenu sans jamais le modifier. Tu pourrais taper le texte directement entre guillemets, mais la référence te laisse recopier la même formule sur les lignes suivantes sans rien réécrire.
  3. 3
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas jusqu'à la ligne 5. Chacun des quatre messages du tableau reçoit ainsi son code de langue en face de lui.
Au final, ta formule devrait ressembler à ça :=DETECTERLANGUE(A2)
Explication
La fonction envoie le message au service linguistique de Microsoft et rapporte le code de la langue reconnue, ici en. Recopiée vers le bas, elle étiquette toute la colonne et te donne une clé de tri exploitable par n'importe quelle autre formule.
Exemple 2

Comment aiguiller des messages par langue avec les fonctions DETECTERLANGUE et SI

Le code brut de la colonne B ne parle qu'à toi. Ceux qui répartissent les demandes chaque matin veulent lire un nom d'équipe, pas un fr ou un es qu'il faut décoder. En emboîtant DETECTERLANGUE dans un SI, tu transformes le code en consigne : tout ce qui est en français part à l'équipe France, tout le reste à l'équipe qui gère les autres langues.

Les étapes
  1. 1
    Dans une cellule, écris =SI(.
  2. 2
    En 1er argument : écris la comparaison qui départage les messages et referme-la, DETECTERLANGUE(A2)="fr". La détection se calcule en premier et son code est confronté à "fr", si bien que ce premier argument ne peut valoir que VRAI ou FAUX. Les guillemets sont obligatoires pour qu'Excel lise fr comme un code de langue et non comme un nom défini dans le classeur.
  3. 3
    En 2ᵉ argument : saisis le libellé affiché quand le message est en français, "Équipe France". C'est la branche qui se déclenche sur les lignes 2 et 5 du tableau, les deux seules dont le code vaut fr.
  4. 4
    En 3ᵉ argument : saisis le libellé qui couvre toutes les autres langues, "Équipe International". Tu n'as aucune liste à énumérer, puisque en, es ou un code auquel tu n'avais pas pensé tombent tous dans cette branche.
  5. 5
    Ferme la parenthèse et appuie sur Entrée. Celle de DETECTERLANGUE ayant déjà été refermée à l'étape 2, il n'en reste bien qu'une à fermer.
Voici la formule que tu obtiens à la fin :=SI(DETECTERLANGUE(A2)="fr";"Équipe France";"Équipe International")
Explication
Le code détecté ne sort plus tel quel : il est comparé à fr et traduit en nom d'équipe. La colonne devient directement lisible par la personne qui distribue les demandes, sans qu'elle ait à connaître les codes de langue.
Exemple 3

Comment compter les avis par langue avec les fonctions DETECTERLANGUE et NB.SI

Ta boutique reçoit des avis de plusieurs pays et tu veux savoir sur quel marché tes clients s'expriment le plus avant d'arbitrer le budget de traduction du trimestre. Compter à la main marche sur six lignes, plus du tout sur six cents. En posant le code de langue en colonne B avec DETECTERLANGUE, tu rends tes avis comptables par NB.SI, qui ne sait pas lire une phrase mais sait très bien compter des fr.

Les étapes
  1. 1
    Dans une cellule, écris =NB.SI(.
  2. 2
    En 1er argument : sélectionne la plage des codes que DETECTERLANGUE vient de remplir, B2:B7. Elle couvre les six avis du tableau et laisse la ligne 1 de côté, celle-ci ne portant que les intitulés de colonnes.
  3. 3
    En 2ᵉ argument : saisis le code exact à compter, "fr". Il s'écrit entre guillemets, comme n'importe quel critère texte. Change-le en "en" ou en "es" dans une cellule voisine pour obtenir la répartition complète des six avis.
  4. 4
    Ferme la parenthèse et appuie sur Entrée. Le compte se recalcule ensuite tout seul dès qu'un code change en colonne B, sans que tu aies à retoucher la formule.
Une fois les morceaux assemblés, ta formule donne ça :=NB.SI(B2:B7;"fr")
Explication
Une fois les codes posés en colonne B, NB.SI les compte comme n'importe quel texte : trois avis sur six sont en français. En divisant par NBVAL(B2:B7), tu obtiens directement la part de 50 %, et les deux formules se recalculent dès qu'un avis s'ajoute.

Attention : Compte bien sur la colonne des codes, jamais sur la colonne des avis. Et garde en tête que le chinois renvoie zh-Hans ou zh-Hant, pas zh : un =NB.SI(B2:B7;"zh") renverrait 0 alors que des avis chinois sont bien là.

Exemple 4

Comment gérer les cellules vides avec les fonctions DETECTERLANGUE et SI

Ton export contient des lignes sans message, parce que le formulaire n'obligeait pas à en saisir un. DETECTERLANGUE ne proteste pas sur ces lignes : elle renvoie un texte vide, qui ressemble exactement à une cellule que personne n'a encore calculée. Le trou passe inaperçu, et tes comptages par langue portent sur un total dont tu ne connais plus la composition. Un SI en amont rend ces lignes visibles.

Les étapes
  1. 1
    Dans une cellule, écris =SI(.
  2. 2
    En 1er argument : écris le test qui repère une ligne sans message, A2="". Les deux guillemets accolés représentent le texte vide, et la question se pose avant que la moindre requête ne parte vers le service en ligne.
  3. 3
    En 2ᵉ argument : saisis le libellé qui s'affichera sur les lignes vides, "Aucun texte". Un libellé qui nomme la cause vaut mieux qu'un tiret ou qu'un espace, car il distingue une ligne à compléter d'une ligne que personne n'a encore calculée.
  4. 4
    En 3ᵉ argument : écris la détection à lancer sur les lignes remplies et referme-la, DETECTERLANGUE(A2). Elle ne se déclenche plus que sur les lignes 2 et 4, les seules du tableau à porter un message.
  5. 5
    Ferme la parenthèse de la fonction SI et appuie sur Entrée. Celle de DETECTERLANGUE a été refermée à l'étape précédente, ce qui explique les deux parenthèses accolées à la fin de la formule.
En mettant tout bout à bout, tu écris :=SI(A2="";"Aucun texte";DETECTERLANGUE(A2))
Explication
Sur une ligne remplie, la formule se comporte comme un DETECTERLANGUE ordinaire et renvoie fr. Sur une ligne vide, elle affiche Aucun texte au lieu du vide silencieux que la fonction renverrait seule, et la ligne à compléter saute aux yeux.
Le chiffre clé
Le texte analysé est limité à 3 000 caractères. À 3 000, le code sort normalement ; à 3 001, la cellule bascule en #VALEUR!. Les espaces de fin ne comptent pas dans le total. Pour un texte plus long, analyse seulement son début avec GAUCHE : la langue se reconnaît sur les premières phrases.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction DETECTERLANGUE

#NOM? est de loin l'erreur la plus fréquente sur cette fonction, et elle n'a rien à voir avec ton texte : elle vient du nom, qui s'écrit d'un seul tenant. #VALEUR! arrive ensuite, sur les textes qui dépassent 3 000 caractères.

Le reste ne ressemble pas à des erreurs, et c'est bien le problème. Un résultat vide, un code renvoyé sur un nombre, une langue tranchée sur un mot ambigu : dans les trois cas la colonne a l'air normale et te ment tranquillement.

L'erreur #NOM? s'affiche dès la saisie de la formule

Le nom est mal orthographié. =DETECTER.LANGUE(A2), avec un point au milieu, renvoie #NOM? : ce nom n'existe pas dans Excel. Le point vient d'un réflexe légitime, puisque beaucoup de fonctions françaises en portent un, comme NB.SI, SI.CONDITIONS ou RECHERCHEX. Celle-ci n'en prend pas.

Solution : Écris =DETECTERLANGUE(A2), d'un seul tenant. Le nom anglais, DETECTLANGUAGE, ne fonctionne pas non plus dans un Excel en français : il renvoie #NOM? lui aussi. Laisse l'autocomplétion d'Excel finir le nom après les premières lettres, c'est le moyen le plus sûr de ne pas te tromper.

L'erreur #VALEUR! sur un texte long

Le texte dépasse 3 000 caractères, la limite de la fonction. À 3 000 caractères le code sort normalement, à 3 001 la cellule bascule en #VALEUR!. Les espaces de fin ne sont pas comptés : un texte de 3 010 caractères terminé par dix espaces passe encore.

Solution : Analyse seulement le début du texte plutôt que le tout : =DETECTERLANGUE(GAUCHE(A2;1000)) suffit largement, car la langue se reconnaît sur les premières phrases. C'est une différence utile avec TRADUIRE, qui butte sur la même limite de 3 000 caractères mais où tronquer le texte perdrait une partie du contenu.

La cellule reste vide au lieu de renvoyer un code

La cellule analysée est vide, ou ne contient que des espaces. DETECTERLANGUE ne renvoie alors pas d'erreur mais un texte vide, de longueur nulle. Rien ne distingue visuellement ce résultat d'une cellule où personne n'a mis de formule, et tes comptages par langue portent alors sur un total dont la composition t'échappe.

Solution : Teste la cellule avant de lancer la détection : =SI(A2="";"Aucun texte";DETECTERLANGUE(A2)). Tu rends les trous visibles et tu épargnes une requête au service en ligne sur chaque ligne vide.

Un code de langue est renvoyé sur un nombre ou une date

La fonction ne vérifie pas qu'elle reçoit bien du texte. =DETECTERLANGUE(12345) renvoie en, et une cellule contenant 15/01/2026 renvoie en elle aussi. Aucune erreur ne signale l'absurdité, et un en de plus au milieu d'une colonne de codes ne se remarque pas.

Solution : Filtre en amont avec ESTTEXTE si ta colonne peut contenir autre chose que des phrases : =SI(ESTTEXTE(A2);DETECTERLANGUE(A2);"Pas du texte"). C'est surtout utile sur des données importées, où une référence produit ou un numéro de commande se glisse vite dans la colonne des messages.

Un mot isolé est attribué à la mauvaise langue

Beaucoup de mots français s'écrivent exactement comme leur équivalent anglais, et la fonction tranche alors pour l'anglais. chat, pain, table, question, client, important, information et même Excellent renvoient tous en, seuls dans leur cellule. La fonction ne peut pas deviner ce que le contexte aurait levé.

Solution : Donne-lui une phrase plutôt qu'un mot. Un mot isolé n'est pas toujours perdu, Bonjour renvoie bien fr et Hallo renvoie de, mais la détection ne devient fiable que quand plusieurs mots se confirment entre eux. Si ta colonne ne contient que des mots isolés, considère le résultat comme une hypothèse à vérifier.

La cellule affiche #BUSY! au lieu du code

DETECTERLANGUE est une fonction cloud : #BUSY! s'affiche le temps que la requête parte et que la réponse revienne. Sur une colonne entière, plusieurs cellules peuvent rester en #BUSY! quelques secondes.

Solution : Laisse Excel terminer, la cellule se remplit toute seule dès la réponse reçue. Si l'affichage s'éternise, vérifie ta connexion internet : sans accès au service en ligne, la fonction ne peut pas répondre.

Une erreur de la cellule source ressort telle quelle

DETECTERLANGUE ne filtre pas les erreurs qu'on lui passe, elle les propage. Si A2 contient déjà #DIV/0! ou #N/A, la formule renvoie cette même erreur au lieu d'un code de langue, et le vrai coupable se trouve en amont.

Solution : Corrige la formule de la cellule source plutôt que la détection, qui n'y est pour rien. Si tu veux seulement que la colonne reste lisible, enveloppe le tout : =SIERREUR(DETECTERLANGUE(A2);"Texte indisponible").

Tu cherches surtout à corriger l'erreur #NOM? affichée dans ta cellule, sans passer par la fonction DETECTERLANGUE ? Consulte la fiche dédiée à l'erreur #NOM? pour comprendre toutes ses causes et comment la corriger.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

DETECTERLANGUE (Excel) vs DETECTLANGUAGE (Google Sheets)

DETECTERLANGUE et DETECTLANGUAGE font le même travail dans deux tableurs différents : la première dans Excel, la seconde dans Google Sheets. Tu ne choisis donc pas vraiment entre elles, c'est ton tableur qui choisit pour toi.

La vraie difficulté est ailleurs, dans le nom. Excel appelle la fonction DETECTLANGUAGE en anglais, exactement comme Google Sheets, mais la traduit en DETECTERLANGUE dans une installation française. C'est ce nom français, introuvable côté Google, qui fait croire à beaucoup que la fonction serait une exclusivité de Sheets.

CritèreDETECTERLANGUEDETECTLANGUAGE
TableurExcel (Microsoft 365)Google Sheets
Nom à taper dans un tableur en françaisDETECTERLANGUE, sans pointDETECTLANGUAGE
Nom anglaisDETECTLANGUAGEDETECTLANGUAGE
ArgumentLe texte, seul et obligatoireLe texte, seul et obligatoire
Connexion internetRequise, #BUSY! le temps de la réponseRequise, le tableur étant en ligne
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec DETECTERLANGUE

1Astuce

Ne traduis que ce qui n'est pas déjà en français

Passer toute une colonne à la traduction gaspille des requêtes sur les lignes déjà lisibles. Emboîte la détection dans un SI pour ne traiter que le reste : =SI(DETECTERLANGUE(A2)="fr";A2;TRADUIRE(A2; ; "fr")).
Les messages français ressortent intacts, les autres arrivent traduits, et ta colonne devient homogène sans que tu aies trié quoi que ce soit à la main.

2Astuce

Passe le code détecté directement à TRADUIRE

TRADUIRE accepte une formule comme argument de langue source, tu peux donc lui donner le code que DETECTERLANGUE vient de trouver : =TRADUIRE(A2; DETECTERLANGUE(A2); "fr"). Sur Where is my order? It has not arrived yet., la formule renvoie Où est ma commande ? Elle n'est pas encore arrivée.
Cela dit, TRADUIRE sait déjà reconnaître la langue toute seule si tu omets cet argument : =TRADUIRE(A2; ; "fr") fait le même travail en une requête au lieu de deux. Réserve la version explicite aux cas où tu veux garder le code sous les yeux, pour le compter ou le filtrer ensuite.

3Astuce

Fige tes codes avec un collage spécial valeurs

Tant que la formule est là, chaque cellule reste branchée sur un service en ligne et se recalcule à l'ouverture du fichier. Une fois tes codes obtenus, sélectionne la colonne, copie (Ctrl+C), puis colle uniquement les valeurs (Ctrl+Alt+V puis V).
Les codes restent en place, les formules disparaissent, et ton fichier s'ouvre ensuite sans plus rien demander au réseau. C'est aussi ce qui te garantit que le classement d'un message ne changera plus dans ton dos.

FAQ

Questions fréquentes

Oui. DETECTERLANGUE est le nom français de DETECTLANGUAGE, une fonction cloud de Microsoft 365 : =DETECTERLANGUE("Bonjour tout le monde") renvoie bien fr. La confusion vient de Google Sheets, qui possède une fonction du même nom anglais, et du nom français qui n'a pas d'équivalent côté Google.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction DETECTERLANGUE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir