Avatar billede tiger2003 Nybegynder
22. januar 2004 - 23:19 Der er 18 kommentarer og
1 løsning

Kan man lave en formel der ændrer sig når der kommer nye ark?

Hej

Jeg er ved at lave noget statistik over nogle forskellige ting i Excel. Har lavet en forside hvor der skal stå en masse gennemsnitstal, og derefter en masse andre ark, hvor tallene indtastets. Problemet er så bar at hvis jeg har to ark, og sætter den til at tage gennemsnittet af det, så har jeg et problem når jeg efterfølgende tilføjer et tredje ark. Mit spørgsmål lyder således på om det kan lade sig gøre at lave en formel så hver gang man sætter nye ark en, så tar den fx A14 i de respektive ark og dividerer med antal ark der er ? Hvis ikke, er det så muligt(sikkert ik =)) at lave et lille program hvor man kan indtaste nogle tal, hvorefter man hver gang tilføjer nye tal så tar den gennemsnittet af det?

Håber der er nogen der kan hjælpe.! =)

Tiger
Avatar billede Slettet bruger
23. januar 2004 - 00:05 #1
Har du prøvet med "Consolidate" funktionen ?
se
Data -> Consolidate
Avatar billede kabbak Professor
23. januar 2004 - 00:17 #2
brugerdefineret funktion

Function FindGennemsnit(ByVal CellePåAlleArk As Range) As Double
Dim Værdi As Double, Sider As Integer, AD As String
AD = CellePåAlleArk.Address
Værdi = 0
Sider = 0
For Each ws In Worksheets
If ws.Name <> "Data" Then ' hopper over hovedside
Værdi = Værdi + Sheets(ws.Name).Range(AD).Value
Sider = Sider + 1
End If
Next
FindGennemsnit = Værdi / Sider
Application.Volatile
End Function
Avatar billede kabbak Professor
23. januar 2004 - 00:26 #3
hvis den ikke skal regne 0 værdier og tomme med, så

Function FindGennemsnit(ByVal CellePåAlleArk As Range) As Double
Dim Værdi As Double, Sider As Integer, AD As String
AD = CellePåAlleArk.Address
Værdi = 0
Sider = 0
For Each ws In Worksheets
If ws.Name <> "Data" Then ' hopper over hovedside
If Sheets(ws.Name).Range(AD).Value <> 0 Then
Værdi = Værdi + Sheets(ws.Name).Range(AD).Value
Sider = Sider + 1
End If
End If
Next
FindGennemsnit = Værdi / Sider
Application.Volatile
End Function
Avatar billede kabbak Professor
23. januar 2004 - 00:37 #4
du skal nok bruge denne, de andre tjekker og andre mapper hvis du har flere åbne.

Function FindGennemsnit(ByVal CellePåAlleArk As Range) As Double
Dim Værdi As Double, Sider As Integer, AD As String
AD = CellePåAlleArk.Address
Værdi = 0
Sider = 0
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Data" Then ' hopper over hovedside
If Sheets(ws.Name).Range(AD).Value <> 0 Then
Værdi = Værdi + Sheets(ws.Name).Range(AD).Value
Sider = Sider + 1
End If
End If
Next
FindGennemsnit = Værdi / Sider
Application.Volatile
End Function
Avatar billede tiger2003 Nybegynder
23. januar 2004 - 00:37 #5
Jeg tror godt man kan gøre det med den der Consolidate funktion, men jeg ved bare ikke hvordan.. En guide til dummy's please.!!!
Avatar billede tiger2003 Nybegynder
23. januar 2004 - 00:41 #6
Det ser fint ud kabbak, men hva betyder det´?
Avatar billede bak Forsker
23. januar 2004 - 00:45 #7
En mulighed er at indsætte de nye mellem de andet og det sidste ark og så bruge formlen =MIDDEL istedet (jeg går så ud fra at beregningerne ligger i 1. ark)
Hvis jeg feks har 10 ark, hvor det 1. er til udregning vil min formel for gennemsnittet af alle A14 celler være
=MIDDEL(Ark2:Ark10!A14)
Dette dækker så alle ark der fysisk ligger mellem Ark2 og Ark10.
Hvis du så indsætter nye ark, placeres de bare mellem Ark2 og Ark10
Avatar billede kabbak Professor
23. januar 2004 - 00:48 #8
Du skal sætte det ind i et modul, i dit ark.
Tryk ALT+F11
vælg indsæt modul

kopier Nedenstående derind.

Function FindGennemsnit(ByVal CellePåAlleArk As Range) As Double
Dim Værdi As Double, Sider As Integer, AD As String
AD = CellePåAlleArk.Address
Værdi = 0
Sider = 0
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Data" Then ' hopper over hovedside(rettes til din hovedside)
If Sheets(ws.Name).Range(AD).Value <> 0 Then ' hopper over 0 og tomme værdier
Værdi = Værdi + Sheets(ws.Name).Range(AD).Value
Sider = Sider + 1
End If
End If
Next
FindGennemsnit = Værdi / Sider
Application.Volatile
End Function


Husk at rette navnet "Data" til din hovedside
luk på øverste X i højre side

Klik ind i den celle, på din hovedside hvor du vil have resultatat.

vælg funktioner > brugerdefinerede > FindGennemsnit

klik ind på den celle i hovedarket, som skal findes i de andre ark.

så skulle det virke.
Avatar billede tiger2003 Nybegynder
23. januar 2004 - 00:54 #9
Jeg kan ikke under funktioner finde den der hedder Brugerdefinerede
Avatar billede kabbak Professor
23. januar 2004 - 00:55 #10
Min fejl.

Indsæt> funktion
Avatar billede bak Forsker
23. januar 2004 - 00:55 #11
Kabbak -> Hvis jeg må komme med et forbedringsforslag til funktionen :-)

ret
If ws.Name <> "Data" Then ' hopper over hovedside(rettes til din hovedside)

til
If ws = Application.Caller.Parent

På denne måde behøver du ikke vide hvad det ark funktionen kaldes fra hedder.
Avatar billede bak Forsker
23. januar 2004 - 00:56 #12
selvfølgelig....
If ws <> Application.Caller.Parent
Avatar billede kabbak Professor
23. januar 2004 - 00:57 #13
Application.Caller.Parent

Ny for mig tjekker lige hjælp
Avatar billede bak Forsker
23. januar 2004 - 01:00 #14
Application.Caller    Cellen med formelen
Application.Caller.Parent  Arket med cellen med formlen
Application.Caller.Parent.Parent  Projektmappen med arket med cellen med formlen
Avatar billede tiger2003 Nybegynder
23. januar 2004 - 01:02 #15
Kan slet ik få det til at virke. Har gjort som i har skrevet.. Er det muligt jeg kan sende den til en af jeres mails og så kan i gøre det?
Avatar billede kabbak Professor
23. januar 2004 - 01:03 #16
ja send bare.

Sendtil#kabbak@tiscali.dk

fjern Sendtil#
Avatar billede tiger2003 Nybegynder
23. januar 2004 - 01:08 #17
Tak for hjælpen kabbak.. Er du på msn eller icq? Så er det lidt lettere for os at snakke...
Avatar billede kabbak Professor
23. januar 2004 - 01:35 #18
Arket er sendt retur
Avatar billede kabbak Professor
23. januar 2004 - 01:40 #19
tak for point
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester