05. december 2013 - 13:38Der er
6 kommentarer og 1 løsning
Hvis dato er mindre end X og større end Y, så ...., ellers...
Udfordring:
Jeg ønsker at lægge nogle specifikke tal sammen, der står i et bestemt dato interval og hvis ikke, så andet datointerval og hvis ikke - så ingenting.
Eksempel.: Kolonne A B 01-01-2013 1,01 01-02-2013 2 01-01-2010 1,02 #VÆRDI! 01-07-2011 1 01-12-2048 1
Hvis dato< 01-03-2013 og større end 01-11-2012, så læg værdierne i kolonne B sammen, der matcher de datoer (Det giver så 3,01); Hvis det ikke er tilfældet så:
Hvis dato< 01-10-2012 og større end 01-01-2009, så læg værdierne i kolonne B sammen, der matcher de datoer (det giver så 2,02.
datoen 01-12-2048 er her uinteresssant, fordi der ikke bliver spurgt til det. #VÆRDI! bliver her ignoreret.
Const startRæk = 1 Dim antalRækker As Integer Const datoInterval = "01-11-2012,01-03-2013;01-01-2009,01-10-2012" Dim iSum(2) As Double, ræk As Integer, aktuelleDato, tabel As Variant, del As Variant Dim d1 As Date, d2 As Date Public Sub sumInterval() antalRækker = ActiveCell.SpecialCells(xlLastCell).Row iSum(0) = 0 iSum(1) = 0
tabel = Split(datoInterval, ";")
For ræk = startRæk To antalRækker aktuelleDato = Range("A" & ræk) If IsDate(aktuelleDato) = True Then For d = 0 To 1 del = Split(tabel(d), ",") d1 = del(0) d2 = del(1)
If aktuelleDato > d1 And aktuelleDato < d2 Then iSum(d) = iSum(d) + Range("B" & ræk) Exit For End If Next d End If Next ræk
Tak, Supertekst. Det var dog ikke en VBA-løsning, jeg var på jagt efter. :-) Jeg er såmænd VBA-fan, men ser det altid som en nødløsning, når basis-funktioner giver op.
Tak for input, Erik. Den tjekker jeg ud ASAP og vender tilbage.
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.