26. september 2007 - 11:18Der er
8 kommentarer og 1 løsning
Vægtet gennemsnit med forbehold/frasortering
Jeg skal beregne et vægtet gennemsnit af nogle svarprocenter. Dog er det ikke alle brugere der har svaret på alle spørgsmålene, derfor skal deres besvarelse selvfølgelig ikke indgå i gennemsnittet. Data opstillingen ser således ud:
Jeg forventer at jeg skal bruge følgende formel: =SUMPRODUKT((C3:L3)*(C1:L1))/SUM(C1:L1), uden dog at vide hvori jeg skal indsætte mit kriterie. Hvordan undgår jeg at de tomme besvarelser ( - ) indgår i beregningen for tæller:SUMPRODUKT((C3:L3)*(C1:L1)) eller nævner: SUM(C1:L1). Jeg havde tænkt mig at indsætte et kriterie som ser således ud: sumprodukt(C3:L3">=0")*(C1:L1))/SUM(C1:L1), men det virker ikke.
Jeg ville mene den første formel var lige den du skal bruge. Om formlen støder på et 0, ganger den jo på antal besvarelser, som så bliver 0 - divideret med det totale antal besvarelser. Det må det være rigtig nok for et vægtet gennemsnit. Du kan ikke putte kriterier ind i en sumproduct, andet end hvis du vil have den til at være et sand / falsk udtryk. Så skal du bruge den i kombination med noget andet. Ved ikke om jeg rammer, ellers må du lige uddybe, det med at noget skal udelades. Hilsen Luffe
I de tilfælde hvor svarprocenten er 0% er der ikke noget problem og det vægtede gennemsnit bliver udregnet korrekt. Problemet er, at ikke alle brugere har kunnet svare på de samme spørgsmål, og derved skal antallet af besvarelser for det spørgsmål, der ikke er blevet stillet ikke indgå i nævneren (sum(C1:L1)). Problemet ligger altså i, at i mit vægtede gennemsnit skal vægtningen (dvs. antal besvarelser)ikke indgå for det spørgsmål der ikke har været stillet..
Jeg tror jeg forstår. Du kan udnytte den sand / falsk jeg omtalte på følgende måde: =SUMPRODUCT((C$1:L$1)*(C4:L4))/SUMPRODUCT((C4:L4>0)*(C$1:L$1)) Jeg valgte row 4, fordi der var en " - " værdi i for test.
Jeg tror næsten det er rigtigt. Desværre virker det ikke. Hvis jeg har forstået excels beregning korrekt, så vil udregningen for nævneren: SUMPRODUCT((C4:L4>0)*(C$1:L$1)), betyde at alle værdier der er over nul blive multipliceret med den tilsvarende værdi i C1:L1. Desværre skal værdien i C4:L4 ikke multipliceres ind i C1:L1. Derimod skal C1:L1 "sorteres" ud fra C4:L4. /Jan
Umiddelbart kunne det godt se sådan ud, men xl ser det på en lidt anden måde: C4:L4>0 afgiver enten et 1-tal hvis den er sand og et 0 hvis den er falsk; og det er dette 1 eller 0 der ganges på C1:L1, ikke værdien i cellerne C4:L4. Derfor vil du få en sum af de værdier i C1:L1, hvor den tilsvarende værdi i C4:L4 er større en 0. Prøv med et lille eksempel først. Hvis den ikke virker kan det være fordi din "-" ikke er et 0 måske? Hvis det er tilfældet må du måle på den "værdi" istedet: SUMPRODUCT((C4:L4<>"-")*(C$1:L$1)) / Luffe
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.