Additionner des angles en degrès

juju59

XLDnaute Nouveau
Bonjour à tous,

je sollicite votre aide car je n'arrive pas à résoudre ce problème seul :

j'ai dans 6 colonnes des angles (provenant d'une girouette) allant de 0 à 360°.

Je souhaiterai faire la moyenne à la fin de chaque ligne de ces angles afin de les mettre sur un graphique pour les étudier (environ 4000 lignes de 6 colonnes).

Mon problème se pose lorsque les valeurs sont proches de 0°, c'est à dire par exemple 3*355° , et 3*2° ... ma moyenne est alors de 177.5° alors que je souhaiterai qu'elle soit de 358.5°.

J'ai trouvé une formule permettant de faire l'addition pour deux angles : ici la cellule B15 et la cellule A15

=MOD(360+B15+(MOD(A15-B15+180+360;360)-180)/2;360)

Source : Comment calculer la moyenne d'un ensemble d'angles?

Je n'arrive pas à l'adapter à 3 ou 6 angles...

Si quelqu'un a une solution, cela m'aiderai beaucoup

merci par avance
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Additionner des angles en degrès

Bonjour juju, et bienvenue sur le forum

un essai en pièce jointe .......... sans être sûr

à+
Philippe
 

Pièces jointes

  • 111.xls
    18.5 KB · Affichages: 339
  • 111.xls
    18.5 KB · Affichages: 314
  • 111.xls
    18.5 KB · Affichages: 326

ROGER2327

XLDnaute Barbatruc
Re : Additionner des angles en degrès

Bonjour juju59, phlaurent55
Une autre proposition (matricielle) :
Code:
=SI(NB($B4:$G4)=COLONNES($B4:$G4);MOD(ARRONDI(SI(ARRONDI(SOMME(COS(0.0174532925199433*$B4:$G4));12)=0;SI(ARRONDI(SOMME(SIN(0.0174532925199433*$B4:$G4));12)=0;NA();180*(SOMME(SIN(0.0174532925199433*$B4:$G4))<0)+90);ATAN(SOMME(SIN(0.0174532925199433*$B4:$G4))/SOMME(COS(0.0174532925199433*$B4:$G4)))*57.2957795130823+180*(SOMME(COS(0.0174532925199433*$B4:$G4))<0));1);360);"")
(données en B4:G4)​
ROGER2327
#5264


Lundi 9 Merdre 138 (Vidange - Vacuation)
7 Prairial An CCXIX, 0,0062h - fromental
2011-W21-4T00:00:54Z
 

juju59

XLDnaute Nouveau
Re : Additionner des angles en degrès

Merci beaucoup à vous deux, j'ai gardé la solution de phlaurent55 car je ne souhaitais pas partir dans des matricielle ici.

Je ne sais pas comment vous faites pour trouver des solutions aussi rapidement mais en tout cas merci beaucoup !!

A bientôt
 

juju59

XLDnaute Nouveau
Re : Additionner des angles en degrès

Je crains de m'être réjoui trop rapidement...

Après quelques essais, je trouve cette erreur par exemple :

39 , 27 , 31 , 59 , 40 , 353 avec ceci je devrais obtenir 31.5 (39+27+31+59+40-7)/6 et j'obtiens 271 ...

Une autre idée ?..

Merci par avance
 

ROGER2327

XLDnaute Barbatruc
Re : Additionner des angles en degrès

Bonjour juju599
(…) j'ai gardé la solution de phlaurent55 (…)
Compte tenu des résultats qu'elle donne, vous avez certainement raison.​
ROGER2327
#5265


Lundi 9 Merdre 138 (Vidange - Vacuation)
7 Prairial An CCXIX, 5,5760h - fromental
2011-W21-4T13:22:57Z
 

Pièces jointes

  • Temp.xls
    30.5 KB · Affichages: 165
  • Temp.xls
    30.5 KB · Affichages: 155
  • Temp.xls
    30.5 KB · Affichages: 157

