[:nb]
Avansert summerhvis
Jeg hadde en utfordring som flere kan behøve hjelp med. En summerhvis fungerte ikke bra nok til mitt behov så jeg tenkte jeg kunne programmere en liten funksjon for å hjelpe meg. Jeg kunne sikkert gjort dette enda smartere og brukt mer tid, men håper andre ser nytten og kan bruke det til noe.
Jeg hadde en tabell med mine ordre:
OrdreID | Kunde | Ordredatoen | Moms | Forfalsdato | Totalt | Med moms | Moms kr |
201810000 | Kunde 1 | 02.01.2018 | 0 % | 06.02.2018 | kr 1 000,00 | kr 1 000,00 | kr – |
201810001 | Kunde 2 | 15.02.2018 | 25 % | 01.03.2018 | kr 2 000,00 | kr 2 500,00 | kr 500,00 |
201810002 | Kunde 3 | 15.02.2018 | 0 % | 01.03.2018 | kr 3 000,00 | kr 3 000,00 | kr – |
201810003 | Kunde 4 | 15.02.2018 | 25 % | 01.03.2018 | kr 4 000,00 | kr 5 000,00 | kr 1 000,00 |
201810004 | Kunde 5 | 15.02.2018 | 0 % | 19.03.2018 | kr 5 000,00 | kr 5 000,00 | kr – |
201810005 | Kunde 6 | 19.03.2018 | 25 % | 02.04.2018 | kr 6 000,00 | kr 7 500,00 | kr 1 500,00 |
201810006 | Kunde 7 | 20.03.2018 | 25 % | 03.04.2018 | kr 7 000,00 | kr 8 750,00 | kr 1 750,00 |
201810007 | Kunde 8 | 20.03.2018 | 25 % | 03.04.2018 | kr 8 000,00 | kr 10 000,00 | kr 2 000,00 |
201810008 | Kunde 9 | 23.03.2018 | 0 % | 06.04.2018 | kr 9 000,00 | kr 9 000,00 | kr – |
Ved å sette parametre i funksjonen som Range så kan jeg gripe hele kolonnen uansett hvor lang den blir.
I Excel har jeg så et oppsett slik:
Inntekt med moms jan/feb | kr 6 000,00 | 01.01.2018 |
Inntekt uten moms jan/feb | kr 9 000,00 | 28.02.2018 |
Inntekt med moms mar/apr | kr 21 000,00 | 01.03.2018 |
Inntekt uten moms mar/apr | kr 9 000,00 | 30.04.2018 |
Inntekt med moms mai/juni | kr – | 01.05.2018 |
Inntekt uten moms mai/juni | kr – | 30.06.2018 |
Inntekt med moms juli/aug | kr – | 01.07.2018 |
Inntekt uten moms juli/aug | kr – | 31.08.2018 |
Inntekt med moms sep/okt | kr – | 01.09.2018 |
Inntekt uten moms sep/okt | kr – | 31.10.2018 |
Inntekt med moms nov/des | kr – | 01.11.2018 |
Inntekt uten moms nov/des | kr – | 31.12.2018 |
Selve Excel-funksjonen
I Excel der jeg skal beregne summen skriver jeg:=SumOmsMedMoms(Arbeidsbok[[#Alle];[Ordredatoen]];Arbeidsbok[[#Alle];[Totalt]];M11;M12;Arbeidsbok[[#Alle];[MvaProsent]])
Der M11 og M12 er hendholdsvis første dato og siste dato – eksempelvis 1.1.2018-28.2.2018. Arbeidsbok[[#Alle];[Ordredatoen]] er alle datoene mine. Arbeidsbok[[#Alle];[Totalt]] er alle tallene mine. Arbeidsbok[[#Alle];[MvaProsent]] er alle momsprosentene mine.
Funksjonene som beregner dette er da:
Funksjonene:
Denne summerer de med moms.
Public Function SumOmsMedMoms(vDato As Range, vSum As Range, vFra As Range, vTil As Range, vMoms As Range)
Dim i
Dim sum
For i = 2 To vDato.Count + 1
If vDato(i, 1) >= vFra.Value And vDato(i, 1) <= vTil.Value And vMoms(i, 1) > 0 Then
sum = sum + vSum(i, 1)
End If
Next i
SumOmsMedMoms = sum
End Function
Denne summerer de uten moms.
Public Function SumOmsUtenMoms(vDato As Range, vSum As Range, vFra As Range, vTil As Range, vMoms As Range)
Dim i
Dim sum
For i = 2 To vDato.Count + 1
If vDato(i, 1) >= vFra.Value And vDato(i, 1) <= vTil.Value And vMoms(i, 1) = 0 Then
sum = sum + vSum(i, 1)
End If
Next i
SumOmsUtenMoms = sum
End Function[:]