🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel ATAN & ATAN2 — tangente inverse, arctan et l'angle à partir de X,Y

|

Excel ATAN & ATAN2 — tangente inverse, arctan et l'angle à partir de X,Y

En brefASIN, ACOS, ATAN et ATAN2 font tourner la trigonométrie à l'envers : donnez-leur un rapport (ou un couple de coordonnées) et elles renvoient l'angle. Elles rendent cet angle en radians, donc enveloppez-les dans DEGRES() pour une valeur humaine — =DEGRES(ATAN(1)) vaut 45. Utilisez ATAN2 dès que vous avez un x et un y, car le simple ATAN ne voit que le rapport et ne sait pas dans quel quadrant vous êtes. Et attention au piège : ATAN2(x_num; y_num) d'Excel met x d'abord — l'inverse de l'ordre atan2(y, x) de tous les langages de programmation.

=DEGRES(ATAN(1))          ' arc tangente de 1, en angle-degré -> 45
=DEGRES(ATAN2(1; 1))      ' angle du point (1, 1) -> 45
=DEGRES(ATAN2(-1; -1))    ' angle de (-1, -1) — ATAN en est incapable -> -135
=DEGRES(ASIN(0,5))        ' l'angle dont le sinus vaut 0,5 -> 30

Demandez « arc tangente dans Excel » et la plupart des pages vous tendent =ATAN(x) puis passent à autre chose. Mais les questions qui mordent vraiment — pourquoi la réponse sort à 0,785 au lieu de 45, quand utiliser ATAN2 plutôt qu'ATAN, et pourquoi l'ordre des arguments semble à l'envers — sont toute la raison pour laquelle cette fonction fait trébucher. Cette page commence par elles.

Ce que vous allez apprendre

  • Le modèle mental : la trigonométrie directe consomme des angles, l'inverse en produit
  • Pourquoi toute fonction inverse renvoie des radians (et réclame DEGRES())
  • La raison d'être d'ATAN2 : ATAN ne voit pas le quadrant
  • Le fameux piège : ATAN2(x, y) d'Excel inverse l'ordre habituel des arguments
  • Obtenir un relèvement de boussole / l'angle entre deux points
  • Pourquoi ASIN et ACOS renvoient #NOMBRE! hors de l'intervalle −1 à 1

Le modèle mental : faire tourner la trigonométrie à l'envers

SIN, COS et TAN prennent un angle et vous donnent un rapport. Les fonctions inverses font exactement le contraire : elles prennent un rapport et vous rendent l'angle qui l'a produit. SIN(30°) = 0,5, donc ASIN(0,5) = 30°. Elles se défont l'une l'autre.

Deux conséquences en découlent directement, et elles causent presque toute la confusion :

  1. Puisqu'elles produisent un angle, et que l'unité d'angle native d'Excel est le radian, leur sortie est en radians. Vous voulez presque toujours DEGRES() autour d'elles.
  2. Un rapport unique n'identifie pas un angle de façon unique — plusieurs angles différents partagent le même sinus, cosinus ou tangente. Les fonctions inverses doivent donc en choisir un, dans un intervalle défini, et c'est précisément cette limite qu'ATAN2 a été inventée pour contourner.

Retenez ces deux idées et le reste n'est que détail.

Elles renvoient des radians — enveloppez-les dans DEGRES

Voici la première chose que tout le monde rencontre :

=ATAN(1)             ' -> 0,785398163397448   (radians, pas 45)
=DEGRES(ATAN(1))     ' -> 45                   (le degré que vous vouliez)

ATAN(1) est correct — 0,785 radian est 45°, exprimé dans l'unité native d'Excel. Ce n'est simplement pas le nombre qu'un humain lit comme un angle. Le correctif est l'image miroir de la règle directe : là où SIN/COS/TAN réclament RADIANS() à l'entrée, les fonctions inverses réclament DEGRES() à la sortie.

=DEGRES(ASIN(0,5))     ' angle dont le sinus vaut 0,5 -> 30
=DEGRES(ACOS(0,5))     ' angle dont le cosinus vaut 0,5 -> 60
=DEGRES(ATAN(1))       ' angle dont la tangente vaut 1 -> 45

