Telefonszámunk: 1-472-0679

[Resolved] 3D hivatkozás dinamikusan több munkalapon át 1-n-ig

Kezdőlap Fórumok Excel témák [Resolved] 3D hivatkozás dinamikusan több munkalapon át 1-n-ig

Topic Resolution: Resolved
8 bejegyzés megtekintése - 1-8 / 8
  • Szerző
    Bejegyzés
  • #8784
    Laszlosala
    Felhasználó

      Kedves Imre!
      Arra van megoldásod képlettel, hogy
      =MAX(1!A:A)+MAX(2!A:A)+MAX(3!A:A)….

      2-es lapon csak max(1!A:A), utána mindig hozzáadja az előző munkalap MAX(A:A) értéket. 1-től n-1-ig

      #8785
      horvimi
      Adminisztrátor

        Szia!

        Erre nincsen képletes megoldás.
        Makróval, felhasználói függvényt (UDF) lehet írni rá.
        Csináltan egy gördülő összegző függvényt, amit egy kicsit módosítva a saját problémádat is megoldhatja.
        Cserébe viszont makrós lesz a fájl.

        Szóval a szóban forgó fájlba a makró szerkesztővel beszúrsz egy új modult, majd abba bemásolod ezt:

        Function RunningTotalSheets(source As Range) As Double
        Dim sourceAddress As String
        Dim i As Integer
        Dim result As Double
        
            sourceAddress = source.Address
            result = 0
            For i = 1 To ActiveSheet.Index
                result = result + WorksheetFunction.Sum(Worksheets(i).Range(sourceAddress))
                
            Next i
            RunningTotalSheets = result
        End Function

        Azt teszi, hogy a paraméterben kapott tartományt kummulatíve összesíti az elsőtől az aktuális lapig.

        Próba:
        1. Átmész Excelbe, megcsinálod an N darab lapot az „A” oszlopban az adatokkal.
        2. Az első lapon egy üres cellába elkezded írni, hogy „=Runni…”, látod majd, hogy felajánlja az UDF nevét, TAB-al elfogadod, és az egy db paraméterbe bekattintod az egész „A” oszlopot
        3. Átmész a 2. lapra és megcsinálod ugyanezt, vagy átmásolod az előző lapról a függvényes cellát. Itt már az első két lap összesenje jön az „A” oszlopokból, stb…

        Ha az eredeti problémára szeretnél fókuszálni, és az elsőtől az aktuális-1-ig szeretnél Max értékeket összeadni, akkor:
        1. A For ciklust Activesheet.Index-1-ig kell futtatni
        2. Az összegző sorban a Sum-ot Max-ra változtatod

        Vigyázz, hogy először csak a 2. lapon adható ki, nem tettem bele hibakezelést.

        Remélem sikerül,

        Imre

        #8786
        delila
        Felhasználó

          Jó reggelt!

          Egy másik megoldás lehet, hogy minden lapon egy üres cellába (nálam D1) beírom az A oszlop maximumát. Az összegző lapon a képlet
          =SZUM(Munka1:Munka3!D1)
          A Munka1:Munka3 helyén a képletben az első, és az utolsó lapok neve szerepeljen.

          Üdv,
          delila

          #8787
          horvimi
          Adminisztrátor

            Szia Delila!

            A feladat gördülő összegzés készítése valami olyan képlettel, ami automatikusan az előte lévők adott tartományát összegzi.
            A te képleted statikus, tehát minden oldalon kézzel módosítani kellene.

            A feladat nem oldható meg (szerintem) Excel natív képlettel.
            Elvileg LAP() és INDIREKT() működne, de kiderült, hogy az INDOREKT nem kezeli a 3D hivatkozásokat.
            Azóta utánajártam és valóban nem.

            Imre

            #8788
            delila
            Felhasználó

              Szia Imi!

              Valóban a kérdezőnek dinamikus képletre van szüksége.
              Azért nem bánom, hogy feltettem ide a lapok egyes celláinak összegzését, mert nem sokan ismerik ezt a megoldást. Ha ide nem is stimmel, máshol (pl. 1 évhez 12 lap, majd ehhez egy összegző lap) alkalmazható.

              Kati

              #8789
              horvimi
              Adminisztrátor

                Persze!

                Tök rendben van, köszi!
                Én is szoktam mindig tanítani haladó tanfolyamokon.

                Imi

                #8790
                Laszlosala
                Felhasználó

                  Köszönöm, találtam egy hibát.
                  Ha egy n-k. sorszámú munkalapon frissül az adat, akkor n sorszámú munkalapon beragad az előbbi érték.
                  pl. 2. munkalapon új adatot vittem fel. 2. munkalapon a gördülő összeg frissül, de a 3. munkalapon egészen addig nem frissül, amíg bele nem kattintok, vagy bármi változás nincs a 3. munkalapon. egyébként működik.
                  alt+F5 segít?

                  Laci

                  • A hozzászólás módosításra került: 3 years telt el-Laszlosala.
                  #8792
                  horvimi
                  Adminisztrátor

                    Írd be a Function sor után, az első Dim elé, hogy

                    Application.Volatile

                    Ezzel azt kéred, hogy váljék volatil függvénnyé, és bárhol bármi megváltozik, kalkuláljon újra.

                    Imre

                  8 bejegyzés megtekintése - 1-8 / 8
                  • Be kell jelentkezni a hozzászóláshoz.