Excel tartomány szummázás

Excel tartomány szummázás
2020-02-23T12:25:08+01:00
2020-08-30T12:02:01+02:00
2022-10-15T21:26:27+02:00
troby
Az alábbiakban kérném a segítségeteket: 

Van egy táblám aminek első 5 oszlopa 2. sorától még 40.000 sorból áll és számokat tartalmaz.

Egy új oszlopba kellene összegeznem mindig változó módon néhány oszlop adott sorainak számait.

Eddig úgy oldottam meg hogy a táblában volt 3 oszlopom amikből 1 ben képlettel összegeztem és így másolgattam a macroval az éppen összegezni kívánt sort majd a képletes értékét  újra az összegezendő oszlopokhoz.

Van erre egyszerűbb, gyorsabb megoldás? 

Köszönöm szépen előre is.
Mutasd a teljes hozzászólást!
Szia!
Egy szöveges változóba beteheted az összeadandó oszlopok nevét.
Első oszlop:

addossze="=AB3"
A következő oszlopnál:

addossze=addossze & "+AX3"
és így tovább.
Majd a képlet:

Range(AJ3:AJ58680).Formula=addossze
Üdv.
Mutasd a teljes hozzászólást!

  • Hali!

    Mutasd – VBA-forráskóddal/-részlettel (ha már egy programozással/fejlesztéssel foglalkozó fórumon vetetted fel a problémádat) –, hogy eddig mivel, hogyan próbálkoztál, meddig jutottál el, mi nem megy, miben/hol akadtál el!

    Mutasd a teljes hozzászólást!
  • Szia, ezzel most is működik csak nagyon lassan és más számára nehezen követhető talán.
    Az AL oszlopban ez a képlet minden sorban =AJ+AK

    Sheets("Adat_be").Select
    Range("AG3:AG58680").Select
    Selection.Copy
    Sheets("Adat_be").Select
    Range("AJ3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

    Sheets("Adat_be").Select
    Range("AL3:AL58680").Select
    Selection.Copy
    Sheets("Adat_be").Select
    Range("AK3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

    Sheets("Adat_be").Select
    Worksheets("Adat_be").Range("AJ3:AJ58680").Clear
    Range("AJ3:AJ58680").Select
    Selection.NumberFormat = "0.00000"
    Mutasd a teljes hozzászólást!
  • Szia!
    Javasolnám, hogy a Copy-PasteSpecial helyett egyszerű értékadást használj:

    With Sheets("Adat_be") .Range("AJ3:AJ58680").Value=.Range("AG3:AG58680").Value End With
    Így nem kell használni a vágólapot.
    Viszont ha tudod, hogy mely oszlopokat kell összegezni, akkor az AL oszlopba a képletet is beírhatod egy lépésben, pl:

    Sheets("Adat_be").Range("AL3:AL58680").Formula="=AG3+AJ3+AK3"
    Üdv.
    Mutasd a teljes hozzászólást!
  • Köszönöm szépen, kipróbálom ezt.
    Az a baj hogy nem tudom előre, mindig változik hogy melyeket kell összeadni.
    Van maximum 20 oszlop és elvégzek pár vizsgálatot az elsőn majd a másodikon és ha olyan akkor ezeket össze kell adni ha a harmadik is olyan akkor azt is hozzá kell adnom és igy tovább majd jön egy eltérő és akkor ahhoz kell a soron következőket hozzáadnom amig nem lesz egy eltérés. 
    Tehát van hogy csak kettő van hogy 4-5 oszlopot kell szummáznom. 
    Jó lett volna valami olyan függvény vagy metódus ahol egy oszlophoz hozzá tudom adni az előzőt vagy ilyesmi.
    Mutasd a teljes hozzászólást!
  • Szia!
    Egy szöveges változóba beteheted az összeadandó oszlopok nevét.
    Első oszlop:

    addossze="=AB3"
    A következő oszlopnál:

    addossze=addossze & "+AX3"
    és így tovább.
    Majd a képlet:

    Range(AJ3:AJ58680).Formula=addossze
    Üdv.
    Mutasd a teljes hozzászólást!
  • Szia!

    Talán képlettel is megoldható, ha a feltétel teljesülésétől függően 0-val vagy 1-gyel megszorzod az aktuális oszlop celláját.
    =ha(feltétel1;1;0) * A1+ ha(feltétel2;1;0) * B1 ... egészen feltétel20-ig

    Konkrétan
    =HA(A1>=5;1;0)*A1+HA(B1>=6;1;0)*B1+HA(C1>=7;1;0)*C1 ...


    üdv Józsi
    Mutasd a teljes hozzászólást!
  • Szia, 
    köszönöm, hétvégén kipróbálom!
    Üdv.
    Mutasd a teljes hozzászólást!
  • Szia troby!

    Régen kérdezted, most láttam...
    Nem kell mindenhez makró.
    Használd a SZUMHA függvényt, ahogy a mellékletben látható!

    üdvözlettel
    verax
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Szia, 
    köszönöm szépen erre nem is gondoltam, ez lehet a leggyorsabb.

    Üdv.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd