• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Steekproef met meerdere waarden

Status
Niet open voor verdere reacties.

CS1989

Nieuwe gebruiker
Lid geworden
20 feb 2015
Berichten
4
Hallo luitjes,

Ik zit met een probleem en heb jullie hulp nodig.

Momenteel ben ik bezig met een kwaliteitsproject. Momenteel willen wij steekproeven uitvoeren op onze medewerkers om zo de kwaliteit te testen van het werk. Nu krijg ik maandelijkse rapportages aangeleverd waarin de naam van de medewerker staat, het klantnummer waar hij of zij aan heeft gewerkt en de naam van het proces.

Nu wil ik graag per medewerker een bepaald percentage in de steekproef meenemen en dit moet op procesniveau. Voorbeeld: Medewerker Jan heeft 100 processen afgehandeld met het type A. Van dit proces moet 10% worden gecontroleerd en in een lijst worden weergegeven.

Waarom 10%? Zo houd ik de controle naar rato eerlijk. Mocht iemand dus 10 processen hebben gedaan, dan wordt er 1 gecontroleerd. en heeft iemand er 100 gedaan, dan worden er 10 gecontroleerd.

Ik heb als bijlage een voorbeeld gedaan van een "eenvoudig" excelbestandje met korte uitleg. Jullie zouden mij ontzettend helpen met het uitpluizen! Alvast hartelijk bedankt voor jullie tijd en moeite :thumb:Bekijk bijlage HelpMijSteekproef.xlsx
 
Zie bijgaand oplossingsvoorstel.
Het is een behoorlijk complexe berekening geworden met hulpkolommen en matrixformules. Ik geef het je even met summiere toelichting:
Je kunt de steekproef husselen door de tabel te sorteren; 1e sortering "Naam" (kolom A), 2e sortering "Proces" (kolom B), 3e sortering "Select" (kolom D).
Je kunt ook de steekproefgrootte varieren.
 

Bijlagen

of met VBA
Code:
Sub M_snb()
    Randomize
    
    sn = Cells(1).CurrentRegion
    With CreateObject("scripting.dictionary")
      For j = 2 To UBound(sn)
         .Item(sn(j, 1) & "_" & sn(j, 2)) = .Item(sn(j, 1) & "_" & sn(j, 2)) & "|" & sn(j, 3)
      Next
      
      For Each it In .keys
         c00 = ""
         sp = Split(Mid(.Item(it), 2), "|")
         ReDim st(UBound(sp))
         
         For j = 0 To UBound(st)
            st(j) = Rnd
         Next
         
         For j = 0 To UBound(sp) \ 10
            c00 = c00 & "|" & sp(Application.Match(Application.Large(st, j + 1), st, 0) - 1)
         Next
         .Item(it) = it & "_" & Mid(c00, 2)
      Next
      
      Cells(20, 7).Resize(.Count) = Application.Transpose(.items)
    End With
End Sub
 
Geweldig, jullie hebben mij super geholpen! Weet niet hoe ik jullie kan bedanken :) Heeft mij een hele boel tijd en grijze haren gespaard. Thanks a lot! :thumb::thumb:
 
Hallo Timshel. Ik heb jouw formule gebruikt in het excelbestand. Echter hoe vergroot ik de range? Ik wil ongeveer 120 000 cases meenemen in dit bestand, echter houdt hij er bij 12000 mee op? Zodra ik de range groter maak dan 12000, krijg ik een blanco waarde. Weet jij waar dit aan ligt?

Formule:

=ALS.FOUT(INDEX(rekenblad!$B$2:$B$12000;KLEINSTE(ALS((rekenblad!$E$2:$E$12000)*(rekenblad!$A$2:$A$12000=A$1);RIJ(rekenblad!$E$2:$E$12000));RIJ($A2)));"")

Alvast bedankt voor je reactie! :)
 
In bijlage heb ik het bereik aangepast tot rij 120000. Dus het kan wel.
Misschien gaat het bij jou mis met de matrixformules. Die moet je ingeven met CTRL-SHIFT-ENTER. Anders weet ik het ook niet.
 

Bijlagen

Hallo Timshel,

Bedankt voor je snelle reactie. Ik zal ermee aan de slag gaan en weten zodra het mij is gelukt :) wederom hartelijk bedankt!
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan