Autres Ecart-Type sur les valeurs supèrieure à 0

otarc

XLDnaute Junior
Bonjour,

J'aimerai appliquer l'écart-type sur les valeurs supèrieure à 0 dans les cases C7;E7;G7;I7;K7;M7;O7;Q7 ( et non pas C7:Q7)

Est-ce possible sans fonction matricielle ?
Ci-joint le fichier correspondant. La formule est à rentrer dans la case C14. Si cela fonctionne, l'écart type obtenu doit être 1,51185789 car l'écart type va prendre 7 valeurs sur 8.

Version Excel2007

Je vous remercie de votre retour,

Bien cordialement
 

Pièces jointes

  • EcartTypeLoiStudent-V2.xlsx
    10.1 KB · Affichages: 9

job75

XLDnaute Barbatruc
Bonjour otarc, bienvenue sur XLD,

Si vous ne voulez pas de formule matricielle le plus simple est d'utiliser une ligne 8 auxiliaire.

Votre fichier en retour avec en C8 =SI(C7>0;C7;"") et en F14 =ECARTYPE(C8:Q8)

A+
 

Pièces jointes

  • EcartTypeLoiStudent-V2.xlsx
    11.7 KB · Affichages: 4

otarc

XLDnaute Junior
Bonjour,

Merci à vous deux. La ligne auxiliaire me dérange dans mon fichier, je vais m'orienter vers la solution de la racine. Cependant, je suis obligé de selectionner mes cases une par une, je ne peux pas utiliser C7:Q7

J'ai utilisé cette formule sur la case C13 : =RACINE(SOMME.CARRES.ECARTS(C7;E7;G7;I7;K7;M7;O7;Q7)/(NB.SI(C7;">0")+NB.SI(E7;">0")+NB.SI(G7;">0")+NB.SI(I7;">0")+NB.SI(K7;">0")+NB.SI(M7;">0")+NB.SI(O7;">0")-1+NB.SI(Q7;">0")-1))

Mais je n'arrive pas à obtenir le résultat 1.51185789
Ci-joint le fichier avec la formule ci-dessus

Merci pour votre retour,

Bien cordialement
 

Pièces jointes

  • EcartTypeLoiStudent-V4.xlsx
    10 KB · Affichages: 5

otarc

XLDnaute Junior
Dans mon fichier d'origine, je peux avoir des données entre les cases qui m'interessent (ceux dans le fichier fourni sur le forum). Je ne dois pas prendre en compte ces données.

Edit : La formule est bonne à moitié.

=RACINE(SOMME.CARRES.ECARTS(C7;E7;G7;I7;K7;M7;O7;Q7)/(NB.SI(C7;">0")+NB.SI(E7;">0")+NB.SI(G7;">0")+NB.SI(I7;">0")+NB.SI(K7;">0")+NB.SI(M7;">0")+NB.SI(O7;">0")-1+NB.SI(Q7;">0")-1))

La partie du bas est correct et tient bien en compte valeur sup à 0. Par contre la partie du haut SOMME.CARRES.ECARTS(C7;E7;G7;I7;K7;M7;O7;Q7) prendre en compte le Q7 alors que Q7=0 et cela fausse le résultat
 
Dernière édition:

otarc

XLDnaute Junior
La formule que j'avais écrit un peu plus haut était bonne à moitié.

=RACINE(SOMME.CARRES.ECARTS(C7;E7;G7;I7;K7;M7;O7;Q7)/(NB.SI(C7;">0")+NB.SI(E7;">0")+NB.SI(G7;">0")+NB.SI(I7;">0")+NB.SI(K7;">0")+NB.SI(M7;">0")+NB.SI(O7;">0")-1+NB.SI(Q7;">0")-1))

La partie du bas est correct et tient bien en compte valeur sup à 0. Par contre la partie du haut SOMME.CARRES.ECARTS(C7;E7;G7;I7;K7;M7;O7;Q7) prend en compte le Q7 alors que Q7=0 et cela fausse le résultat. Si j'enlève Q7, j'ai le bon résultat.

Est-il possible d'appliquer une condition sur la fonction somme.carres.ecarts ? Actuellement, elle prend toute les valeurs en compte, 0 inclus, je voudrai que ça ne soit que les valeurs superieur à 0.
 

job75

XLDnaute Barbatruc
Une ligne auxiliaire vous perturbe, une fonction VBA vous perturbera aussi :
VB:
Function EcarTyp(r As Range)
Dim a, ub%, i&, j%, x As Variant
a = r 'matrice, plus rapide
If Not IsArray(a) Then a = r.Resize(2) 'au moins 2 éléments
ub = UBound(a, 2)
For i = 1 To UBound(a)
    For j = 1 To ub
        x = a(i, j)
        a(i, j) = ""
        If IsNumeric(CStr(x)) Then If x > 0 Then a(i, j) = x
Next j, i
EcarTyp = Application.StDev(a)
End Function
Le code doit être placé impérativement dans un module standard, fichier joint.
 

Pièces jointes

  • VBA EcarTyp(1).xlsm
    18.8 KB · Affichages: 3

job75

XLDnaute Barbatruc
Si comme sur l'exemple il faut étudier une cellule sur 2 :
VB:
Function EcarTyp(r As Range, ColStep%)
Dim a, ub%, i&, j%, x As Variant
a = r 'matrice, plus rapide
If Not IsArray(a) Then a = r.Resize(2) 'au moins 2 éléments
ub = UBound(a, 2)
For i = 1 To UBound(a)
    For j = 1 To ub
        x = a(i, j)
        a(i, j) = ""
        If (j - 1) Mod ColStep = 0 Then If IsNumeric(CStr(x)) Then If x > 0 Then a(i, j) = x
Next j, i
EcarTyp = Application.StDev(a)
End Function
L'argument ColStep donne le pas des colonnes à étudier, fichier (2).
 

Pièces jointes

  • VBA EcarTyp(2).xlsm
    19 KB · Affichages: 3

Statistiques des forums

Discussions
312 178
Messages
2 085 980
Membres
103 079
dernier inscrit
sle