Ecart type (différentes feuilles avec Index Equiv)

sishley

XLDnaute Nouveau
Bonjour le forum

Je m'excuse de vous déranger, je bloque encore après 2 jours de recherche infructueuses (que voulez vous quand on est noob on est noob). :(

Je cherche à calculer un écart-type (même si les stasticiens verront immédiatement que la taille de l'échantillon ne me permet pas de faire quelque chose de rigoureux (les objets étudiés sont tres tres cher et donc rare)), les valeurs sont dans un autre classeur sur les feuilles de ce classseur.

Cependant, ça serait trop simple sinon :rolleyes:, les feuilles ne contiennent pas nécessairement une valeur. Je suis donc obligée de passer par Index et Match.

J'ai essayé plusieurs formules :
Celle-ci présente dans ma feuille:
"Function ecartype6B(c2 As Range) As Double
Dim t As String, w As Worksheet, s As Double, n As Long
Dim u As Variant
Dim e As Double
Dim i As Long
'Application.Volatile
t = "*" & Trim(c2) & "*"
For Each w In Workbooks("exempledonnees.xlsx").Worksheets
s = s + Application.SumIf(w.[E:E], t, w.[O:O])
n = n + Application.CountIf(w.[E:E], t)
Next
For Each w In Workbooks("exempledonnees.xlsx").Worksheets
Set u = WorksheetFunction.Index(Rw.[O:O], WorksheetFunction.Match(c2, Workbooks("exempledonnees.xlsx").w.[E:E], 0))
If Not u Is Nothing Then
e = ((u - (s / n)) ^ 2) + e
End If
Next
ecarttype6B = Sqr(e)
End Function"


J'ai aussi essayé avec (à la barbare):
"Set x = Application.WorksheetFunction.StDev.s(WorksheetFunction.Index(Rw.[O:O], WorksheetFunction.Match(c2, Workbooks("6B.xlsx").w.[E:E], 0)))"

Ou plus bizare (c'est la variance qui est codée en réalité) :
"Set x = WorksheetFunction.Index(Rw.[O:O], WorksheetFunction.Match(c2, Workbooks("6B.xlsx").w.[E:E], 0))
If MoyenneRecherche6B > 0 Then (Moyenne 6B c'est le S/N du code précedent)
For Each x In Workbooks("6B.xlsx").Worksheets
If x = True Then
e = Application.Sum((x - MoyenneRecherche6B) ^ 2)
ecartype6B = x
End If
Next
End If"

Pourriez vous me débloquer s'il vous plait ? Merci par avance
 

Pièces jointes

  • EssaiRecherche.xlsm
    25.5 KB · Affichages: 44
  • exempledonnees.xlsx
    25.5 KB · Affichages: 47
  • EssaiRecherche.xlsm
    25.5 KB · Affichages: 45
  • exempledonnees.xlsx
    25.5 KB · Affichages: 51
  • EssaiRecherche.xlsm
    25.5 KB · Affichages: 41
  • exempledonnees.xlsx
    25.5 KB · Affichages: 47

sishley

XLDnaute Nouveau
Re : Ecart type (différentes feuilles avec Index Equiv)

J'ai résolu mon probleme j'ai du modifier mon fichier cible. Voila ma nouvelle formule en cas ou quelqu'un en aurait besoin:
"Function ecartype9(c2 As Range) As Double
Dim t As String, w As Worksheet, s As Double, n As Long
Dim t2 As String
Dim u As Double
Dim ei As Double
Dim e As Double
Dim i As Long
'Application.Volatile
t = "*" & Trim(c2) & "*"
t2 = Trim(c2)
For Each w In Workbooks("exempledonnees.xlsx").Worksheets
s = s + Application.SumIf(w.[E:E], t, w.[O:O])
n = n + Application.CountIf(w.[E:E], t)
Next
ei = s / n
u = 0
For Each w In Workbooks("exempledonnees.xlsx").Worksheets
e = Application.WorksheetFunction.Index(w.[A:p], WorksheetFunction.Match(t2, w.[E:E], 0), 15)
u = u + ((ei - e) ^ (2))
Next
ecartype9 = ((u) / n) ^ (1 / 2)
End Function"
 

Statistiques des forums

Discussions
312 502
Messages
2 089 046
Membres
104 010
dernier inscrit
Freba