Паметно автоматско пополнување надолу и десно

содржина

Досега понекогаш со насмевка се сеќавам на една од моите први теренски корпоративни обуки пред 10 години.

Замислете: отворен простор канцеларија на претставништво на меѓународна компанија FMCG, огромна како фудбалско игралиште. Шик дизајн, скапа канцелариска опрема, кодекс на облекување, иселеници кои кукаат по аглите – тоа е сè 🙂 Во една од салите за состаноци, започнувам дводневна напредна обука за тогашната актуелна верзија на Excel 2003 за 15 клучни вработени во економскиот оддел. , заедно со нивниот водач. Се запознаваме, ги прашувам за деловни задачи, проблеми, барам да покажат неколку типични работни досиеја. Ја прикажуваат километарската должина на истовар од SAP, листовите со извештаи што ги прават за ова, итн. Па, тоа е позната работа - ментално ги откривам темите и времето, се прилагодувам на публиката. Со аголот на моето око, забележувам како еден од учесниците, демонстрирајќи дел од својот извештај, трпеливо ја повлекува ќелијата со формулата надолу со црниот крст во долниот десен агол неколку илјади линии, а потоа го прескокнува крајот на масата во лет, ја повлекува назад, итн. Не можејќи да издржам, го прекинувам свиткувајќи го глувчето околу екранот и покажувам двоен клик на црниот крст, објаснувајќи за автоматското комплетирање до крај. 

Одеднаш сфаќам дека публиката е сомнително тивка и сите чудно ме гледаат. Незабележливо гледам околу себе каде и да можам – се е во ред, рацете и нозете ми се на своето место, мувата закопчана. Ментално ги премотувам последните зборови во потрага по некоја страшна клаузула – се чини немаше ништо криминално. После тоа, шефот на групата тивко станува, ми подава рака и со камено лице вели: „Ти благодарам, Николај. Оваа обука може да се заврши.

Па, накратко, испадна дека никој од нив немал поим за двојно кликнување на црн крст и автоматско комплетирање. Некако се случи историски да нема кој да им покаже толку едноставна, но неопходна работа. Целиот оддел влече формули рачно за илјадници линии, кутри. И еве ме. Сцена со масло. Шефот на одделот тогаш многу побара да не се открива името на нивната компанија никому 🙂

Неколку пати подоцна имаше слични ситуации, но само со индивидуални слушатели - повеќето сега, се разбира, ја знаат оваа функција. 

Паметно автоматско пополнување надолу и десноПрашањето е различно. По првата радост за совладување на таква прекрасна карактеристика, повеќето корисници сфаќаат дека автоматското копирање на формули со двојно кликнување на црниот крст (маркер за автоматско комплетирање) ги има сите позитивни и негативни аспекти:

  • Копирањето не се случува секогаш до крајот на табелата. Ако табелата не е монолитна, односно има празни ќелии во соседните колони, тогаш не е факт дека автоматското пополнување ќе работи до крајот на табелата. Најверојатно, процесот ќе запре во најблиската празна ќелија пред да стигне до крајот. Ако има ќелии окупирани од нешто под колоната, тогаш автоматското комплетирање точно ќе престане на нив.
  • При копирање дизајнот на ќелијата се расипува, бидејќи Стандардно, не се копира само формулата, туку и форматот. За да се поправи, кликнете на копчето опции за копирање и изберете Само вредности (Пополнете без формат).
  • Не постои брз начин за практично истегнување на формулата не долу туку десноосвен да се повлече со рака. Двоен клик на црниот крст е само долу.

Ајде да се обидеме да ги поправиме овие недостатоци со едноставно макро.

Притиснете ја кратенката на тастатурата лево Alt + F11 или копче Visual Basic табот инвеститорот (програмер). Вметнете нов празен модул преку менито Вметни – Модул и копирајте го текстот на овие макроа таму:

Под SmartFillDown() Затемнето rng ​​како опсег, n Колку долго Поставете rng = ActiveCell.Offset(0, -1).CurrentRegion Ако rng.Cells.Count > 1 Потоа n = rng.Cells(1).Ред + rng.Редови. Count - ActiveCell.Row ActiveCell.AutoFill Дестинација:=ActiveCell.Промени големина(n, 1), Тип:=xlFillValues ​​End If End Sub Sub SmartFillRight() Затемнето rng ​​како опсег, n Долго поставете rng = ActiveCell.Offset(-1, 0).CurrentRegion Ако rng.Cells.Count > 1 Потоа n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Дестинација:=ActiveCell.Resize(1, n), Тип: =xlFillValues ​​End If End Sub  

Вакви макроа:

  • може да се пополни не само надолу (SmartFillDown), туку и надесно (SmartFillRight)
  • не го расипувајте форматот на ќелиите долу или десно - се копира само формулата (вредноста).
  • празните соседни ќелии се игнорираат и копирањето се случува точно до крајот на табелата, а не до најблиската празнина во податоците или првата окупирана ќелија.

За поголема удобност, можете да доделите кратенки на тастатурата на овие макроа користејќи го копчето Макроа - Опции (Макроа - Опции) токму таму на јазичето. инвеститорот (програмер). Сега ќе биде доволно да ја внесете саканата формула или вредност во првата ќелија од колоната и да ја притиснете наведената комбинација на копчиња за макрото автоматски да ја пополни целата колона (или ред):

Убавина.

PS Дел од проблемот со копирање формули до крајот на табелата беше решен во Excel 2007 година со доаѓањето на „паметните табели“. Точно, тие не се секогаш и не секаде соодветни. И десно, Excel никогаш не научи да копира самостојно.

  • Што се макроа, како да ги користите, каде да го добиете кодот на Visual Basic и каде да го залепите.
  • Паметни табели во Excel 2007-2013 година
  • Копирајте формули без промена на врската

Оставете Одговор