juju59

XLDnaute Nouveau
Re : Additionner des angles en degrès

bonjour ROGER2327

J'ai également essayé avec votre formule mais excel me dit "vous avez tapez un nombre trop important d'argument pour cette fonction"

Je travaille sur un pc connecté à distance qui est sous 2007, je ne pense pas avoir fait d'erreur en convertissant la formule pour qu'elle fonctionne sous 2007... (remplacer ";" par "," et les "," par ".")

Code:
=SI(NB($J13:$O13)=COLONNES($J13:$O13),MOD(ARRONDI(SI(ARRONDI(SOMME(COS(0.0174532925199433*$J13:$O13)),12)=0,SI(ARRONDI(SOMME(SIN(0.0174535925199433*$J13:$O13)),12)=0,NA(),180*(SOMME(SIN(0,0174532925199433*$J13:$O13))<0)+90),ATAN(SOMME(SIN(0,0174532925199433*$J13:$O13))/SOMME(COS(0,0174532925199433*$J13:$O13)))*57,2957795130823+180*(SOMME(COS(0,0174532925199433*$J13:$O13))<0)),1),360),"")

Il est vrai que la formule fonctionne sur mon pc qui tourne en 2003... D'où peut venir cette erreur ?

merci
 
Dernière édition:

juju59

XLDnaute Nouveau
J'ai enfin compris d'où venait ce problème ! (Ouf !)

Il fallait activé la matrice avec Ctrl+maj+Entree

C'est la première fois que j'utilise une matrice, pourriez vous m'indiquez qu'elle est l'utilité de celle-ci ?

De plus, je m'interroge sur deux points de cette formule, que je souhaite comprendre pour mieux l'utiliser.

Le premier :

Code:
SOMME(COS(0.0174532925199433*$B4:$G4))
, que représente *$B4:$G4, est-ce la somme du contenu de ces cellules, ou le nombre de cellule ?

Deuxième point :

Code:
180*(SOMME(SIN(0.0174532925199433*$B4:$G4))<0)
Je ne comprends pas ce que le "<0" fait ici, en effet il n'est pas dans une condition d'un SI par exemple...

Merci d'éclairer ma lanterne.
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Additionner des angles en degrès

