Intelligens automatikus kitöltés lefelé és jobbra

tartalom

Mostanáig néha mosolyogva emlékszem vissza az egyik első 10 évvel ezelőtti terepvállalati tréningemre.

Képzeld el: egy nemzetközi FMCG cég képviseleti irodájának nyitott irodája, hatalmas, mint egy futballpálya. Elegáns dizájn, drága irodai felszerelések, dress code, expatok dübörögnek a sarkokban – ennyi 🙂 Az egyik tárgyalóteremben kétnapos továbbképzést indítok az Excel 2003 akkor aktuális verziójáról a gazdasági osztály 15 fő munkatársa számára , vezetőjükkel együtt. Ismerkedünk, rákérdezek az üzleti feladatokra, problémákra, kérem, mutassanak be több jellemző munkafájlt. Mutatják az SAP-ból való kirakodás kilométeres hosszát, az erről készült riportlapokat, stb. Nos, ismerős dolog – gondolatban kitalálom a témákat és az időzítést, igazodok a közönséghez. A szemem sarkából észreveszem, ahogy az egyik résztvevő a jelentés egy darabját bemutatva türelmesen lehúzza a képletet tartalmazó cellát a jobb alsó sarokban lévő fekete keresztnél több ezer soron keresztül, majd kihagyja a végét. az asztalt menet közben visszahúzza, stb. Nem bírom elviselni, megszakítom az egér görbítését a képernyőn, és mutatok egy dupla kattintást a fekete keresztre, elmagyarázva az automatikus kiegészítést egészen a megállóig. 

Hirtelen azt veszem észre, hogy a közönség gyanúsan csendes, és mindenki furcsán néz rám. Észrevétlenül körülnézek magamon, ahol csak lehet – minden rendben, a kezem-lábaim a helyükön, a légy begombolva. Gondolatban visszatekerem utolsó szavaimat, valami szörnyű záradék után kutatva – úgy tűnik, nem volt semmi bűn. Ezt követően a csoport vezetője némán feláll, kezet rázza a kezemmel, és kőarccal mondja: „Köszönöm, Nikolai. Ez a képzés elvégezhető.

Nos, röviden, kiderült, hogy egyiküknek sem volt fogalma a fekete keresztre való dupla kattintásról és az automatikus kiegészítésről. Történelmileg valahogy megtörtént, hogy nem volt senki, aki megmutasson nekik egy ilyen egyszerű, de szükséges dolgot. Az egész osztály kézzel húzott képleteket több ezer sorhoz, szegény fickók. És itt vagyok. Olaj jelenet. Az osztályvezető ezután nagyon kérte, hogy ne árulják el senkinek a cégük nevét 🙂

Később is többször voltak hasonló helyzetek, de csak egyéni hallgatókkal – a legtöbben persze most már ismerik ezt a funkciót. 

Intelligens automatikus kitöltés lefelé és jobbraA kérdés más. Egy ilyen csodálatos funkció elsajátításának első öröme után a legtöbb felhasználó megérti, hogy a képletek automatikus másolása a fekete keresztre dupla kattintással (automatikus kiegészítés jelölő) rendelkezik minden pozitív és negatív oldallal:

  • A másolás nem mindig a táblázat végére történik. Ha a táblázat nem monolitikus, azaz üres cellák vannak a szomszédos oszlopokban, akkor nem tény, hogy az automatikus kiegészítés a tábla végéig működik. Valószínűleg a folyamat leáll a legközelebbi üres cellánál, mielőtt elérné a végét. Ha az oszlop alatt vannak olyan cellák, amelyeket valami elfoglal, akkor az automatikus kiegészítés pontosan leáll rajtuk.
  • Másoláskor sejtkialakítás elrontja, mert Alapértelmezés szerint nem csak a képlet másolódik, hanem a formátum is. A javításhoz kattintson a másolási beállítások gombra, és válassza ki Csak értékek (Kitöltés formátum nélkül).
  • Nincs gyors mód a képlet kényelmes nyújtására nem le, hanem jobbrakivéve kézzel húzni. A fekete keresztre dupla kattintás éppen lefelé mutat.

Próbáljuk meg kijavítani ezeket a hiányosságokat egy egyszerű makróval.

Nyomja meg a billentyűparancsot balra Alt + F11 vagy gombot Visual Basic lap fejlesztő (Fejlesztő). Új üres modul beszúrása a menün keresztül Beszúrás – Modul és másold oda ezeknek a makróknak a szövegét:

Sub SmartFillDown() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(0, -1).CurrentRegion Ha rng.Cells.Count > 1 Akkor n = rng.Cells(1).Sor + rng.Rows. Szám - ActiveCell.Row ActiveCell.AutoFill Destination:=ActiveCell.Resize(n, 1), Type:=xlFillValues ​​End If End Sub Sub SmartFillRight() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(-1, 0).CurrentRegion Ha rng.Cells.Count > 1, akkor n = rng.Cells(1).Oszlop + rng.Oszlopok.Count - ActiveCell.Oszlop ActiveCell.AutoFill Destination:=ActiveCell.Resize(1, n), Típus: =xlFillValues ​​End If End Sub  

Ilyen makrók:

  • nem csak lefelé (SmartFillDown), hanem jobbra (SmartFillRight) is kitölthető
  • ne rontsa el a lenti vagy jobb oldali cellák formátumát – csak a képlet (érték) másolása történik meg
  • az üres szomszédos cellákat figyelmen kívül hagyja, és a másolás pontosan a táblázat végére történik, nem pedig az adatok legközelebbi résére vagy az első foglalt cellára.

A nagyobb kényelem érdekében a gombbal billentyűparancsokat rendelhet ezekhez a makrókhoz Makrók – Opciók (Makrók – Opciók) ott a lapon. fejlesztő (Fejlesztő). Most elegendő beírni a kívánt képletet vagy értéket az oszlop első cellájába, és megnyomni a megadott billentyűkombinációt, hogy a makró automatikusan kitöltse a teljes oszlopot (vagy sort):

Szépség.

PS A képletek táblázat végére másolásával kapcsolatos probléma egy része az Excel 2007-ben az „intelligens táblák” megjelenésével megoldódott. Igaz, nem mindig és nem mindenhol megfelelőek. Jobb oldalon pedig az Excel soha nem tanult meg magától másolni.

  • Mik azok a makrók, hogyan kell használni őket, hol lehet Visual Basic kódot beszerezni és hova kell beilleszteni.
  • Intelligens táblázatok az Excelben 2007-2013
  • Képletek másolása linkeltolás nélkül

Hagy egy Válaszol