Formules de calcul

Cette page est à ses débuts. Je vais l'alimenter régulièrement. Si vous êtes à la recherche d'une formule, passez moi un message. De votre côté, si vous avez des formules inédites, merci de me les faire connaître. Elles peuvent être utiles à d'autres.

  • ENT(x) : partie entière de x. ex : ENT(12,4)=12
  • x MOD y : reste de la division de x par y. ex : 17 MOD 3 = 2
Index Formule
CG_JJ

Conversion d'une date du calendrier grégorien en jour julien

J= jour
M = mois
A = année
JJ = 367 * A - ENT(1,75 * (ENT((M + 9) / 12) + A )) + ENT(275 * M / 9) - ENT(0,75 * (1 + ENT(0,01 * (ENT((M - 9) / 7) + A)))) + J + 1721028,5

CG_NBJ

Nombre de jours entre deux dates du calendrier grégorien

Pour chacune des deux dates calculer la valeur Resultat et faire la différence entre ces deux valeurs.

J= jour
M = mois
A = année
b = 365 * A
c = 31 * (M - 1)
si M = 1 ou M = 2 faire
d = 0
e = ENT ((A - 1)/4)
h = ENT (0,75 * (ENT ((A - 1) / 100) + 1 ))
si M <> 1 et M <> 2 faire
d = ENT(0,4 * M + 2,3)
e= ENT (A/4)
h = ENT (0,75 * (ENT (A/100) + 1 ))
Resultat = J + b + c - d + e - h

CJ_JJ

Conversion d'une date du calendrier julien en jour julien

J = jour
si mois < 3, M = mois et A = année -1 sinon M = mois et A = année
si A < 0 => JJ = ENT(365,25 * A - 0,75) + ENT(30,6001 * (M + 1)) + J + 1720994,5
si A>= 0 => JJ = ENT(365,25 * A) + ENT(30,6001 * (M + 1)) + J + 1720994,5

CR

Règles de construction des nombres romains.

Les lettres utilisées pour construire les nombres (et dates) romains sont (toujours en majuscules) :
I = 1 ; V = 5 ; X = 10 ; L = 50 ; C = 100 ; M = 1 000.
Une lettre surmontée d'un trait voit sa valeur multipliée par 1 000. Ainsi VII surmonté d'un trait a pour valeur 7 000

Les nombres se lisent de gauche à droite en valeurs décroissantes : MCLII = 1000 + 100 + 50 + 2

Les lettres peuvent être répétées sauf V, L et D
Si une lettre devait être répétée plus de quatre fois, il convient d'utiliser cette lettre en la faisant suivre de la lettre "supérieure" : ex IV (un soustrait de 5) plutôt que IIII (toutefois, dans le romain antique, on trouve IIII)
Pour les milliers, la lettre M est répétée autant de fois que nécessaire. Exemple : MMMMM = 5000.
Seuls les multiples et sous-multiples de dix peuvent servir de "soustracteur" : I, X, C, etc. VL pour 45 est faux. IX pour 9 est juste.
Le "soustracteur" ne peut pas être doublé. VIII pour 8 est juste, IIX pour 8 est faux parce que I est doublé.
On ne peut pas soustraire une lettre d'une autre lettre plus grande que la première d'un dizième de sa valeur.
En d'autres termes une lettre ne peut être soustraite que de sa "suivante" dans l'ordre des lettres I de V, V de X, X de L... MIM pour 1999 est donc faux

CS

Cycle solaire. Il est aussi indiqué sur le calendrier de la poste

À = année
S = ((A + 8) MOD 28) + 1

EG

Epacte grégorienne. Figure aussi sur le calendrier de la poste

À =année
C = deux premiers chiffres de l'année
Eg = (11 * (A mod 19) + 8 - C + ENT(C / 4) + ENT((8 * C + 13) / 25)) MOD 30
Si Eg = 25 et N>11, Eg = 25 (en gras)

EJ

Epacte julienne

Ej = (N + 10(N-1)) MOD 30 ; N = nombre d'or (voir NO)

FETES P = date de PAQUES
ASCENSION = P + 39 jours
PENTECOTE = P + 49 jours
JJ_CG

Conversion du jour julien en date du calendrier grégorien

JJ = partie entière du jour julien
a = JJ + 32045
b= ENT(4 * (a + 36524) / 146097) - 1
c = a - ENT(146097 * b / 4)
d = ENT(4 * (c + 365) / 1461) - 1
e = c - ENT(1461 * d / 4)
m = ENT((5 * (e - 1) + 2) / 153)

Résultats :
jour = e - ENT(((153 * m) + 2) / 5)
mois = m + 3 - 12 * ENT(m / 10)
année = (100 * b) - 4800 + ENT(m / 10) + d

JJ_CJ

Conversion du jour julien en date du calendrier julien

JJ = partie entière du jour julien
b = 0
c = JJ + 32083
d = ENT(4 * (c + 365) / 1461) - 1
e = c - ENT(1461 * d / 4)
m = ENT((5 * (e - 1) + 2) / 153)

Résultats :
jour = e - ENT((153 * m) + 2 / 5)
mois = m + 3 - 12 * ENT(m / 10)
année = 100 * b - 4800 + ENT(m / 10) + d

LDG

Lettre dominicale dans le calendrier grégorien. Figure aussi sur le calendrier de la poste

C = deux premiers chiffres de l'année
U = deux derniers chiffres de l'année
Lg = ((2C - U - ENT(U /4) - ENT(C/4)) MOD 7) + 1

resultat : 1=A ; 2=B...

LDJ

Lettre dominicale dans le calendrier julien.

S = cycle solaire de l'année (voir CS)
Lj = ((6 - S - (ENT(S - 1) / 4)) MOD 7) + 1

resultat : 1=A ; 2 =B....

NO

Nombre d'or. Figure aussi sur le calendrier de la poste

À = année
N= (A MOD 19) + 1

PQ1

Date de Pâques à partir de l'épacte grégorienne et de la lettre dominicale grégorienne

E = epacte (voir EG)
L = lettre dominicale (voir EG)
si E = 24 et L = 4 => E = -5
si E = 25 et L = 3 => E = -4
si E > 23 => E = E - 30
P = 45 - E + ((E + L + 1) MOD 7)

PQ2

Date de Pâques dans le calendrier julien.

On procède par divisions successives dont on conserve le reste et, eventuellement, le quotient.
A= année

Tableau de calcul de la date de Pâques dans le calendrier julien

Resultats : n = mois (3 = mars ; 4 = avril)
Quantième du mois de la date de Pâques = p +1

PQ3

Date de Pâques dans le calendrier grégorien (à partir de 1583).

On procède par divisions successives dont on conserve le reste et, eventuellement, le quotient.
A= année

Tableau de calcul de la date de Pâques dans le calendrier grégorien, dès 1583

Resultats : n = mois (3 = mars ; 4 = avril)
Quantième du mois de la date de Pâques = p +1

HMS1

Conversion des heures, minutes, secondes en heures décimales

H = heures
M = minutes
S = secondes
a = S / 60
b = (M + a) / 60
HD = H + b

HMS2

Conversion des heures décimales en heures, minutes, secondes

HD = heure décimale
a = (partie décimale de HD * 60)
minutes = partie entière de a
b = (partie décimale de a * 60)
secondes = partie entière de b
heures = partie entière de HD

JSEM1

Trouver le jour de la semaine à partir d'une date

Soit la date J/M/SD (S= deux premiers chiffres de l'année - D deux derniers chiffres de l'année)
Le jour de la semaine JSEM sera = J + 3M - ENT(3M/10) + 5S + ENT(S/4) + D + ENT(D/4) + C
C=3 pour janvier et février si l'année est bissextile
C=4 pour janvier et février si l'année n'est pas bissextile
C=2 pour avril
C=0 pour décembre
C=1 dans tous les autres cas
Prendre le reste de JSEM/7
Le résultat est : samedi = 0 ; dimanche = 1 ; lundi = 2...

Source : dictionnaire des mathématiques récréatives

JSEM2

Trouver le jour de la semaine à partir d'un Jour Julien (à 00 H UT)

