Avatar billede HawkesDK Praktikant
18. august 2019 - 14:58 Der er 9 kommentarer

SUM.HVISER fra flere forskellige ark

Hej,

Jeg har en excel fil med 5 ark til pipeline-styring, hvor hver sælger har et pipeline ark og der så hentes data til det femte ark (oversigt/forecast).

De fire ark er identisk opbygget med samme kolonnestruktur osv.

Forecast-arket henter så data fra de øvrige ark, baseret på SUM.HVISER-funktioner.

Min udfordring er, at nu vil jeg gerne have hentet nogle data på tværs af de fire ark - f.eks. alle poster til det samme land på tværs af alle sælgere, eller alle poster for et givet produkt på tværs af alle sælgere.

Nogen der kan forklare mig hvordan jeg kan fikse det?
Avatar billede xl-Enthusiast Ekspert
18. august 2019 - 16:34 #1
Kan du ikke uploade en anonymiseret fil til dropbox og heri (manuelt) vise eksempler på ønskede resultater?
Avatar billede HawkesDK Praktikant
18. august 2019 - 17:43 #2
Jo selvfølgelig.

Link:
https://www.dropbox.com/s/onj003jivndveae/EMEA%20Forecast%20%28Draft%29.xlsx?dl=0

Arket 2019 samler data fra de 4 BM ark.

Den første del - hvor der laves kriteriebaseret summering på BM niveau var nogenlunde ligetil.
Her summeres der på BM niveau efter 2-3 forskellige kriterier.

Udfordringen er når jeg skal have lavet SUM.HVISER sorteringer efter lande, distributører og sales stage (de nederste tre tabeller).

Her vil jeg jo gerne have at SUM.HVISER-funktionerne samler data på tværs af de 4 BM-ark, fremfor at skulle lave en "SUM.HVISER(.......) + SUM.HVISER(.......)+ ... osv. osv. - specielt fordi der formentlig kommer flere medarbejdere på sigt.

Jeg kunne google mig til at man kan lave noget med SUMPRODUCT og INDIRECT, men det virkede en anelse ouoverskueligt i de eksempler jeg kunne finde.

Alternativet var ideen at lave et "kalkulationsark", hvor jeg opstiller alle disse mellemregninger (summerer på de tre kriterier på tværs af BM'ere) - men det må kunne gøres enklere.
Avatar billede Jan Hansen Ekspert
18. august 2019 - 18:05 #3
prøv at lave koden så den virker på et ark (BM1)

Når du har det erstat så
'BM1'!
med
'BM1:BM4'!

Tror det vil virke
Ellers Upload med fungerende kode til et ark

Jan
Avatar billede HawkesDK Praktikant
18. august 2019 - 19:24 #4
Formlen for summering betinget af land, lagerforhold og status er nu lagt i for "Denmark" - burde give en idé om hvad jeg prøver på.

Forsøgte med en ark-"range" 'BM1:BM4' - det virker desværre ikke
Avatar billede Jan Hansen Ekspert
18. august 2019 - 21:01 #5
Tror man skal over i en brugerdefineret function (VBA) for at lave en enklere formel!!

Jan
Avatar billede Mads32 Ekspert
18. august 2019 - 22:47 #6
Hej

Kan du ikke lave en løsning, hvor du oprette et nyt ark til analyse,

Opret arket så det ligner dine øvrige ark, og kopier data fra BM ark til dette ark.

Du kan så ved hjælp af filtrering udtrække alle de analyser du har lyst til. Oprettelsen af arket kan du selvfølgelig lave som en makro.

En anden mulighed er måske at oprette en pivottabel med data fra dine BM ark.
Avatar billede Jan Hansen Ekspert
19. august 2019 - 01:50 #7

Option Explicit

Function Sum_Ark_Hviser(Ark As Variant, SumOmråde As Variant, KriterieOmråde_1 As Variant, Kriterie_1 As Variant, KriterieOmråde_2 As Variant, Kriterie_2 As Variant, KriterieOmråde_3 As Variant, Kriterie_3 As Variant) As Variant
    With Application
        .Volatile
        .Calculate
    End With
   
    Dim ArrArk() As String
    ArrArk = Split(Ark, ";")
    Dim Count As Integer, Temp As Variant
    Dim SumArea As Range, Kriteria_1 As Range, Kriteria_2 As Range, Kriteria_3 As Range
    For Count = LBound(ArrArk, 1) To UBound(ArrArk, 1)
        Set SumArea = Sheets(ArrArk(Count)).Range(SumOmråde.Address)
        Set Kriteria_1 = Sheets(ArrArk(Count)).Range(KriterieOmråde_1.Address)
        Set Kriteria_2 = Sheets(ArrArk(Count)).Range(KriterieOmråde_2.Address)
        Set Kriteria_3 = Sheets(ArrArk(Count)).Range(KriterieOmråde_3.Address)
        Temp = Temp + Application.WorksheetFunction.SumIfs(SumArea, Kriteria_1, Kriterie_1, Kriteria_2, Kriterie_2, Kriteria_3, Kriterie_3)
    Next
    Sum_Ark_Hviser = Temp
End Function


=Sum_Ark_Hviser("BM1;BM2;BM3;BM4";'BM1'!$I:$I;'BM1'!$A:$A;'2019'!C$24;'BM1'!$B:$B;'2019'!$A25;'BM1'!$O:$O;1)

Jan
Avatar billede xl-Enthusiast Ekspert
19. august 2019 - 06:45 #8
Du kan prøve at se om følgende kan bruges.

https://www.dropbox.com/s/dthu914wvokxpw0/EMEA%20Forecast_2.xlsx?dl=0
Avatar billede xl-Enthusiast Ekspert
20. august 2019 - 07:06 #9
Jeg havde vist misforstået hvad der skulle ske i den første tabel, men prøv at se formlen i celle L25 i det det linkes til herunder. Er det sådan du mener?
Lidt svært at teste på de sidste to tabeller når du ikke giver nogen data.

https://www.dropbox.com/s/fkgp95ycnprbjnb/EMEA%20Forecast_3.xlsx?dl=0
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

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