Aller au contenu principal

Qu'est-ce que la fonction ASC ?

Définition
La fonction ASC convertit les caractères à pleine largeur (double-byte) d'une chaîne de texte en leur équivalent à demi-largeur (single-byte). Les caractères qui n'ont pas d'équivalent demi-largeur (comme les idéogrammes) restent inchangés.

ASC te sert dès qu'un code ou une référence venu d'un système japonais, chinois ou coréen refuse de matcher avec ta base, alors qu'à l'écran les deux textes semblent parfaitement identiques : c'est la largeur des caractères qui les distingue, invisible à l'œil mais bien réelle pour Excel.

Si tu travailles avec des données provenant de systèmes japonais, chinois ou coréens, ASC peut t'aider à normaliser les textes pour faciliter les comparaisons et les recherches. Un code produit reçu en pleine largeur comme ABC-123 sera converti en ABC-123 standard, ce qui permet ensuite de le retrouver dans ta base avec RECHERCHEV ou EQUIV.

Syntaxe

=ASC(texte)

Clique sur un argument pour aller à son explication.

ASC ne supprime pas les espaces ni les caractères non imprimables. Pour un nettoyage complet, combine ASC avec SUPPRESPACE et EPURAGE : =SUPPRESPACE(EPURAGE(ASC(A1))).

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction ASC

1

texte

: le texte ou la référence de cellule contenant les caractères à convertir

Les caractères pleine largeur comme , , seront convertis en A, 1, @. Les lettres, chiffres et symboles courants ont tous leur équivalent demi-largeur.

ASC fonctionne aussi sur les katakana japonais : les katakana pleine largeur (カタカナ) sont convertis en katakana demi-largeur (カタカナ). En revanche, les idéogrammes (kanji, hanzi, hangul) n'ont pas d'équivalent demi-largeur et ne sont pas modifiés.

Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment convertir des caractères pleine largeur en demi-largeur avec la fonction ASC

Tes fournisseurs japonais t'envoient des références saisies en pleine largeur, une habitude de leurs systèmes où les lettres latines sont élargies pour s'aligner sur la grille des idéogrammes. Ta base interne, elle, stocke les mêmes références en caractères latins ordinaires. Les deux codes s'affichent presque identiquement à l'écran, pourtant aucun rapprochement ne fonctionne entre eux. La fonction ASC ramène les caractères élargis à leur version standard et réconcilie les deux sources.