Ajouter 1,5 au JJ
Diviser par 7
Le résultat est : samedi = 0 ; dimanche = 1 ; lundi = 2...

OL_J

Trouver l'année julienne à partir de l'olympiade

Soit n le nombre de l'olympiade, p le chiffre additionnel (1re, 2e, 3e, 4e année de la nième olympiade)

Période av. J.-C. : Année julienne = 776 - ((n - 1) X 4 + (p - 1))
Période ap. J.-C. : Année julienne = (n - 1) X 4 + p - 776

J_OL

Trouver l'olympiade et le chiffre additionnel à partir de l'année julienne

Soit n le nombre des olympiades, p le chiffre additionnel (1re, 2e, 3e, 4e année de la nième olympiade)
A=année julienne

Période av. J.-C. :
Si la partie décimale de (776-A)/4 = 0, p=1, n=(ENT(776 - A)/4)) +1
Si la partie décimale de (776-A)/4 = 25, p=2, n=(ENT(776 - A)/4)) +1
Si la partie décimale de (776-A)/4 = 50, p=3, n=(ENT(776 - A)/4)) +1
Si la partie décimale de (776-A)/4 = 75, p=4, n=(ENT(776 - A)/4)) +1

Période ap. J.-C. :
Si la partie décimale de (776+A)/4 = 25, p=1, n=(ENT(776 +A)/4)) +1
Si la partie décimale de (776+A)/4 = 50, p=2, n=(ENT(776 +A)/4)) +1
Si la partie décimale de (776+A)/4 = 75, p=3, n=(ENT(776 +A)/4)) +1
Si la partie décimale de (776+A)/4 = 00, p=4, n=(ENT(776 +A)/4) )

FORMULES EXCEL
EXC_AT

Durée de l'année tropique pour un jour julien donné.

Jour julien en B1

EN B4 : =(B1-2451545)/365250

EN B3 : =365,2421905166-61,5607*(10^-6)*B4-68,4*(10^-9)*(B4^2)+263*(10^-9)*(B4^3)+3,2*(10^-9)*(B4^4) = durée de l'année tropique.

EXC_CS

Cycle solaire dans les calendriers julien et grégorien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=MOD(ANNEE+8;28)+1

EXC_EG

Epacte dans le calendrier grégorien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=SI(ET(MOD(11*MOD(ANNEE;19)+ 8-ENT(ANNEE/100)+ENT(ENT(ANNEE/100)/4)+ENT((8*ENT(ANNEE/100)+13)/25);30)=25;MOD(ANNEE;19)+1>11);"XXV"; MOD(11*MOD(ANNEE;19)+ 8-ENT(ANNEE/100)+ENT(ENT(ANNEE/100)/4)+ENT((8*ENT(ANNEE/100)+13)/25);30))

EXC_EJ

Epacte dans le calendrier julien . Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=MOD(11*MOD(ANNEE;19)+8;30)

EXC_IR

Indiction romaine dans les calendriers julien et grégorien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=MOD(ANNEE+2;15)+1

EXC_LDG

Lettre dominicale dans le calendrier grégorien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=SI(ENT(365,25*(ANNEE))+SI((ANNEE+1)<1582,1;0;2-ENT((ANNEE)/100)+ENT((ENT((ANNEE)/100))/4))- ENT(365,25*(ANNEE-1))-SI(ANNEE<1582,1;0;2-ENT((ANNEE-1)/100)+ENT((ENT((ANNEE- 1)/100))/4))=366;CHOISIR(MOD(2*ENT(ANNEE/100)-(ANNEE-ENT(ANNEE/100)*100)-ENT((ANNEE- ENT(ANNEE/100)*100)/4)-ENT(ENT(ANNEE/100)/4);7)+1;"B";"C";"D";"E";"F";"G";"A");"")&CHOISIR(MOD(2*ENT(ANNEE/100) -(ANNEE-ENT(ANNEE/100)*100)-ENT((ANNEE-ENT(ANNEE/100)*100)/4) -ENT(ENT(ANNEE/100)/4);7)+1;"A";"B";"C";"D";"E";"F";"G")

