Avatar billede KenneyD71 Nybegynder
05. december 2013 - 13:38 Der 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.
05. december 2013 - 13:47 #1
Hvilket regnearksprogram?
Avatar billede supertekst Ekspert
05. december 2013 - 15:02 #2
Kan det være en makro?
Avatar billede KenneyD71 Nybegynder
05. december 2013 - 15:14 #3
ups. Excel.
Avatar billede supertekst Ekspert
05. december 2013 - 15:22 #4
Hvis Ja - kunne den se sådan ud:

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

    MsgBox iSum(0) & "  " & iSum(1)
End Sub
05. december 2013 - 15:27 #5
=SUM.HVISER(B1:B5;A1:A5;"<01-03-2013";A1:A5;">01-11-2012")
=SUM.HVISER(B1:B5;A1:A5;"<01-10-2012";A1:A5;">01-01-2009")
Avatar billede KenneyD71 Nybegynder
05. december 2013 - 17:34 #6
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.
Avatar billede supertekst Ekspert
05. december 2013 - 18:11 #7
Selv tak
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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