20. oktober 2002 - 18:00Der er
67 kommentarer og 5 løsninger
Overfører data
Jeg vil i et regneark fra den ene fane til den anden overfører data:
Fanen hvor data(værdien) skal overføres til har 30 felter (datofelter)
Fanen hvor data er, er igen opdelt i datoer, men det er ikke altid at datanen er skrevet i den rigtige rækkefølge og det er heller ikke sikkert at datat er på de samme datoer hver gang.
Dvs. at jeg skal bruge en formel i fanen (hvor data skal overføres til. der gør noget alla Hvis A1 til A30 indeholder datoen 01.09.02 så skla jeg bruge værdien i D1 i det her felt.
Her banker jeg det ud i pap.... Fane: kørselsregnskab
02.09.02 Fra x til Y km. 456 06.09.02 fra å til u km. 334 06.09.02 fra r til u km. 23 09.09.02 fra o til æ km. 56 17.09.02 gra o til p km. 567 Osv.....
Jamen når du bruger den formel så henter feltet med formlen i automatisk det der er i det felt du beder om. Så hvis du ændrer i kørselsregnskab vil excel automatisk opdatere feltet i Resultet med det nye der blev skrevet i det felt som den henter fra.
Som det er i dag skal jeg efter jeg har udfyldt Fanen:kørselsregnskab også udfylde fanen: resultat (dvs. jeg skal manuelt overfører tallende) det vil jeg gerne have skete automatisk.
Okay... Men er det ikke rigtigt at feltet A21 i kørselsregnskab altid skal være det samme som B21 i Resultat (bare et eksempel) så de altså altid passer sammen de to?
B21 skal finde sit resultat i fanen: Kørselregnskab på følgende måde alle de felter der har datoen 21.09.02 (i A6;A37) så skal den ligge tallende sammen (hvis der er flere)(der kan være op til 2) tallende fstår i D6;37)
Kender altså ikke en funktion eller formular der kan dette... Men jeg kan prøve at lave en lille makro (et lille program der virker med excel) imorgen som muligvis kan gøre det.
Funktionen du skal bruge til dette, hedder SUM.HVIS(). Funktionen summerer en talrække hvis en betingelse er opfyldt. På Resultat-arket ud for "01.09.02" skriver du: =SUM.HVIS(Kørselsregnskab!$A$1:$A$100;"=01.09.02";Kørselsregnskab!$G$1:$G$100) hvor $A$1:$A$100 referer til området med datoerne, og $G$1:$G$100 refererer til cellerne med de km, der skal summeres.
Private Sub Worksheet_Activate() Dim Sum(31) As Integer, RDag As String C = 1 Do RDag = Format(Worksheets("Kørselsregnskab").Cells(C, 1), "dd") Sum(Val(RDag)) = Sum(Val(RDag)) + Worksheets("Kørselsregnskab").Cells(C, 4) If Sum(Val(RDag)) > 0 Then Worksheets("Resultat").Cells(Val(RDag), 2) = Sum(Val(RDag)) End If C = C + 1 Loop Until Worksheets("Kørselsregnskab").Cells(C, 1) = "" End Sub
her finder den dine km i kolonne D, altså her :("Kørselsregnskab").Cells(C, 4) og gemmer summen her:("Resultat").Cells(Val(RDag), 2) = kolonne B så der er her du skal rette, hvis du vil have dem andre steder.
Synes godt om
Slettet bruger
20. oktober 2002 - 22:35#37
Du kan indsætte denne array formel i resultat fanen ud for dagen og kopiere ned:
Den forudsætter at 1. Dine data står i fanebladet 'kørselsregnskab' i området A1:A100 2. Kilometertallet står i fanebladet 'kørselsregnskab' i området C1:C100 3. Feltet med dagen står i fanebladet 'resultat' i området A1:A31
Husk når du indsætter formelen skal du trykke CTRL + SHIFT + ENTER istedet for bare ENTER.
Hvis du har over flere måneder, kan du lave overskrifter i Resultat arket således. Dag Jan Feb Mar Apr Maj Jun Jul Aug 1 100 2 456 3 4 5 6 679
med dette: Private Sub Worksheet_Activate() Dim Sum(31) As Integer, RDag As String, Måned As String C = 1 Do RDag = Format(Worksheets("Kørselsregnskab").Cells(C, 1), "dd") Måned = Format(Worksheets("Kørselsregnskab").Cells(C, 1), "mm") Sum(Val(RDag)) = Sum(Val(RDag)) + Worksheets("Kørselsregnskab").Cells(C, 4) If Sum(Val(RDag)) > 0 Then Worksheets("Resultat").Cells(Val(RDag) + 1, 1 + Val(Måned)) = Sum(Val(RDag)) End If C = C + 1 Loop Until Worksheets("Kørselsregnskab").Cells(C, 1) = "" End Sub
Jeg vil stadigvæk vælge VBA, jeg synes bedst om måden at gøre det på og den opdater altid uanset antal poster, jeg har lige rettet lidt siden sidst, jeg fik ikke nulstillet variablen.
Private Sub Worksheet_Activate() Dim Sum(31) As Integer, RDag As String, Måned As String, Fdag As String C = 1 Do RDag = Format(Worksheets("Kørselsregnskab").Cells(C, 1), "dd") Måned = Format(Worksheets("Kørselsregnskab").Cells(C, 1), "mm") If C > 1 Then If Worksheets("Kørselsregnskab").Cells(C, 1) <> Worksheets("Kørselsregnskab").Cells(C - 1, 1) Then Fdag = Format(Worksheets("Kørselsregnskab").Cells(C - 1, 1), "dd") Sum(Val(Fdag)) = 0 End If End If Sum(Val(RDag)) = Sum(Val(RDag)) + Worksheets("Kørselsregnskab").Cells(C, 4) If Sum(Val(RDag)) > 0 Then Worksheets("Resultat").Cells(Val(RDag) + 1, 1 + Val(Måned)) = Sum(Val(RDag)) Else Worksheets("Resultat").Cells(Val(RDag) + 1, 1 + Val(Måned)) = "" End If C = C + 1 Loop Until Worksheets("Kørselsregnskab").Cells(C, 1) = "" End Sub mvh kabbak
hvis du ikke har VBA på menulinien, så højreklik på et tomt sted på menulinien og vælg Visual basic , klik på rediger Visual basic. Derinde vælger du mappen resultat og sætter det ind der. Luk Visual basic ved at trykke på øverste X . så skulle det virke så at arket resultat opdateres hvergang du aktiverer det.
Ret følgende: C = 1 til C = 6 If C > 1 Then til If C > 6 Then Sum(Val(RDag)) = Sum(Val(RDag)) + Worksheets("Kørselsregnskab").Cells(C, 4) til Sum(Val(RDag)) = Sum(Val(RDag)) + Worksheets("Kørselsregnskab").Cells(C, 6)
If Sum(Val(RDag)) > 0 Then Worksheets("Resultat").Cells(Val(RDag) + 1, 1 + Val(Måned)) = Sum(Val(RDag)) Else Worksheets("Resultat").Cells(Val(RDag) + 1, 1 + Val(Måned)) = "" End If til If Sum(Val(RDag)) > 0 Then Worksheets("Resultat").Cells(Val(RDag) + 6, 4 + Val(Måned)) = Sum(Val(RDag)) Else Worksheets("Resultat").Cells(Val(RDag) + 6, 4 + Val(Måned)) = "" End If
asker > Skal det ikke skrives hvor resultatet skal skrives ?? det finder den ud af ved hjælp af dag og måned. Worksheets("Resultat").Cells(Val(RDag) + 6, 3 + Val(Måned)) = Sum(Val(RDag)) Forklaring: RDag = dag som styrer rækken + 6 fordi du har data i D7 og nedefter Måned = styrer kolonnen +3 for kolonne D
Jeg sætter yderliger 60 point af til en funktion i fanen resultat der regner privatkørsel ud (stadig med udgangspunkt i at indtastningerne i kørselregnskab er forskellige hver gang.
Herer et ekssempel på indtastningen i fanen kørselregnskab:
Det er en evighedsmodel, hvor du under resultat-arket kan vælge på en rulleliste hvilken måned og hvilket år du ønsker at se, og så får du dit resultat opdelt på både erhvervs- og privat kørsel.
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.