EXC_LDJ

Lettre dominicale dans le calendrier julien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=SI(MOD(ANNEE;4)=0;CHOISIR(MOD(ENT(ANNEE/100)+2-(ANNEE-ENT(ANNEE/100)*100)-ENT((ANNEE -ENT(ANNEE/100)*100)/4);7)+1;"B";"C";"D";"E";"F";"G";"A");"")&CHOISIR(MOD(ENT(ANNEE/100)+2-(ANNEE -ENT(ANNEE/100)*100)-ENT((ANNEE-ENT(ANNEE/100)*100)/4);7)+1;"A";"B";"C";"D";"E";"F";"G")

EXC_NO

Nombre d'or dans les calendriers julien et grégorien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=MOD(ANNEE;19)+1

EXC_PQ1CTRLG

Controle de l'année pour la date de Pâques dans le calendrier grégorien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=SI(ANNÉE<1583;"erreur";"")

EXC_PQ1JG

Jour de la date de Pâques dans le calendrier grégorien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=MOD(MOD(19*MOD(ANNÉE;19)+ENT(ANNÉE/100)-ENT(ENT(ANNÉE/100)/4)-ENT((ENT(ANNÉE/100) -ENT((ENT(ANNÉE/100)+8)/25)+1)/3)+15;30)+ MOD(32+2*MOD(ENT(ANNÉE/100);4)+2*ENT(MOD(ANNÉE;100)/4) -MOD(19*MOD(ANNÉE;19)+ENT(ANNÉE/100)-ENT(ENT(ANNÉE/100)/4)-ENT((ENT(ANNÉE/100) -ENT((ENT(ANNÉE/100)+8)/25)+1)/3)+15;30)-MOD(MOD(ANNÉE;100);4);7)-7 * ENT((MOD(ANNÉE;19)+11*MOD(19*MOD(ANNÉE;19)+ENT(ANNÉE/100)-ENT(ENT(ANNÉE/100)/4)-ENT((ENT(ANNÉE/100) -ENT((ENT(ANNÉE/100)+8)/25)+1)/3)+15;30)+22* MOD(32+2*MOD(ENT(ANNÉE/100);4)+2*ENT(MOD(ANNÉE;100)/4) -MOD(19*MOD(ANNÉE;19)+ENT(ANNÉE/100)-ENT(ENT(ANNÉE/100)/4)-ENT((ENT(ANNÉE/100) -ENT((ENT(ANNÉE/100)+8)/25)+1)/3)+15;30)-MOD(MOD(ANNÉE;100);4);7))/451)+114;31)+1

EXC_PQ1JJ

Jour de la date de Pâques solaire dans le calendrier julien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=MOD(MOD(19*MOD(ANNEE;19)+15;30)+MOD(2*MOD(ANNEE;4)+4*MOD(ANNEE;7) -MOD(19*MOD(ANNEE;19)+15;30)+34;7)+114;31)+1

EXC_PQ1MG

Mois de la date de Pâques dans le calendrier grégorien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=ENT((MOD(19*MOD(ANNÉE;19)+ENT(ANNÉE/100)-ENT(ENT(ANNÉE/100)/4)-ENT((ENT(ANNÉE/100) -ENT((ENT(ANNÉE/100)+8)/25)+1)/3)+15;30)+ MOD(32+2*MOD(ENT(ANNÉE/100);4)+2*ENT(MOD(ANNÉE;100)/4) -MOD(19*MOD(ANNÉE;19)+ENT(ANNÉE/100)-ENT(ENT(ANNÉE/100)/4)-ENT((ENT(ANNÉE/100) -ENT((ENT(ANNÉE/100)+8)/25)+1)/3)+15;30)-MOD(MOD(ANNÉE;100);4);7)-7 * ENT((MOD(ANNÉE;19)+11*MOD(19*MOD(ANNÉE;19)+ENT(ANNÉE/100)-ENT(ENT(ANNÉE/100)/4)-ENT((ENT(ANNÉE/100) -ENT((ENT(ANNÉE/100)+8)/25)+1)/3)+15;30)+22* MOD(32+2*MOD(ENT(ANNÉE/100);4)+2*ENT(MOD(ANNÉE;100)/4) -MOD(19*MOD(ANNÉE;19)+ENT(ANNÉE/100)-ENT(ENT(ANNÉE/100)/4)-ENT((ENT(ANNÉE/100) -ENT((ENT(ANNÉE/100)+8)/25)+1)/3)+15;30)-MOD(MOD(ANNÉE;100);4);7))/451)+114)/31)