Toute la danse degrés/radians est traitée dans le guide RADIANS & DEGRES ; la seule ligne à retenir ici est DEGRES() lit le résultat d'une fonction inverse.

Pourquoi ATAN2 existe : ATAN ne voit pas le quadrant

C'est le cœur du sujet. ATAN reçoit un seul nombre — un rapport comme y/x. Mais le même rapport décrit deux directions différentes. Le point (1, 1) et le point (−1, −1) ont tous deux y/x = 1, pourtant ils pointent dans des directions opposées (nord-est contre sud-ouest, 45° contre −135°). ATAN ne voit que le 1 et n'a aucun moyen de les distinguer :

=DEGRES(ATAN(1/1))     ' point (1, 1)   -> 45
=DEGRES(ATAN(-1/-1))   ' point (-1,-1)  -> 45   (FAUX — devrait être -135)

ATAN répond toujours dans l'intervalle −90° à 90° (la moitié droite du plan), car c'est tout ce qu'un rapport isolé peut cerner. ATAN2 corrige cela en prenant le x et le y séparément, de sorte qu'il sait dans quel quadrant se trouve le point et peut renvoyer l'intervalle complet de −180° à 180° :

=DEGRES(ATAN2(1; 1))     ' -> 45     (nord-est)
=DEGRES(ATAN2(-1; -1))   ' -> -135   (sud-ouest — maintenant correct)
=DEGRES(ATAN2(-1; 1))    ' -> 135    (nord-ouest)
=DEGRES(ATAN2(1; -1))    ' -> -45    (sud-est)

La règle qui en découle : dès que vous avez un x et un y — des coordonnées, une vitesse, un déplacement — dégainez ATAN2, jamais ATAN(y/x). Le simple ATAN n'est sûr que lorsque vous avez véritablement une pente nue, sans direction attachée.

Le piège : l'ATAN2 d'Excel inverse l'ordre des arguments

Voici le piège qui attrape tout programmeur. En C, Python, JavaScript, Java — dans pratiquement tous les langages — la fonction est atan2(y, x), avec y d'abord. Excel fait le contraire : c'est ATAN2(x_num; y_num), avec x d'abord.

=ATAN2(x_num; y_num)     ' Excel : X d'abord, puis Y
' atan2(y, x)            ' tous les langages de programmation : Y d'abord, puis X

Ainsi une formule portée directement depuis du code — ou depuis un collègue qui vit dans Python — aura les arguments intervertis, et elle échoue d'une manière vicieuse : elle ne renvoie pas d'erreur, elle renvoie simplement l'angle complémentaire, qui peut sembler plausible. Si un résultat d'ATAN2 est réfléchi par rapport à la ligne des 45° par rapport à ce que vous attendiez, vérifiez d'abord l'ordre des arguments. Dans le doute, rappelez-vous qu'Excel le lit de gauche à droite comme « horizontalement, puis verticalement » — x, puis y.

Un usage réel : relèvement / angle entre deux points

Le travail classique d'ATAN2 est l'angle (ou le relèvement de boussole) d'un point vers un autre. Étant donné un départ (x1, y1) et une arrivée (x2, y2), la direction est :

=DEGRES(ATAN2(x2-x1; y2-y1))    ' angle de la droite du point 1 vers le point 2
=MOD(DEGRES(ATAN2(x2-x1; y2-y1)); 360)   ' idem, normalisé sur 0-360 degrés

Le MOD(...; 360) transforme la sortie −180…180 d'ATAN2 en une valeur de boussole conviviale 0…360 si c'est ce dont vous avez besoin. Cette formule unique — avec ATAN2, pas ATAN — est ce qui alimente les calculs de cap, les directions du vent et les « c'est dans quelle direction depuis ici » à travers les feuilles de cartographie et d'ingénierie.

ASIN et ACOS : le domaine est −1 à 1, sinon #NOMBRE!

Le sinus et le cosinus ne produisent jamais que des valeurs entre −1 et 1, donc leurs inverses ne peuvent accepter que des valeurs de cet intervalle. Demandez l'angle dont le sinus vaut 2 et il n'y en a aucun — Excel renvoie #NOMBRE! :

