28. februar 2002 - 23:11Der er
13 kommentarer og 2 løsninger
Beregning af korrelationskoefficenter i VBA
Hvordan beregnes korrelationskoefficenter i VBA?
I Excel kan man kalde funktionen via macroen (ATPVBAEN.XLA) under Funktioner... Dataanalyse... Korrelation, men jeg kan ikke hitte ud af at skrive en kode der foretager beregningen automatisk! - er der en "HAJ" der kan hjælpe?
Jeg har prøvet med:
Application.Run "ATPVBAEN.XLA!MKorrel, ActiveSheet, osv. men det virke øjensynligt ikke
For at din formel skal virke (hvis du har optaget den med makrooptageren) skal du også have vinget det tilføjelelsesprogram (add-inn) af der hedder Analysis Toolpak - VBA. Så virker din makro.
Hi guys tak for promt action, men jeg har den ekstra udfordring, at antallet af områder kan variere (Omr1, Omr2....Omrx) og "data-dybden" ligeledes kan variere (A2:A?,B2:B? - "?" vil naturligvis være samme værdi for de resp. Omr). Det var derfor jeg forsøgte at anvende den indbyggede funktion, da det her opereres med et samlet input-range. Jeg havde håbet på at det kunne løses ved at kombinere funktionen med et variabelt dump.Currentregion.Select! ?
Så behøver du ikke VBA for at løse problemet! Du kan godt definere og navngive dynamiske områder i Excel v.h.a. OFFSET-formlen. På dansk hedder den vist FORSKYDNING.
Hov, nu skriver du godt nok at antallet af områder også kan variere. Beregning af korrelationskoefficienter bygger kun på 2 datasæt, og det er Excels funktioner også kun beregnet til.
Jeg forsøger at bruge VBA for at gøre processen automatisk, så brugerene ikke skal "fumle rundt", men det kan da godt være at det ikke kan lade sig gøre?
Jojo, det kan sagtens lade sig gøre at bruge VBA, men brugeren skal jo alligevel altid lægge datasættene ind, så jeg jeg kan ikke rigtig se, hvad du vil opnå ved at bruge VBA frem for Excels udmærkede KORRELATION's-funktion.
Ja naturligvis - korr.koeff. er jo i sin natur todimentionel, fordelen er bare at funktionen beregner og opstiller de indbyrdes KK'er for alle datasættene
a b c d a 1 b 0,1 1 c 0,9 0,2 1 d -0,9 -0,2 -0,3 1
Om det overhovedet kan lade sig gøre pr. automatik at lægge data ind i dialogboksen "Dataanalyse" uden at vise dialogboksen, skal jeg ikke kunne sige, men det ligger ihvertfald uden for min formåen.
Men du kunne lave det sådan, at brugeren skal vælge hvilke 2 kolonner/datasæt han/hun ønsker analyseret, hvorefter Excel selv tjekker "dybden" og afleverer k.f.
Eller lidt kortere, men stadig dynamisk. Sub Macro4() Range("A1").Select Application.Run "ATPVBAEN.XLA!Mcorrel", Selection.CurrentRegion, "" _ , "C", True End Sub
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.