Completare automată inteligentă în jos și în dreapta

Cuprins

Până acum, uneori cu un zâmbet îmi amintesc de unul dintre primele mele training-uri corporative în domeniu acum 10 ani.

Imaginați-vă: biroul open space al reprezentanței unei companii internaționale de FMCG, imens ca un teren de fotbal. Design șic, echipamente de birou scumpe, cod vestimentar, expații care se găsesc în colțuri – asta e tot 🙂 Într-una dintre sălile de ședințe, încep un curs avansat de două zile despre versiunea actuală a Excel 2003 pentru 15 angajați cheie ai departamentului economic , împreună cu liderul lor. Ne cunoaștem, îi întreb despre sarcini de afaceri, probleme, îi rog să arate mai multe fișiere tipice de lucru. Ele arată lungimea de kilometri de descărcare de la SAP, foile de rapoarte pe care le fac despre asta etc. Ei bine, este un lucru familiar – îmi dau seama mental subiectele și calendarul, mă adaptez la public. Cu coada ochiului, observ cum unul dintre participanți, demonstrând o parte din raportul său, trage cu răbdare celula cu formula în jos de crucea neagră din colțul din dreapta jos timp de câteva mii de rânduri, apoi omite sfârșitul masa din zbor, o trage înapoi, etc. Neputând să-l suport, îl întrerup învârtind mouse-ul în jurul ecranului și arăt un dublu clic pe crucea neagră, explicând despre completarea automată până la oprire. 

Deodată îmi dau seama că publicul este suspect de tăcut și toată lumea mă privește ciudat. Mă uit imperceptibil în jurul meu oriunde pot – totul este în regulă, brațele și picioarele mele sunt la locul lor, brațul meu este cu nasturi. Îmi derulez mintal ultimele cuvinte în căutarea unei clauze groaznice – nu a fost nimic criminal, se pare. După aceea, șeful grupului se ridică în tăcere, îmi strânge mâna și spune cu o față de piatră: „Mulțumesc, Nikolai. Acest antrenament poate fi finalizat.

Ei bine, pe scurt, s-a dovedit că niciunul dintre ei nu avea nicio idee despre dublu clic pe o cruce neagră și completare automată. S-a întâmplat cumva din punct de vedere istoric să nu fie nimeni care să le arate un lucru atât de simplu, dar necesar. Întregul departament a scos formule manual pentru mii de rânduri, săracii. Și iată-mă. Scena de ulei. Șeful departamentului a cerut apoi foarte mult să nu dezvăluie nimănui numele companiei lor 🙂

De câteva ori mai târziu au existat situații similare, dar numai cu ascultători individuali – majoritatea acum, desigur, cunosc această funcție. 

Completare automată inteligentă în jos și în dreaptaÎntrebarea este diferită. După prima bucurie de a stăpâni o astfel de caracteristică minunată, majoritatea utilizatorilor ajung să înțeleagă că copierea automată a formulelor făcând dublu clic pe crucea neagră (marcator de completare automată) are toate aspectele pozitive și negative:

  • Copierea nu se întâmplă întotdeauna până la sfârșitul tabelului. Dacă tabelul nu este monolitic, adică există celule goale în coloanele adiacente, atunci nu este un fapt că autocompletarea va funcționa până la sfârșitul tabelului. Cel mai probabil, procesul se va opri la cea mai apropiată celulă goală înainte de a ajunge la sfârșit. Dacă există celule ocupate de ceva sub coloană, atunci autocompletarea se va opri exact pe ele.
  • La copiere designul celulei se strică, deoarece Implicit, nu este copiată doar formula, ci și formatul. Pentru a corecta, faceți clic pe butonul Opțiuni de copiere și selectați Doar valori (Umpleți fără format).
  • Nu există o modalitate rapidă de a întinde, de asemenea, în mod convenabil formula nu în jos, ci în dreaptaîn afară de a trage cu mâna. Făcând dublu clic pe crucea neagră este doar în jos.

Să încercăm să remediam aceste deficiențe cu o simplă macrocomandă.

Apăsați comanda rapidă de la tastatură la stânga Alt + F11 sau butonul Visual Basic fila dezvoltator (Dezvoltator). Introduceți un nou modul gol prin meniu Inserare – Modul și copiați textul acestor macrocomenzi acolo:

Sub SmartFillDown() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(0, -1).CurrentRegion Dacă rng.Cells.Count > 1 Atunci n = rng.Cells(1).Row + rng.Rows. Count - 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 Dacă rng.Cells.Count > 1 Atunci n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Destination:=ActiveCell.Resize(1, n), Tip: =xlFillValues ​​End If End Sub  

Astfel de macrocomenzi:

  • poate umple nu numai în jos (SmartFillDown), ci și spre dreapta (SmartFillRight)
  • nu stricați formatul celulelor de mai jos sau din dreapta – este copiată doar formula (valoarea).
  • celulele adiacente goale sunt ignorate și copierea are loc exact până la sfârșitul tabelului și nu până la cel mai apropiat gol din date sau la prima celulă ocupată.

Pentru mai multă comoditate, puteți aloca comenzi rapide de la tastatură acestor macrocomenzi folosind butonul Macro-uri – Opțiuni (Macrocomenzi — Opțiuni) chiar acolo pe filă. dezvoltator (Dezvoltator). Acum va fi suficient să introduceți formula sau valoarea dorită în prima celulă a coloanei și să apăsați combinația de taste specificată pentru ca macrocomandă să umple automat întreaga coloană (sau rând):

Frumuseţe.

PS O parte a problemei cu copierea formulelor la sfârșitul tabelului a fost rezolvată în Excel 2007 odată cu apariția „tabelelor inteligente”. Adevărat, nu sunt întotdeauna și nu oriunde adecvate. Și în dreapta, Excel nu a învățat niciodată să copieze singur.

  • Ce sunt macrocomenzile, cum să le folosiți, de unde să obțineți codul Visual Basic și de unde să-l lipiți.
  • Tabelele inteligente în Excel 2007-2013
  • Copiați formule fără deplasare link

Lasă un comentariu