Emplenament automàtic intel·ligent cap avall i cap a la dreta

contingut

Fins ara, de vegades amb un somriure recordo una de les meves primeres formacions corporatives de camp fa 10 anys.

Imagineu-vos: l'oficina d'espais oberts de l'oficina de representació d'una empresa internacional de FMCG, enorme com un camp de futbol. Disseny elegant, equips d'oficina cars, codi de vestimenta, expatriats arruïnant-se als racons: això és tot 🙂 En una de les sales de reunions, començo una formació avançada de dos dies sobre la versió actual d'Excel 2003 per a 15 empleats clau del departament econòmic , juntament amb el seu líder. Ens coneixem, els pregunto sobre tasques empresarials, problemes, els demano que mostrin diversos fitxers de treball típics. Mostren el quilòmetre de durada de la descàrrega des de SAP, els fulls d'informes que fan sobre això, etc. Bé, és una cosa familiar: descobreixo mentalment els temes i el temps, m'ajusto a l'audiència. Amb el racó de l'ull, noto com un dels participants, mostrant una part del seu informe, estira pacientment la cel·la amb la fórmula cap avall per la creu negra a l'angle inferior dret durant uns milers de línies i després salta el final de la taula sobre la marxa, la tira cap enrere, etc. Incapaç de suportar-la, l'interrompo fent girar el ratolí per la pantalla i mostro un doble clic a la creu negra, explicant-li l'autocompleció fins a la parada. 

De sobte m'adono que el públic està sospitosament tranquil i tothom em mira estranyament. Miro imperceptiblement al meu voltant allà on puc: tot està bé, els meus braços i cames estan al seu lloc, la meva braça està abotonada. Rebobinat mentalment les meves últimes paraules a la recerca d'alguna clàusula terrible: no hi havia res criminal, sembla. Després d'això, el cap del grup s'aixeca en silenci, em dona la mà i em diu amb cara de pedra: "Gràcies, Nikolai. Aquesta formació es pot completar.

Bé, en resum, va resultar que cap d'ells tenia ni idea de fer doble clic a una creu negra i d'autocompletar. D'alguna manera va passar històricament que no hi havia ningú que els mostrés una cosa tan senzilla però necessària. Tot el departament va treure fórmules manualment per a milers de línies, pobres companys. I aquí estic. Escena d'oli. Aleshores, el cap del departament va demanar molt que no revelés el nom de la seva empresa a ningú 🙂

Diverses vegades més tard es van produir situacions semblants, però només amb oients individuals; la majoria ara, per descomptat, coneixen aquesta funció. 

Emplenament automàtic intel·ligent cap avall i cap a la dretaLa pregunta és diferent. Després de la primera alegria de dominar una característica tan meravellosa, la majoria dels usuaris entenen que la còpia automàtica de fórmules fent doble clic a la creu negra (marcador d'autocompletar) té tots els aspectes positius i negatius:

  • La còpia no sempre passa al final de la taula. Si la taula no és monolítica, és a dir, hi ha cel·les buides a les columnes adjacents, no és un fet que l'autocompletar funcioni fins al final de la taula. El més probable és que el procés s'aturarà a la cel·la buida més propera abans d'arribar al final. Si hi ha cel·les ocupades per alguna cosa a sota de la columna, l'autocompletar s'aturarà exactament.
  • En copiar el disseny cel·lular es fa malbé, perquè Per defecte, no només es copia la fórmula, sinó també el format. Per corregir, feu clic al botó d'opcions de còpia i seleccioneu Només valors (Omplir sense format).
  • No hi ha una manera ràpida d'estirar convenientment la fórmula no avall sinó a la dretaexcepte per tirar amb la mà. Fer doble clic a la creu negra és just avall.

Intentem solucionar aquestes mancances amb una macro simple.

Premeu la drecera de teclat a l'esquerra Alt + F11 o botó Visual Basic llengüeta revelador (Desenvolupador). Inseriu un mòdul buit nou mitjançant el menú Inserir – Mòdul i copieu el text d'aquestes macros allà:

Sub SmartFillDown() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(0, -1).CurrentRegion Si rng.Cells.Count > 1 Then n = rng.Cells(1).Row + rng.Rows. Recompte - ActiveCell.Row ActiveCell.AutoFill Destinació:=ActiveCell.Resize(n, 1), Tipus:=xlFillValues ​​End If End Sub Sub SmartFillRight() Dim rng As Range, n As Long Set rng = ActiveCell.Offset (-1, 0).CurrentRegion Si rng.Cells.Count > 1 Aleshores n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Destinació:=ActiveCell.Resize(1, n), Tipus: =xlFillValues ​​End If End Sub  

Aquestes macros:

  • pot omplir no només cap avall (SmartFillDown), sinó també cap a la dreta (SmartFillRight)
  • no faci malbé el format de les cel·les de sota o de la dreta: només es copia la fórmula (valor).
  • les cel·les adjacents buides s'ignoren i la còpia es produeix exactament al final de la taula, i no al buit més proper a les dades o a la primera cel·la ocupada.

Per a una major comoditat, podeu assignar dreceres de teclat a aquestes macros mitjançant el botó Macros - Opcions (Macros — Opcions) allà mateix a la pestanya. revelador (Desenvolupador). Ara n'hi haurà prou amb introduir la fórmula o el valor desitjat a la primera cel·la de la columna i prémer la combinació de tecles especificada perquè la macro ompli automàticament tota la columna (o fila):

Bellesa.

PS Part del problema amb la còpia de fórmules al final de la taula es va resoldre a Excel 2007 amb l'arribada de les "taules intel·ligents". És cert que no sempre i no són adequats a tot arreu. I a la dreta, Excel mai va aprendre a copiar per si mateix.

  • Què són les macros, com utilitzar-les, on obtenir el codi Visual Basic i on enganxar-lo.
  • Taules intel·ligents en Excel 2007-2013
  • Copia fórmules sense desplaçament d'enllaç

Deixa un comentari