Avatar billede tvc Seniormester
05. marts 2005 - 23:28 Der er 8 kommentarer og
1 løsning

Function ListEPnrSum(KontoNr As Integer, KontoOmråde As Range)

Jeg har tidligere fået svar på spg. nr. 536359.

Nu sidder jeg og vil gerne have en variabel mere med, således at såvel kontonr. som afdeling skal være opfyldt.

Spg. 536359:
Jeg søger en funktion der kan foretage Lopslag efter flere værdier som opfylder en betingelse og derpå kæde disse sammen til en tekst.

Jeg har et efterposteringsark:

EP nr.      Konto    Tekst      Beløb
1          1010      Omp. oms.  100
2          2000      Omp. vk.    50
3          1010      Omp. oms.    57
4          1050      Omp. rab.    5     
5          1010      Omp. oms.    4

Ved anvendelse af sum.hvis overføre jeg summen vedr. et kontonummer til min balance og her er det så jeg ud for summen gerne vil have en opremsning af de EP nr. som indgår i summen. I ovenstående tilfælde skulle det se ud som følger.

Konto      EP nr.        Beløb
1010      1,3,5          161

KABBAK gav mig følgende svar:
***************** kode

Function ListEPnr(KontoNr As Integer, KontoOmråde As Range) As String
ListEPnr = ""
For Each c In KontoOmråde
    If c = KontoNr Then
        ListEPnr = ListEPnr & "," & KontoOmråde.Cells(c.Row, 1).Value
    End If
Next c
ListEPnr = Right(ListEPnr, Len(ListEPnr) - 1)
End Function
Function ListEPnrSum(KontoNr As Integer, KontoOmråde As Range) As String
Værdi = 0
For Each c In KontoOmråde
    If c = KontoNr Then
    Værdi = Værdi + KontoOmråde.Cells(c.Row, 4).Value
    End If
Next c
ListEPnrSum = Værdi
End Function

*********  Kode slut

I Resultat arkets B kolonne skriver du dine Kontonumre neden under hinanden.
                                       
I A2 skriver    du                           
                                       
=ListEPnr(B2;Ark1!A1:D6)

I D2 skriver du
=ListEPnrSum(B2;Ark1!A1:D6)

Ret ark1  til dit navnet på dit testark

Er der en der kan hjælpe mig med at rette den til?

Med venlig hilsen

TVC
Avatar billede kabbak Professor
06. marts 2005 - 20:33 #1
Den til EP nr skulle være denne
kaldes med f.eks.=ListEPnr(A2;Ark1!$B$2:$B$7;Ark1!$A$2:$A$7)

Function ListEPnr(KontoNr As Integer, KontoNrOmråde As Range, EpOmråde As Range) As String
Dim EP As Variant, KO As Variant, Ens As Boolean, T As Integer, A As Variant
EP = EpOmråde
KO = KontoNrOmråde

For i = 1 To UBound(EP)
Ens = False
    If KO(i, 1) = KontoNr Then
        A = Split(ListEPnr, ",")
       
        For T = 0 To UBound(A)
            If Val(A(T)) = EP(i, 1) Then
              Ens = True
            End If
        Next T
       
        If Ens = False Then
            ListEPnr = ListEPnr & EP(i, 1) & ","
        End If
      End If
Next i
ListEPnr = Left(ListEPnr, Len(ListEPnr) - 1)
End Function



den til summen

kaldes med f.eks. =ListEPnrSum(Ark2!A2;Ark1!$B$2:$B$7;Ark1!$D$2:$D$7)


Function ListEPnrSum(KontoNr As Integer, KontoNrOmråde As Range, VærdiOmråde As Range)
Dim KO As Variant, VO As Variant
KO = KontoNrOmråde
VO = VærdiOmråde
For i = 1 To UBound(KO)
    If KO(i, 1) = KontoNr Then
  ListEPnrSum = ListEPnrSum + VO(i, 1)
    End If
Next i
End Function
Avatar billede tvc Seniormester
06. marts 2005 - 21:04 #2
Jeg fik desværre ikke forklaret mig godt nok tidligere.

Jeg vil gerne have at der skal være 2 betingelser opfyldt før efterposteringen medtages i summen og i EP-nr. opremsningen.

Så hvis jeg har et efterposteringsark:

EP nr.    Konto  Afdeling  Tekst      Beløb
1          1010    A          Omp. oms.  100
2          2000    A          Omp. vk.    50
3          1010    B          Omp. oms.    57
4          1050    B          Omp. rab.    5     
5          1010    A          Omp. oms.    4

At resultatet for konto 1010 på afdeling A giver:

EP nr.    Beløb
1,5        104

Er det muligt?
Avatar billede kabbak Professor
06. marts 2005 - 21:27 #3
Function ListEPnr(KontoNr As Integer, Afdeling As String, Dataområde As Range) As String
Dim EP As Variant, KO As Variant, Ens As Boolean, T As Integer, A As Variant
KO = Dataområde

For i = 1 To UBound(KO)
Ens = False
    If KO(i, 2) = KontoNr And KO(i, 3) = Afdeling Then
        A = Split(ListEPnr, ",")
       
        For T = 0 To UBound(A)
            If Val(A(T)) = KO(i, 1) Then
              Ens = True
            End If
        Next T
       
        If Ens = False Then
            ListEPnr = ListEPnr & KO(i, 1) & ","
        End If
      End If
Next i
ListEPnr = Left(ListEPnr, Len(ListEPnr) - 1)
End Function

Function ListEPnrSum(KontoNr As Integer, Afdeling As String, Dataområde As Range)
Dim KO As Variant
KO = Dataområde
For i = 1 To UBound(KO)
    If KO(i, 2) = KontoNr And KO(i, 3) = Afdeling Then
  ListEPnrSum = ListEPnrSum + KO(i, 5)
    End If
Next i
End Function


Dataområde er alle 5 kolonner og ned til enden af data
Avatar billede tvc Seniormester
06. marts 2005 - 21:47 #4
kabbak -> Undersøger denne VPA kode om både afdeling og kontonr. er opfyldt?

Resultat:

Kontonr.    Afdeling    EP-nr.      Beløb
1010        A            1,5        104
1010        B            3            57
1050        B            4            5
2000        A            2            50
Avatar billede kabbak Professor
06. marts 2005 - 21:50 #5
ja
If KO(i, 2) = KontoNr And KO(i, 3) = Afdeling

hvis dataområdet ser sådan ud

EP nr.    Konto  Afdeling  Tekst      Beløb
1          1010    A          Omp. oms.  100
2          2000    A          Omp. vk.    50
3          1010    B          Omp. oms.    57
4          1050    B          Omp. rab.    5     
5          1010    A          Omp. oms.    4
Avatar billede tvc Seniormester
06. marts 2005 - 22:36 #6
kabbak

Skal EP-nr. så ikke kaldes med en anden funktion end =ListEPnr(A2;Ark1!$B$2:$B$7;Ark1!$A$2:$A$7)?

og det samme for summen.

Jeg kan ikke få den til at opdele på afdeling.

TVC
Avatar billede kabbak Professor
06. marts 2005 - 22:44 #7
=ListEPnr(B2;C2;$A$2:$E$6)

B2 = KontoNr
C2 = Afdeling
A$2:$E$6 = Dataområde
Avatar billede tvc Seniormester
08. marts 2005 - 20:34 #8
Du er bare god kabbak!!

Tak for hjælpen - sender du lige et svar så jeg kan give dig point?

Med venlig hilsen

TVC
Avatar billede kabbak Professor
08. marts 2005 - 20:53 #9
et svar ;-))
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