oletus A1 –sarakkeesta A100 sarakkeeseen lukuja
B1-sarakkeesta B100-sarakkeeseen nimiä (teppo, teuvo, tommi ja tatu)
kuinka kirjoitan kaavan, joka laskee keskihajonnan esim. tepon lukuarvoille?
B1-sarakkeesta B100-sarakkeeseen nimiä (teppo, teuvo, tommi ja tatu)
kuinka kirjoitan kaavan, joka laskee keskihajonnan esim. tepon lukuarvoille?
Vastaukset 4
Vanhimmat
oletuksena nyt tiedot A1:B100 soluissa
soluun johon haluat tuloksen laita kaava
=OmaKeskihajonta("teuvo";"B1:B100")
ja moduuliin...
Public Function OmaKeskihajonta(Nimi As String, Hakualue As String)
Dim Alue As Range
Set Alue = Range("A1")
For Each solu In Range(Hakualue)
If solu = Nimi Then
Set Alue = Application.Union(Alue, solu.Offset(0, -1))
End If
Next
OmaKeskihajonta = Application.WorksheetFunction.StDev(Alue)
End Function
{=STDEV(IF(B1:B100="teppo";A1:A100; 0))}
paina ctrl shift enter kaavan syöttämisen jälkeen (ilman {} sulkuja)
kokeilin noita kumpaakin ja niistä tulee eri tulos samalla materiaalilla. Kumpikohan on oikeassa ?
jos tiedot A1-> eteenpäin. Omassa funktiossani en ollut ottanut huomioon, jos tiedot muualla kuin A1 alkaen(lämpö herpaannuttaa keskittymisen välillä). Alla korjattu versio
KIITOS tarkkaivaisuudestasi utelias!
Public Function OmaKeskihajonta(Nimi As String, Hakualue As String)
Dim Alue As Range
Set Alue = Range(Hakualue).Range("A1").Offset(0, -1)
For Each solu In Range(Hakualue)
If solu = Nimi Then
Set Alue = Application.Union(Alue, solu.Offset(0, -1))
End If
Next
OmaKeskihajonta = Application.WorksheetFunction.StDev(Alue)
Alue.Select
End Function