EXC_PQ1MJ

Mois de la date de Pâques dans le calendrier julien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=ENT((MOD(19*MOD(ANNEE;19)+15;30)+MOD(2*MOD(ANNEE;4)+4*MOD(ANNEE;7) -MOD(19*MOD(ANNEE;19)+15;30)+34;7)+114)/31)

EXC_PQ2

date de Pâques

Année dans A1
Dans une autre cellule (au format date) : =ARRONDI(DATE(A1;4;MOD(234-11*MOD(A1;19);30))/7;)*7-6

EXC_SJJ

Jour de la semaine à partir du jour julien. Merci à Daniel LACROZE-MARTY
Nommer JJ la cellule qui contient le jour julien

=CHOISIR(MOD(JJ+1,5;7)+1;"dimanche";"lundi";"mardi";"mercredi";"jeudi";"vendredi";"samedi")

EXC_NBJJ

Nombre de jours dans l'année pour le calendrier julien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=SI(MOD(ANNEE ;4)=0 ;366 ;365)

EXC_NBJG

Nombre de jours dans l'année pour le calendrier grégorien. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année

=SI(MOD(ANNEE ;400)=0 ;366 ;SI(MOD(ANNEE ;100)=0 ;365 ;SI(MOD(ANNEE ;4)=0 ;366 ;365)))

EXC_DTJJ

Obtenir la date à partir du jour julien. Merci à Daniel LACROZE-MARTY
Nommer JJ la cellule qui contient le jour julien. Nommer d'autres cellules JOUR, MOIS, ANNEE, HEURES, MINUTES, SECONDES.

Dans la cellule JOUR : =SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5);ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5)-1867216,25)/36524,25) -ENT(ENT((ENT(JJ+0,5) -1867216,25)/36524,25)/4))+1524 -ENT(365,25*ENT((SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5);ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5)-1867216,25)/36524,25) -ENT(ENT((ENT(JJ+0,5)-1867216,25)/36524,25)/4))+1524-122,1)/365,25)) -ENT(30,6001*ENT((SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5) ;
ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5)-1867216,25)/36524,25)-ENT(ENT((ENT(JJ+0,5)-1867216,25)/36524,25)/4))+1524 -ENT(365,25*ENT((SI(ENT(JJ+0,5)<2299161 ;
ENT(JJ+0,5);ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5)-1867216,25)/36524,25)-ENT(ENT((ENT(JJ+0,5) -1867216,25)/36524,25)/4))+1524-122,1)/365,25)))/30,6001))

Dans la cellule MOIS : =SI(ENT((SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5);ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5) -1867216,25)/36524,25)-ENT(ENT((ENT(JJ+0,5)-1867216,25)/36524,25)/4))+1524 -ENT(365,25*ENT((SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5);ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5)-1867216,25)/36524,25) -ENT(ENT((ENT(JJ+0,5)-1867216,25)/36524,25)/4))+1524 -122,1)/365,25)))/30,6001)<13,5;ENT((SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5);ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5) -1867216,25)/36524,25)-ENT(ENT((ENT(JJ+0,5)-1867216,25)/36524,25)/4))+1524 -ENT(365,25*ENT((SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5);ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5)-1867216,25)/36524,25) -ENT(ENT((ENT(JJ+0,5)-1867216,25)/36524,25)/4))+1524-122,1)/365,25)))/30,6001) -1;ENT((SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5);ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5)-1867216,25)/36524,25) -ENT(ENT((ENT(JJ+0,5)-1867216,25)/36524,25)/4))+1524 -ENT(365,25*ENT((SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5);ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5)-1867216,25)/36524,25) -ENT(ENT((ENT(JJ+0,5)-1867216,25)/36524,25)/4))+1524-122,1)/365,25)))/30,6001)-13

