Riempimento automatico intelligente verso il basso e verso destra

Contenuti

Fino ad ora, a volte con un sorriso ricordo uno dei miei primi corsi di formazione aziendale sul campo 10 anni fa.

Imagine: the open space office of the representative office of an international FMCG company, huge as a football field. Chic design, expensive office equipment, dress code, expats cooing in the corners – that’s all 🙂 In one of the meeting rooms, I start a two-day advanced training on the then current version of Excel 2003 for 15 key employees of the economic department, along with their leader. We get acquainted, I ask them about business tasks, problems, I ask them to show several typical work files. They show the kilometer length of unloading from SAP, the sheets of reports that they make on this, etc. Well, it’s a familiar thing – I mentally figure out topics and timing, adjust to the audience. Out of the corner of my eye, I notice how one of the participants, demonstrating a piece of his report, patiently pulls the cell with the formula down by the black cross in the lower right corner for several thousand lines, then skips the end of the table on the fly, pulls it back, etc. Unable to stand it, I interrupt him curling the mouse around the screen and show a double-click on the black cross, explaining about auto-completion down to the stop. 

Improvvisamente mi rendo conto che il pubblico è sospettosamente silenzioso e tutti mi guardano in modo strano. Mi guardo intorno impercettibilmente ovunque posso: è tutto a posto, le mie braccia e le mie gambe sono a posto, la mia patta è abbottonata. Riavvolgo mentalmente le mie ultime parole alla ricerca di una clausola terribile: non c'era nulla di criminale, a quanto pare. Dopodiché, il capo del gruppo si alza in silenzio, mi stringe la mano e dice con una faccia di pietra: "Grazie, Nikolai. Questa formazione può essere completata.

Bene, in breve, si è scoperto che nessuno di loro aveva idea del doppio clic su una croce nera e del completamento automatico. In qualche modo è successo storicamente che non ci fosse nessuno a mostrare loro una cosa così semplice ma necessaria. L'intero dipartimento ha tirato manualmente le formule per migliaia di righe, poveretti. Ed eccomi qui. Scena a olio. Il capo dipartimento ha poi chiesto moltissimo di non rivelare a nessuno il nome della propria azienda 🙂

Diverse volte dopo si sono verificate situazioni simili, ma solo con singoli ascoltatori – la maggior parte ora, ovviamente, conosce questa funzione. 

Riempimento automatico intelligente verso il basso e verso destraLa domanda è diversa. Dopo la prima gioia di padroneggiare una funzione così meravigliosa, la maggior parte degli utenti arriva a capire che la copia automatica delle formule facendo doppio clic sulla croce nera (marcatore di completamento automatico) ha tutti gli aspetti positivi e quelli negativi:

  • La copia non avviene sempre alla fine della tabella. Se la tabella non è monolitica, cioè ci sono celle vuote nelle colonne adiacenti, non è un dato di fatto che il completamento automatico funzionerà fino alla fine della tabella. Molto probabilmente, il processo si fermerà nella cella vuota più vicina prima di raggiungere la fine. Se ci sono celle occupate da qualcosa sotto la colonna, il completamento automatico si interromperà esattamente su di esse.
  • Quando si copia il design delle cellule rovina, perché Per impostazione predefinita, non viene copiata solo la formula, ma anche il formato. Per correggere, fare clic sul pulsante delle opzioni di copia e selezionare Solo valori (Compila senza formato).
  • Non esiste un modo rapido per allungare comodamente la formula non in basso ma a destratranne che per tirare a mano. Fare doppio clic sulla croce nera è appena in basso.

Proviamo a correggere queste carenze con una semplice macro.

Premi la scorciatoia da tastiera a sinistra Alt + F11 o pulsante Visual Basic linguetta sviluppatore (Sviluppatore). Inserisci un nuovo modulo vuoto tramite menu Inserisci – Modulo e copia lì il testo di queste macro:

Sub SmartFillDown() Dim rng As Range, n As Long Imposta rng = ActiveCell.Offset(0, -1).CurrentRegion Se rng.Cells.Count > 1 Allora n = rng.Cells(1).Row + rng.Rows. Conteggio - ActiveCell.Row ActiveCell.AutoFill Destinazione:=ActiveCell.Resize(n, 1), Tipo:=xlFillValues ​​End If End Sub SmartFillRight() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(-1, 0).CurrentRegion Se rng.Cells.Count > 1 Allora n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Destinazione:=ActiveCell.Resize(1, n), Digitare: =xlFillValues ​​End If End Sub  

Tali macro:

  • può riempire non solo verso il basso (SmartFillDown), ma anche a destra (SmartFillRight)
  • non rovinare il formato delle celle sotto o a destra: viene copiata solo la formula (valore).
  • le celle adiacenti vuote vengono ignorate e la copia avviene esattamente alla fine della tabella e non allo spazio vuoto più vicino nei dati o alla prima cella occupata.

Per maggiore comodità, puoi assegnare scorciatoie da tastiera a queste macro utilizzando il pulsante Macro – Opzioni (Macro — Opzioni) proprio lì sulla scheda. sviluppatore (Sviluppatore). Ora basterà inserire la formula o il valore desiderato nella prima cella della colonna e premere la combinazione di tasti specificata affinché la macro riempia automaticamente l'intera colonna (o riga):

Beauty.

PS Parte del problema con la copia delle formule alla fine della tabella è stato risolto in Excel 2007 con l'avvento delle "tabelle intelligenti". È vero, non sono sempre e non ovunque appropriati. E a destra, Excel non ha mai imparato a copiare da solo.

  • Cosa sono le macro, come usarle, dove ottenere il codice Visual Basic e dove incollarlo.
  • Tabelle intelligenti in Excel 2007-2013
  • Copia le formule senza spostamento del collegamento

Lascia un Commento