Les étapes
  1. 1
    Dans une cellule, écris =ASC(.
  2. 2
    En 1er argument : clique sur la cellule qui porte le code reçu du fournisseur, A2. Elle contient ABC-123, tel que le fournisseur l'a saisi en pleine largeur. La fonction ne rétrécit que les caractères qui existent dans les deux largeurs, si bien que les espaces en trop, les caractères non imprimables et les idéogrammes ressortent tels qu'ils sont entrés.
  3. 3
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule sur toute la colonne. La colonne d'origine reste à côté comme trace de ce que le fournisseur a réellement envoyé. Si les codes calculés sortent encore en pleine largeur, la formule n'est pas en cause : sur un Excel où aucune langue d'Asie de l'Est n'est activée, la fonction rend le texte inchangé.
Au final, ta formule devrait ressembler à ça :=ASC(A2)
Explication
La fonction reprend le texte caractère par caractère et remplace chacun de ceux qui existent en deux largeurs par sa version étroite, lettres, chiffres et ponctuation compris. Le contenu ne change pas, seule sa forme d'encodage change : ABC-123 et ABC-123 se lisent pareil pour toi, mais ce sont deux textes différents pour Excel, et c'est ce désaccord que la colonne normalisée fait disparaître.
Exemple 2

Comment retrouver un code pleine largeur dans une table avec les fonctions ASC et RECHERCHEV

Tu dois rapprocher les codes reçus de ton catalogue interne pour retrouver la désignation de chaque article. Comme les codes arrivent en pleine largeur et que le catalogue est en caractères ordinaires, ta recherche échoue sur toutes les lignes alors que les deux colonnes affichent visiblement le même code. Plutôt que d'ajouter une colonne intermédiaire de codes convertis à maintenir, tu normalises la valeur cherchée directement à l'intérieur de la formule de recherche.

Les étapes
  1. 1
    Dans une cellule, écris =RECHERCHEV(.
  2. 2
    En 1er argument : écris la conversion du code à retrouver et referme-la, ASC(A2). Le code élargi est ainsi ramené en caractères ordinaires au moment même de la comparaison, sans colonne intermédiaire à créer puis à entretenir.
  3. 3
    En 2ᵉ argument : sélectionne la table où chercher, C:D. La fonction compare toujours le code à la première colonne de cette table, ici les références du catalogue, qui sont déjà en caractères ordinaires. C'est cette forme-là qu'il faut obtenir du côté du code reçu, et pas l'inverse.
  4. 4
    En 3ᵉ argument : saisis le rang de la colonne qui porte la désignation, 2. Ce numéro se compte depuis la gauche de la table sélectionnée, où la colonne C vaut 1 et la colonne D vaut 2.
  5. 5
    En 4ᵉ argument : saisis la valeur qui impose une correspondance exacte, FAUX. C'est parce que la comparaison doit tomber au caractère près que la largeur compte, et c'est là que la conversion écrite juste avant gagne son utilité.
  6. 6
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule sur les lignes suivantes. La référence A2 descend d'une ligne à chaque fois, si bien que chaque code reçu est converti juste avant d'être cherché.
Voici la formule que tu obtiens à la fin :=RECHERCHEV(ASC(A2); C:D; 2; FAUX)
Explication
La fonction ASC convertit la valeur cherchée juste avant que RECHERCHEV parte la comparer, si bien que le code élargi se présente sous la même forme que les références du catalogue. Sans ce passage, la recherche renvoie #N/A alors que le code est bel et bien dans la table, et c'est une erreur pénible à diagnostiquer justement parce que les deux textes semblent identiques à l'écran.
Le combo gagnant
Deux codes identiques à l'œil, ABC et ABC, restent deux textes différents pour Excel : ta RECHERCHEV échoue sans erreur visible. Enveloppe la valeur cherchée dans ASC pour la normaliser à la volée, avec =RECHERCHEV(ASC(A1); table; 2; FAUX).
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction ASC

ASC ne fait qu'une chose : convertir la largeur des caractères. Du coup ce qu'on lui reproche, c'est souvent ce qu'elle ne fait PAS. Elle laisse les kanji, hanzi et hangul intacts parce qu'ils n'ont tout simplement pas de version demi-largeur dans Unicode, et elle ne touche ni aux espaces parasites ni aux caractères non imprimables qui voyagent avec les données asiatiques.

ASC renvoie le texte exactement tel quel, sans rien convertir

C'est le cas le plus fréquent sur un Excel français, et ce n'est pas une erreur de formule : ASC n'agit que si une langue d'Asie de l'Est (japonais, chinois, coréen) est activée dans les paramètres linguistiques d'Office. Sans elle, la fonction existe, elle s'écrit, elle ne renvoie aucune erreur, mais elle rend le texte inchangé. Vérifié : =UNICODE(GAUCHE(ASC("ABC");1)) donne 65313 (le A pleine largeur) au lieu de 65 (le A standard). La fonction jumelle JIS, elle, n'est carrément pas reconnue tant que la langue n'est pas activée.

Solution : Ajoute une langue d'Asie de l'Est dans Fichier → Options → Langue, puis redémarre Excel. Si tu ne peux pas modifier les paramètres d'Office, remplace ASC par une cascade de SUBSTITUE sur les caractères que tu rencontres réellement : =SUBSTITUE(SUBSTITUE(A1;"A";"A");"1";"1"). C'est fastidieux mais indépendant de la configuration, donc le classeur reste juste chez tes collègues.

Les kanji et idéogrammes restent inchangés

Les idéogrammes chinois et japonais (kanji, hanzi) et les caractères hangul coréens n'ont pas d'équivalent demi-largeur dans le standard Unicode. ASC les laisse donc intacts, ce qui peut sembler une non-conversion.

Solution : Vérifie que les caractères que tu veux convertir sont bien des lettres latines, des chiffres, des symboles ou des katakana. Si tu as besoin de traiter des idéogrammes, utilise une approche différente (SUBSTITUE ou script VBA personnalisé).

ASC ne supprime pas les espaces ou caractères parasites

ASC est spécialisée sur la conversion pleine largeur / demi-largeur uniquement. Elle ne traite pas les espaces insécables, les espaces multiples ou les caractères non imprimables qui peuvent accompagner les données asiatiques.

Solution : Combine ASC avec SUPPRESPACE et EPURAGE pour un nettoyage complet : =SUPPRESPACE(EPURAGE(ASC(A1))). Cette combinaison couvre les conversions de largeur, la suppression des espaces superflus et l'élimination des caractères non imprimables.

Le conseil du pro
ASC ne touche qu'à la largeur des caractères : elle ne retire ni les espaces en trop ni les caractères non imprimables. Pour un nettoyage complet, empile les trois fonctions : =SUPPRESPACE(EPURAGE(ASC(A1))).
FAQ

Questions fréquentes

ASC convertit les caractères pleine largeur (fullwidth) en caractères demi-largeur (halfwidth). C'est particulièrement utile pour normaliser des textes contenant des caractères asiatiques (japonais, chinois, coréen) où les caractères latins peuvent être en pleine largeur pour des raisons esthétiques. Dans un contexte professionnel, elle est surtout utilisée pour préparer des données reçues de systèmes asiatiques avant de les comparer ou de les rechercher dans une base de référence.

Ressources

Pour aller plus loin

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

Tout voir