Dans la cellule ANNEE : =SI(MOIS>2,5;ENT((SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5);ENT(JJ+0,5)+1+ENT((ENT(JJ+0,5) -1867216,25)/36524,25)-ENT(ENT((ENT(JJ+0,5)-1867216,25)/36524,25)/4))+1524-122,1)/365,25) -4716;ENT((SI(ENT(JJ+0,5)<2299161;ENT(JJ+0,5);ENT(JJ+0,5)+1
+ENT((ENT(JJ+0,5)-1867216,25)/36524,25)-ENT(ENT((ENT(JJ+0,5)-1867216,25)/36524,25)/4))+1524-122,1) /365,25)-4715)

Dans la cellule HEURES : =ENT((JJ+0,5-ENT(JJ+0,5))*24)

Dans la cellule MINUTES : =ENT((JJ+0,5-ENT(JJ+0,5))*1440-ENT(HEURES*60))

Dans la cellule SECONDES : =(JJ+0,5-ENT(JJ+0,5))*86400-HEURES*3600-MINUTES*60

EXC_SUNJJ

Obtenir le jour julien à partir d'une position du soleil. Merci à Daniel LACROZE-MARTY
Nommer ANNEE la cellule qui contient l'année et POSITION celle qui contient la position du soleil (en degrés décimaux 0 à 360). Nommer d'autres cellules JJ1, T1, M1, JJ2, T2, M2, JJ3, T3, M3, JJ4, T4, M4, JJ5, T5, M5, JJ.
Pour obtenir les solstices et équinoxes, POSITION prendre donc les valeurs 0, 90,180 ou 270

Dans la cellule JJ1 : =(ANNEE+POSITION/360)*365,2422+1721141,3

Dans la cellule T1 : =(JJ1-2415020)/36525

Dans la cellule M1 : =6,256583522+628,301945727*T1-0,000002618*T1*T1-0,000000058*T1*T1*T1

Dans la cellule JJ2 : =JJ1+58*SIN(POSITION/180*PI()-(4,88162797+628,331950904 *T1
+0,00000528*T1*T1+(0,033500897-0,000083584*T1-0,000000244*T1*T1) *SIN(M1)
+(0,000350706-0,000001745*T1)*SIN(2*M1)+0,000005114*SIN(3*M1)-0,0000993092-0,000083601*SIN(4,523544355 -33,7571461*T1)))

Dans la cellule T2 : =(JJ2-2415020)/36525

Dans la cellule M2 : =6,256583522+628,301945727*T2-0,000002618*T2*T2-0,000000058*T2*T2*T2

Dans la cellule JJ3 : =JJ2+58*SIN(POSITION/180*PI()-(4,88162797+628,331950904 *T2
+0,00000528*T2*T2+(0,033500897-0,000083584*T2-0,000000244*T2*T2) *SIN(M2)
+(0,000350706-0,000001745*T2)*SIN(2*M2)+0,000005114*SIN(3*M2)-0,0000993092-0,000083601 *SIN(4,523544355-33,7571461*T2)))

Dans la cellule T3 : =(JJ3-2415020)/36525

Dans la cellule M3 : =6,256583522+628,301945727*T3-0,000002618*T3*T3-0,000000058*T3*T3*T3

Dans la cellule JJ4 : =JJ3+58*SIN(POSITION/180*PI()-(4,88162797+628,331950904 *T3
+0,00000528*T3*T3+(0,033500897-0,000083584*T3-0,000000244*T3*T3 )*SIN(M3)
+(0,000350706-0,000001745*T3)*SIN(2*M3)+0,000005114*SIN(3*M3)-0,0000993092-0,000083601 *SIN(4,523544355-33,7571461*T3)))

Dans la cellule T4 : =(JJ4-2415020)/36525

Dans la cellule M4 : =6,256583522+628,301945727*T4-0,000002618*T4*T4-0,000000058*T4*T4*T4