=DEGRES(ASIN(0,5))    ' -> 30
=DEGRES(ACOS(-1))     ' -> 180
=ASIN(2)              ' aucun angle n'a un sinus de 2 -> #NOMBRE!
=ACOS(1,5)            ' hors intervalle -> #NOMBRE!

Un #NOMBRE! issu d'ASIN ou d'ACOS signifie presque toujours qu'une valeur en amont a dérivé hors de −1…1 — souvent un rapport qui devrait être ≤ 1 mais a atterri à 1,0000001 par arrondi en virgule flottante. Quand c'est la cause, bornez-la : =ASIN(MIN(1; MAX(-1; rapport))). ATAN et ATAN2, en revanche, acceptent n'importe quelle entrée — une tangente peut valoir n'importe quel nombre réel — donc elles ne lèvent jamais #NOMBRE! pour des raisons de domaine.

Comment ExcelMaster vous aide

La trigonométrie inverse échoue de deux façons discrètes : une réponse en radians que vous lisez comme des degrés, et un ATAN là où il fallait un ATAN2. Demandez à ExcelMaster « donne-moi l'angle du point A au point B » et il construit =DEGRES(ATAN2(x2-x1; y2-y1)) — la bonne fonction, le bon ordre des arguments, le DEGRES() déjà enveloppé. Collez un ATAN2 porté depuis Python et il signale les arguments inversés avant qu'ils ne produisent un relèvement en miroir. Confiez-lui un #NOMBRE! issu d'ASIN et il remonte jusqu'à l'entrée hors intervalle.

Questions fréquentes

Comment faire une tangente inverse (arctan) dans Excel ?

Utilisez ATAN pour un rapport nu ou ATAN2 pour des coordonnées x/y, puis convertissez en degrés : =DEGRES(ATAN(1)) renvoie 45. ATAN seule renvoie des radians, donc l'enveloppe DEGRES() est ce qui vous donne un angle lisible.

Quelle est la différence entre ATAN et ATAN2 dans Excel ?

ATAN prend un seul rapport et renvoie un angle de −90° à 90°, donc elle ne sait pas dans quel quadrant se trouve un point. ATAN2 prend x et y séparément et renvoie l'angle complet de −180° à 180°. Dès que vous avez les deux coordonnées, utilisez ATAN2.

Pourquoi l'ATAN2 d'Excel semble-t-il avoir les arguments à l'envers ?

Parce qu'Excel utilise ATAN2(x_num; y_num) avec x d'abord, tandis que C, Python, JavaScript et la plupart des langages de programmation utilisent atan2(y, x) avec y d'abord. Une formule copiée depuis du code aura les deux intervertis. Lisez l'ordre d'Excel comme « horizontalement, puis verticalement » — x, puis y.

Pourquoi ASIN ou ACOS me renvoie-t-il une erreur #NOMBRE! ?

Parce que leur entrée doit être comprise entre −1 et 1 (les seules valeurs que peut prendre un sinus ou un cosinus). Toute valeur hors de cet intervalle n'a pas d'angle valide, donc Excel renvoie #NOMBRE!. C'est souvent un artefact d'arrondi — une valeur qui devrait être ≤ 1 atterrissant à 1,0000001 — que vous pouvez borner avec =ASIN(MIN(1; MAX(-1; x))).

Comment trouver l'angle entre deux points dans Excel ?

Utilisez ATAN2 sur les différences de coordonnées et enveloppez-le dans DEGRES() : =DEGRES(ATAN2(x2-x1; y2-y1)). Ajoutez MOD(...; 360) si vous voulez un relèvement de boussole 0–360° au lieu de l'intervalle −180…180 que renvoie ATAN2.

Testé dans

Testé dans : Excel 365 (Windows 11) — dernière vérification le 24/07/2026.

Guides associés : Excel SIN, COS & TAN · Excel RADIANS & DEGRES · Excel PUISSANCE & RACINE · Excel ABS & SIGNE · Excel INT, TRUNC et MOD