[Excel] standaarddeviatie van specifieke waarden

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Stefke
  • Registratie: December 2000
  • Laatst online: 19:10
Ik wil voor een groot aantal waarden een standaarddeviatie weten, maar ik moet daarvoor specifieke waarden gebruiken, zodat ik per "categorie" een SDEV krijg, in onderstaand voorbeeld zou het dan gaan om de standaarddeviatie van alle waarden van X en de standaarddeviatie die van Y

A B
X 1
Y 3
X 2
X 8
Y 5
Y 3
X 7

Voor bijv. het gemiddelde is het gemakkelijk, met de GEM.ALS functie kun je middels criteria opgeven dat je het gemiddelde wil berekenen van alle waarden waarvoor kolom A de waarde X is . De functie hiervoor is =GEMIDDELDE.ALS(A1;A7;"X";B1;B7)

Voor de functie STDEV bestaat dit echter niet.

Is er een relatief eenvoudige manier waarop ik (bij voorkeur in één cel) op de hele dataset (dus zonder eerst bijv. te sorteren of de overbodige waarden eruit te filteren)

Ik zit er aan te denken om zelf een VBA-functie te schrijven maar wellicht kan het eenvoudiger.

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Probeer eens
{=STDEV(ALS(A1:A7="X";B1:B7;""))}

Gebruik ctrl-shift-enter om die {} te krijgen.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Stefke
  • Registratie: December 2000
  • Laatst online: 19:10
Wat doet die {} dan? Dat ken ik helemaal niet.

Ik had deze oplossing zitten proberen maar ik krijg #waarde en ik krijg hem niet aan de praat

edit: aha...ik vond zojuist dit filmpje waarin het werd uitgelegd (ook die brackets)!
YouTube: Excel Magic Trick 852: Conditional Standard Deviation: STDEV.S & IF or DSTDEV functions?

Bedankt! En weer wat geleerd :)

[ Voor 53% gewijzigd door Stefke op 18-11-2013 21:38 ]


Acties:
  • 0 Henk 'm!

  • Bastien
  • Registratie: Augustus 2001
  • Niet online
{} geeft een array aan.

Afaik moet je in je formulebalk =STDEV(ALS(A1:A7="X";B1:B7;"")) zetten en dan ctrl-shift-enter doen. Dan komen {} eromheen te staan.

Bij mij werkt het zo in ieder geval.

Zolang er mensen zijn zal de wereld nooit duurzaam worden.
Zijn er wel genoeg kliffen op de wereld waar 8 miljard mensen zich als lemmingen vanaf kunnen storten?


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
#waarde komt waarschijnlijk omdat je enter of iets anders gebruikt ipv ctrl-shift-enter. Ik weet eigenlijk niet of er een Nederlandse term voor is, maar in het Engels is het array formula. Tutorial: http://office.microsoft.c...in-excel-HA001087290.aspx

Ah, matrixformule is de Nederlandse term: http://office.microsoft.c...rbeelden-HA010228458.aspx

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Stefke
  • Registratie: December 2000
  • Laatst online: 19:10
Tnx, zal deze info doornemen, maar a.h.v. het filmpje werd me duidelijk wat je bedoelde en nu werkt ie wel

Acties:
  • 0 Henk 'm!

  • Stefke
  • Registratie: December 2000
  • Laatst online: 19:10
Toch nog even een extraatje: ik probeer nu de "ALS" van twee factoren af te laten hangen, dus:

=STDEV(ALS(EN(A1:A7="X";1+1=2);B1:B7;""))

met het plaatsen van de brackets krijg ik nog #waarde. Ik probeer even te begrijpen waarom dit mis gaat.

edit: gefixed door de EN in een andere cel te zetten en dan
=STDEV(ALS(A30;B1:B7;""))

A30 is dan de cel waar de EN() in staat

Daar klopt natuurlijk niks van...

[ Voor 53% gewijzigd door Stefke op 18-11-2013 22:32 ]


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
EN wordt dan direct geëvalueerd en levert geen array op, dus die functie kun je niet daarvoor gebruiken. Wel kun je 2 keer ALS gebruiken, of *, als in
{=STDEV(ALS((A1:A7="X")*(1+1=2);B1:B7;""))}
of
{=STDEV(ALS(A1:A7="X";ALS(1+1=2;B1:B7;"");""))}

* werkt omdat boolean true 1 is in Excel. Op dezelfde manier werkt + als een OF (omdat 2 ook als WAAR gezien wordt door ALS).

En een hulpkolom kan natuurlijk ook. :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Stefke
  • Registratie: December 2000
  • Laatst online: 19:10
pedorus schreef op dinsdag 19 november 2013 @ 00:13:
EN wordt dan direct geëvalueerd en levert geen array op, dus die functie kun je niet daarvoor gebruiken. Wel kun je 2 keer ALS gebruiken, of *, als in
{=STDEV(ALS((A1:A7="X")*(1+1=2);B1:B7;""))}
of
{=STDEV(ALS(A1:A7="X";ALS(1+1=2;B1:B7;"");""))}

* werkt omdat boolean true 1 is in Excel. Op dezelfde manier werkt + als een OF (omdat 2 ook als WAAR gezien wordt door ALS).

En een hulpkolom kan natuurlijk ook. :p
Ja, ik was inderdaad ook tot de conclusie gekomen dat het niet werkte om die reden. Maar de oplossing verzinnen is dan weer iets anders :)

Dit zijn van die truucjes die je moet weten. tnx
Pagina: 1