Dans la cellule JJ5 : =JJ4+58*SIN(POSITION/180*PI()-(4,88162797+628,331950904 *T4
+0,00000528*T4*T4+(0,033500897-0,000083584*T4-0,000000244*T4*T4) *SIN(M4)
+(0,000350706-0,000001745*T4)*SIN(2*M4)+0,000005114*SIN(3*M4)-0,0000993092-0,000083601 *SIN(4,523544355-33,7571461*T4)))

Dans la cellule T5 : =(JJ5-2415020)/36525

Dans la cellule M5 : =6,256583522+628,301945727*T5-0,000002618*T5*T5-0,000000058*T5*T5*T5

Dans la cellule JJ (résultat...ouf !!) : =JJ5+58*SIN(POSITION/180*PI()-(4,88162797+628,331950904*T5 +
0,00000528*T5*T5+(0,033500897-0,000083584*T5-0,000000244*T5*T5) *SIN(M5)
+(0,000350706-0,000001745*T5)*SIN(2*M5)+0,000005114*SIN(3*M5)-0,0000993092-0,000083601 *SIN(4,523544355-33,7571461*T5)))

XC_J_JG

Calcul du jour julien à partir de date et heure (julien ou grégorien) . Merci à Daniel LACROZE-MARTY
Nommer JOUR, MOIS, ANNEE, HEURES, MINUTES, SECONDES les cellules qui vont recevoir les données correspondantes.

Jour julien (0 h) : =ENT(365,25*SI(MOIS<3;ANNÉE-1;ANNÉE)+ENT(30,6001*SI(MOIS <3;MOIS
+13;MOIS+1)))+JOUR+1720994,5+SI(ANNÉE*10000+MOIS*100+JOUR<15821015 ;
0;2-ENT(SI(MOIS<3;ANNÉE-1;ANNÉE)/100)+ENT((ENT(SI(MOIS<3;ANNÉE -1;ANNÉE)/100))/4))

Jour julien (h mn s) : =ENT(365,25*SI(MOIS<3;ANNÉE-1;ANNÉE)+ENT(30,6001 *SI(MOIS<3;MOIS
+13;MOIS+1)))+JOUR+HEURES/24+MINUTES/1440+SECONDES/86400 +1720994,5
+SI(ANNÉE*10000+MOIS*100+JOUR<15821015;0;2-ENT(SI(MOIS <3;ANNÉE-1;ANNÉE)/100)+ENT((ENT(SI(MOIS<3;ANNÉE-1;ANNÉE)/100))/4))

XC_NUMJ_JG

Calcul du numéro de jour dans l'année à partir d'une date (julien ou grégorien). Merci à Nicolas DELONG
Nommer JOUR, MOIS, ANNEE les cellules qui vont recevoir les données correspondantes.

Numéro du jour =ENT(275*MOIS/9)-SI(SI(ANNEE<1583;MOD(ANNEE;4)=0;ET(MOD(ANNEE;4)=0; OU(MOD(ANNEE;100)<>0;MOD(ANNEE;400)=0)));1;2)*ENT((MOIS+9)/12)+JOUR-30

XC_GREC_BIS

Calcul des années bissextiles dans le calendrier grec moderne qui ne suit pas les règles grégoriennes. Merci encore Daniel LACROZE-MARTY
Nommer JOUR, MOIS, ANNEE les cellules qui vont recevoir les données correspondantes.

Nommer ANNEE la cellule qui contient l'année grecque.

Mettre, dans un autre cellule, la formule =SI(OU(MOD(ANNEE;900)=200;MOD(ANNEE;900)=600);366;SI(MOD(ANNEE;100)=0;365;SI(MOD(ANNEE;4)=0;366;365)))
qui donnera le nombre de jours de cette année.

XC_NL

Encore une série de formules dues à Daniel LACROZE-MARTY.
Elle vaut son pesant d'or tant elle est rare. Elle permet d'obtenir le jour julien de la nouvelle lune la plus proche d'une date grégorienne donnée.
Combinée à EXC_DTJJ, elle convertit ce jour julien en date du calendrier grégorien.
Elle mérite bien qu'on se donne la peine de nommer quelques cellules. Chapeau Daniel.