Suite…

  1. Dans le sabir microsoftien, l'expression "formule matricielle" n'a pas grand chose à voir avec ce qu'on entend généralement par calcul matriciel. Mais ça fait scientifique et ça embrouille bien : c'est l'essentiel pour épater le badaud.
    En fait, une formule matricielle est une formule qu'on doit valider par la combinaison de touches Ctrl Maj Entrée.
    Par exemple, en supposant que la plage A1:A3 contient les nombres -3, 0, 5, considérons les formules :
    Code:
    =SOMME((A1:A3>0)*1)
    =SOMME((A1:A3>0)+0)
    validées par Ctrl Maj Entrée.

    Que font-elles ? Elles comparent successivement les nombres en A1, A2, A3 avec 0 et renvoient les valeurs d'affichage FAUX, FAUX, VRAI. Toutefois, en interne, ces valeurs logiques sont représentées par 0, 0, 1. La multiplication par 1 ou l'addition de 0 sont là pour forcer la reconnaissance des valeurs logiques VRAI et FAUX sous leur forme numérique 1 et 0. Par conséquent, ces formules calculent la somme 0 + 0 + 1, soit 1. Autrement dit, ces formules comptent le nombre de valeurs strictement positives dans la plage de nombres A1:A3.

    On vérifiera que la formule
    Code:
    =(A1>0)+(A2>0)+(A3>0)
    (validée par Entrée) fait la même chose.

    Ce qui équivaut exactement à cette autre formule :
    Code:
    =NB.SI(A1:A3;">0")
    qu'on valide "normalement" par Entrée. On voit parfaitement qu'ici la qualification matricielle ne s'applique pas à la nature du calcul effectué, mais au mode de validation de la formule utilisée.

    Une autre formule classique et ses variantes, à valider "normalement", confirme ce constat :
    Code:
    =SOMMEPROD((A1:A3>0)*1)
    =SOMMEPROD((A1:A3>0)+0)
    =SOMMEPROD(--(A1:A3>0))
    Pour l'anecdote, car elles compliquent les choses sans apporter davantage, voici quelques formules qui fournissent le même résultat.

    Ces trois-là, pourtant authentiquement matricielles, sont à valider par Entrée :
    Code:
    =PRODUITMAT(-{1\1\1};-(A1:A3>0))
    =PRODUITMAT(-(COLONNE(A:C)>0);-(A1:A3>0))
    =PRODUITMAT(-SIGNE(COLONNE(A:C));-(A1:A3>0))
    Les trois suivantes doivent être validée par Ctrl Maj Entrée :
    Code:
    =PRODUITMAT(-TRANSPOSE(A1:A3>0);-{1;1;1})
    =PRODUITMAT(-TRANSPOSE(A1:A3>0);-(LIGNE(1:3)>0))
    =PRODUITMAT(-TRANSPOSE(A1:A3>0);-SIGNE(LIGNE(1:3)))
    On peut certainement en imaginer d'autres…

    Je joins un autre classeur (repris d'une ancienne discussion) où une formule plus complexe est construite par étape.


  2. Pour ce qui est du calcul de la moyenne d'angles mesurés dans l'intervalle [0;360[, la formule que j'ai suggérée doit être abandonnée.
    • D'une part elle est approximative et ne donne des résultats corrects que si les angles ont des mesures assez voisines. C'est d'ailleurs pourquoi je l'avais affublée d'un arrondi au dixième.
    • D'autre part elle est lourde et lente.
    J'en fournirai une autre plus simple et exacte même si les angles ont des mesures disparates. Je dois encore la tester et l'affiner : je la déposerai demain… ou après-demain, en fonction du temps que je pourrai y consacrer.
À bientôt.

ROGER2327
#5271


Jeudi 12 Merdre 138 (Saintes Miches, catéchumènes - fête Suprême Quarte)
10 Prairial An CCXIX, 0,2405h - faux
2011-W21-7T00:34:38Z
 

Pièces jointes

  • Formules_matricielles_1.xls
    17 KB · Affichages: 115
  • Formules_matricielles_2.xls
    29.5 KB · Affichages: 121

hoerwind

XLDnaute Barbatruc
Re : Additionner des angles en degrès

Bonjour, salut Roger,

J'ai aussi eu beau chercher LA formule, sans la trouver.

Je bute sur la moyenne de deux angles : 90 et 270.
Quel doit être le résultat : 0, 360 ou 180 ?
Normalement elle devrait renvoyer un message d'erreur car il n'y a pas de résultat !

J'ai aussi essayé la fonction MOD, comme pour un calcul d'heures avant et après 24:00
Il me semble que c'est la piste qu'il faudrait exploiter, mais je n'y suis pas encore parvenu.

Je continue à chercher ... une formule simple
 

hoerwind

XLDnaute Barbatruc
Re : Additionner des angles en degrès

Re,

Il me semble qu'il y a impossibilité de calculer, pour tous les cas de figure, la moyenne d'une série d'angles dont l'amplitude est supérieure à 180.
Exemple : 120, 240 et 360

En pièce jointe une formule, résultat d'un tableau intermédiaire, qui semble renvoyer les bons résultats.
Je n'ai pas encore cherché à la mettre en matricielle afin de supprimer le tableau intermédiaire.
Avant de le faire, je souhaite avoir votre avis quant aux limites de ce type de calcul (amplitude).
 

Pièces jointes

  • MoyenneAnglesV2.xls
    31 KB · Affichages: 112