OVH Cloud OVH Cloud

Fonction de Excel non documentée

1 réponse
Avatar
titi
Bonjour,

Je viens de découvrir (mieux vaut tard que jamais) que Excel possédait des
fonctions masquées (exemple: Datedif).

Comment peut on connaître la liste et la syntaxe de ces fonctions qui
n'apparaissent pas dans la liste des fonctions ?

Merci.

Thierry

1 réponse

Avatar
Jacky
Bonjour,

Avec un peu de recherche sur Gôôôgle
Extrait de http://xcell05.free.fr/

B. La fonction DATEDIF (calculs d'âge)
DATEDIF fait partie des fonctions masquées d'Excel, au même titre que par
exemple ISPMT ou USDOLLAR. Elle n'est pas référencée par l'aide en ligne et
n'apparaît pas dans la liste des fonctions disponibles de l'assistant
"Coller une fonction".
DATEDIF permet de calculer la différence entre deux dates en années, mois et
jours.

Syntaxe : ÚTEDIF(Date1;Date2;Intervalle)

Cette fonction renvoie la différence entre Date1 et Date2 (Date2 >= Date1)
selon l'argument Intervalle, qui peut prendre les valeurs suivantes :

"y" : différence en années
"m" : différence en mois
"d" : différence en jours
"ym" : différence en mois, une fois les années soustraites
"yd" : différence en jours, une fois les années soustraites
"md" : différence en jours, une fois les années et les mois soustraits

Exemple :

ÚTEDIF("5/4/1990";"15/8/99";Intervalle) renvoie les valeurs suivantes
selon la valeur de l'argument Intervalle :

"y" : 9 (ans)
"m" : 112 (mois)
"d" : 3419 (jours)
"ym" : 4 (mois restants, une fois les 9 ans soustraits)
"yd" : 132 (jours restants, une fois les 9 ans soustraits)
"md" : 10 (jours restants, une fois les 112 mois soustraits)

La fonction DATEDIF peut être en particulier utilisée pour calculer des
âges. Par exemple, si la cellule A1 contient une date de naissance et la
cellule B1 la date du jour :

- Age en années simples :

ÚTEDIF(A1;B1;"y")&SI(DATEDIF(A1;B1;"y")>1;" ans";" an")

- Age en années et mois :

ÚTEDIF(A1;B1;"y")&SI(DATEDIF(A1;B1;"y")>1;" ans, ";" an, ")
&DATEDIF(A1;B1;"ym")&" mois"

- Age en années, mois et jours :

ÚTEDIF(A1;B1;"y")&SI(DATEDIF(A1;B1;"y")>1;" ans, ";" an,
")&DATEDIF(A1;B1;"ym")
&" mois, "&DATEDIF(A1;B1;"md")&SI(DATEDIF(A1;B1;"md")>1;" jours";" jour")

Cette formule peut faire apparaître des "0 an", "0 mois" ou "0 jour", par
exemple si A1"/01/1968 et B1"/02/1968, elle renverra "0 an, 1 mois, 0 jo
ur". Pour éliminer ces 0 et renvoyer seulement "1 mois", utiliser la formule
suivante :

=SUPPRESPACE(SI(B1-A1;TEXTE(DATEDIF(A1;B1;"y");"[>1]0"" ans"";[>]""1
an"";")&TEXTE(DATEDIF(A1;B1;"ym");"[>] 0"" mois
"";")&TEXTE(DATEDIF(A1;B1;"md");"[>1]0"" jours"";[>]""1 jour"";");"0 jour"))

La fonction non documentée DATEDIF ne faisant pas partie de la collection
WorksheetFunction, il est nécessaire de passer par la fonction Evaluate pour
l'utiliser à partir de VBA.

La fonction VBA suivante s'appuie sur DATEDIF pour renvoyer un âge en
années, mois et jours à partir de deux dates :

Function AGE(Date1 As Date, Date2 As Date) As String
Dim Elt As Long, D1 As Long, D2 As Long
D1 = Int(Date1): D2 = Int(Date2)
Elt = Evaluate("DATEDIF(" & D1 & "," & D2 & ",""y""")
AGE = Elt & IIf(Elt > 1, " ans, ", " an,") & _
Evaluate("DATEDIF(" & D1 & "," & D2 & ",""ym""") & " mois, "
Elt = Evaluate("DATEDIF(" & D1 & "," & D2 & ",""md""")
AGE = AGE & Elt & IIf(Elt > 1, " jours", " jour")
End Function

Salutations
JJ

"titi" a écrit dans le message de
news:
Bonjour,

Je viens de découvrir (mieux vaut tard que jamais) que Excel possédait des
fonctions masquées (exemple: Datedif).

Comment peut on connaître la liste et la syntaxe de ces fonctions qui
n'apparaissent pas dans la liste des fonctions ?

Merci.

Thierry