Nommer respectivement JOUR, MOIS, ANNEE les cellules qui vont contenir la date pour laquelle on veut connaître la date de nouvelle lune la plus proche

Nommer d'autres cellules NLJJa, NLk, NLT, NLJJm, NLM, NLM1, NLF, JJ.
JJ affichera le Jour Julien de la nouvelle lune la plus proche de notre date initiale.

Ces différentes cellules nommées vont respectivement contenir les formules suivantes :

Formule dans cellule nommée NLJJa : =ENT(275*MOIS/9)-SI(OU(ET(ANNEE<1583;ANNEE/4 -ENT(ANNEE/4)=0);ET(ANNEE>1582;ANNEE/4-ENT(ANNEE/4)=0;ANNEE/400-ENT(ANNEE/400)<>0));1;2)*ENT((MOIS+9)/12)+JOUR-30

Formule dans cellule nommée NLk : =ARRONDI((ANNEE+NLJJa/365,25-1900)*12,3685;0)

Formule dans cellule nommée NLT : =NLk/1236,85

Formule dans cellule nommée NLJJm : =2415020,75933+29,53058868*NLk+0,0001178*NLT*NLT -0,000000155*NLT*NLT*NLT+0,00033*SIN(2,9070204+2,31901898*NLT-0,0001601*NLT*NLT)

Formule dans cellule nommée NLM : =6,26964504+0,50798429*NLk-0,0000005812*NLT*NLT -0,0000000606*NLT*NLT*NLT

Formule dans cellule nommée NLM1 : =5,34114908+6,73377553*NLk+0,00018728*NLT*NLT+0,0000002157*NLT*NLT*NLT

Formule dans cellule nommée NLF : =0,3716923+6,81848663*NLk-0,000028847*NLT*NLT-0,00000004171*NLT*NLT*NLT

Formule dans cellule nommée JJ : =NLJJm+0,0021*SIN(2*NLM)-0,0004*SIN(3*NLM1)-0,0004*SIN(2*NLF-NLM) - 0,0006*SIN(2*NLF+NLM1)+(0,1734-0,000393*NLT)*SIN(NLM) -0,4068*SIN(NLM1)+0,0161*SIN(2*NLM1)+0,0104*SIN(NLF*2)- 0,0051*SIN(NLM+NLM1)-0,0074*SIN(NLM -NLM1)+0,0004*SIN(2*NLF+NLM)+0,001*SIN(2*NLF-NLM1)+0,0005*SIN(NLM+2*NLM1)

Pour obtenir la date de la pleine lune au lieu de la nouvelle lune, rajouter 0,5 à NLk

XC_SUNLC

Heures de lever et coucher du Soleil pour un jour déterminé

1) Commencer par copier-coller dans un module VBA les fonctions qui se trouvent ici

rappel de la procédure : Copier toutes les formules d'un coup.
Dans Excel, appeler l'éditeur VB à l'aide du raccourci clavier Alt F11
Dans le menu INSERTION de l'éditeur, cliquer sur MODULE
Coller les fonctions dans ce module
Retourner sur la feuille Excel

2) Dans trois cellules, entrer le jour, le mois, l'année (ex : 10 en A1 ; 07 en A2 ; 2005 en A3)
Dans deux autres cellules, entrer la longitude et la latitude du lieu.
Les longitudes Ouest sont négatives, les chiffres sont des valeurs décimales des degrés et minutes.
Par exemple, pour Paris mettre en B1 la valeur 48,87 (latitude 48°52) et en B2 la valeur 2,33 (longitude 2°20 E)

3) Dans une autre cellule (D1 par exemple), appeler la fonction personnalisée LEVER et pointer sur les bonnes cellules des différentes variables demandées. Ce qui donnera pour notre exemple =lever(B1;B2;A1;A2;A3)
Passer la cellule D1 au format HEURE type 13:30

4) Faire la même chose que 3) pour la fonction COUCHER dans une autre cellule. La formule de la cellule sera donc
=coucher(B1;B2;A1;A2;A3)