Динамични масиви, функции и формули на Excel

  • Споделя Това
Michael Brown

Съдържание

Благодарение на революционното обновяване на механизма за изчисления в Excel 365 формулите за масиви стават много прости и разбираеми за всички, а не само за супер потребителите. В урока се обяснява концепцията за новите динамични масиви на Excel и се показва как те могат да направят работните ви листове по-ефективни и много по-лесни за създаване.

Формулите за масиви в Excel винаги са били считани за прерогатив на гурутата и експертите по формули. Ако някой каже "Това може да се направи с формула за масиви", незабавната реакция на много потребители е "Ама няма ли друг начин?".

Въвеждането на динамичните масиви е дългоочаквана и добре дошла промяна. Благодарение на способността им да работят с множество стойности по прост начин, без никакви трикове и странности, формулите за динамични масиви са нещо, което всеки потребител на Excel може да разбере и с удоволствие да създава.

    Динамични масиви на Excel

    Динамични масиви са масиви с променящ се размер, които изчисляват автоматично и връщат стойности в няколко клетки въз основа на формула, въведена в една клетка.

    През над 30-годишната си история Microsoft Excel претърпя много промени, но едно нещо остана постоянно - една формула, една клетка. Дори при традиционните формули за масиви беше необходимо да въведете формула във всяка клетка, в която искате да се появи резултат. При динамичните масиви това правило вече не е вярно. Сега всяка формула, която връща масив от стойности, автоматично се разлива в съседните клетки.без да се налага да натискате Ctrl + Shift + Enter или да извършвате други движения. С други думи, работата с динамични масиви става толкова лесна, колкото и работата с единична клетка.

    Позволете ми да илюстрирам концепцията с един много елементарен пример. Да предположим, че трябва да умножите две групи числа, например за да изчислите различни проценти.

    В преддинамичните версии на Excel формулата по-долу ще работи само за първата клетка, освен ако не я въведете в няколко клетки и не натиснете Ctrl + Shift + Enter, за да я превърнете във формула за масив:

    =A3:A5*B2:D2

    А сега вижте какво се случва, когато същата формула се използва в Excel 365. Въвеждате я само в една клетка (B3 в нашия случай), натискате клавиша Enter... и цялата ярост се запълва с резултатите наведнъж:

    Попълването на няколко клетки с една формула се нарича разливане , а попълненият диапазон от клетки се нарича диапазон на разливане.

    Важно е да се отбележи, че неотдавнашната актуализация не е просто нов начин за работа с масиви в Excel. Всъщност това е новаторска промяна в целия механизъм за изчисления. С динамичните масиви към библиотеката с функции на Excel бяха добавени куп нови функции, а съществуващите започнаха да работят по-бързо и по-ефективно. В крайна сметка новите динамични масиви трябва напълно дада замени старомодните формули за масиви, които се въвеждат с клавишната комбинация Ctrl + Shift + Enter.

    Наличие на динамични масиви на Excel

    Динамичните масиви бяха представени на конференцията Microsoft Ignite през 2018 г. и пуснати за абонатите на Office 365 през януари 2020 г. В момента те са налични в Абонаменти за Microsoft 365 и Excel 2021.

    В тези версии се поддържат динамични масиви:

    • Excel 365 за Windows
    • Excel 365 за Mac
    • Excel 2021
    • Excel 2021 за Mac
    • Excel за iPad
    • Excel за iPhone
    • Excel за таблети с Android
    • Excel за телефони с Android
    • Excel за уеб

    Функции за динамични масиви на Excel

    Като част от новата функционалност в Excel 365 бяха въведени 6 нови функции, които работят с масиви и извеждат данни в диапазон от клетки. Изходът е винаги динамичен - при промяна в изходните данни резултатите се актуализират автоматично. Оттук и името на групата - динамични функции за масиви .

    Тези нови функции лесно се справят с редица задачи, които традиционно се смятат за трудни за решаване. Например те могат да премахват дубликати, да извличат и броят уникални стойности, да филтрират празни места, да генерират случайни цели и десетични числа, да сортират във възходящ или низходящ ред и много други.

    По-долу ще намерите кратко описание на функциите на всяка функция, както и връзки към подробни уроци:

    1. UNIQUE - извлича уникални елементи от редица клетки.
    2. ФИЛТРИРАНЕ - филтрира данните по зададени от вас критерии.
    3. СОРТИРАНЕ - сортира диапазон от клетки по зададена колона.
    4. SORTBY - сортира диапазон от клетки по друг диапазон или масив.
    5. RANDARRAY - генерира масив от случайни числа.
    6. SEQUENCE - генерира списък с последователни числа.
    7. TEXTSPLIT - разделя низове по зададен разделител в колони и/или редове.
    8. TOCOL - преобразува масив или диапазон в една колона.
    9. TOROW - трансформира диапазон или масив в един ред.
    10. WRAPCOLS - преобразува ред или колона в двуизмерен масив въз основа на зададения брой стойности на ред.
    11. WRAPROWS - преоформя ред или колона в двуизмерен масив въз основа на зададения брой стойности в колона.
    12. TAKE - извлича определен брой съседни редове и/или колони от началото или края на масив.

    Освен това има два съвременни заместителя на популярните функции на Excel, които не са официално включени в групата, но използват всички предимства на динамичните масиви:

    XLOOKUP - е по-мощен наследник на VLOOKUP, HLOOKUP и LOOKUP, който може да търси както в колони, така и в редове и да връща множество стойности.

    XMATCH - е по-универсален наследник на функцията MATCH, който може да извършва вертикални и хоризонтални търсения и да връща относителна позиция на зададения елемент.

    Формули за динамични масиви на Excel

    В съвременните версии на Excel поведението на динамичните масиви е дълбоко интегрирано и се всички функции , дори и тези, които първоначално не са били предназначени за работа с масиви. Казано по-просто, за всяка формула, която връща повече от една стойност, Excel автоматично създава променящ се диапазон, в който се извеждат резултатите. Благодарение на тази възможност съществуващите функции вече могат да правят магии!

    Примерите по-долу показват новите формули за динамични масиви в действие, както и ефекта на динамичните масиви върху съществуващите функции.

    Пример 1. Нова функция за динамичен масив

    Този пример демонстрира колко по-бързо и просто може да се постигне решение с функциите на Excel за динамични масиви.

    За да извлечете списък с уникални стойности от дадена колона, традиционно използвате сложна CSE формула като тази. В динамичния Excel ви е необходима само формула UNIQUE в нейната основна форма:

    =UNIQUE(B2:B10)

    Въвеждате формулата в която и да е празна клетка и натискате Enter. Excel незабавно извлича всички различни стойности в списъка и ги извежда в диапазон от клетки, започващ от клетката, в която сте въвели формулата (D2 в нашия случай). Когато изходните данни се променят, резултатите се преизчисляват и актуализират автоматично.

    Пример 2. Комбиниране на няколко функции за динамични масиви в една формула

    Ако няма начин да се изпълни дадена задача с една функция, свържете няколко такива заедно! Например, за да филтрирате данни въз основа на условие и да подредите резултатите по азбучен ред, обвийте функцията SORT около FILTER по следния начин:

    =SORT(FILTER(A2:C13, B2:B13=F1, "Няма резултати"))

    Където A2:C13 са изходните данни, B2:B13 са стойностите за проверка, а F1 е критерият.

    Пример 3. Използване на новите функции за динамични масиви заедно със съществуващите

    Тъй като новият механизъм за изчисления, внедрен в Excel 365, може лесно да превръща конвенционалните формули в масиви, нищо не ви пречи да комбинирате нови и стари функции заедно.

    Например, за да преброите колко уникални стойности има в определен диапазон, вложете функцията UNIQUE на динамичния масив в добрата стара функция COUNTA:

    =COUNTA(UNIQUE(B2:B10))

    Пример 4. Съществуващите функции поддържат динамични масиви

    Ако предоставите диапазон от клетки на функцията TRIM в по-стара версия, например Excel 2016 или Excel 2019, тя ще върне един резултат за първата клетка:

    =TRIM(A2:A6)

    В динамичния Excel една и съща формула обработва всички клетки и връща няколко резултата, както е показано по-долу:

    Пример 5. Формула VLOOKUP за връщане на няколко стойности

    Както е известно, функцията VLOOKUP е предназначена за връщане на единична стойност въз основа на посочения от вас индекс на колона. В Excel 365 обаче можете да предоставите масив от номера на колони, за да върнете съвпадения от няколко колони:

    =VLOOKUP(F1, A2:C6, {1,2,3}, FALSE)

    Пример 6. Лесна формула TRANSPOSE

    В по-ранните версии на Excel синтаксисът на функцията TRANSPOSE не оставяше място за грешки. За да завъртите данните в работния си лист, трябваше да преброите оригиналните колони и редове, да изберете същия брой празни клетки, но да промените ориентацията (умопомрачителна операция в огромни работни листове!), да въведете формулата TRANSPOSE в избрания диапазон и да натиснете Ctrl + Shift + Enter, за да я завършите правилно.

    В динамичния Excel просто въвеждате формулата в най-лявата клетка на изходния диапазон и натискате Enter:

    =TRANSPOSE(A1:B6)

    Готово!

    Обхват на разливане - една формула, няколко клетки

    Сайтът обхват на разлива е диапазон от клетки, който съдържа стойностите, върнати от формула за динамичен масив.

    Когато се избере някоя клетка от диапазона на разливане, се появява синята рамка, за да покаже, че всичко в нея е изчислено от формулата в горната лява клетка. Ако изтриете формулата в първата клетка, всички резултати ще изчезнат.

    Диапазонът на разливане е наистина чудесно нещо, което улеснява живота на потребителите на Excel. Преди с формулите за масиви на CSE трябваше да гадаем в колко клетки да ги копираме. Сега просто въвеждате формулата в първата клетка и оставяте Excel да се погрижи за останалото.

    Забележка: Ако някои други данни блокират обхвата на разливане, се появява грешка #SPILL. След като блокиращите данни бъдат отстранени, грешката ще изчезне.

    За повече информация вижте Обхват на разливане на Excel.

    Референтен обхват на разлива (символ #)

    За да направите препратка към диапазона на разливане, поставете хеш таг или символа за паунд (#) след адреса на горната лява клетка в диапазона.

    Например, за да откриете колко случайни числа са генерирани от формулата RANDARRAY в A2, подайте референцията за диапазона на разливане към функцията COUNTA:

    =COUNTA(A2#)

    За да съберете стойностите в диапазона на разливане, използвайте:

    =SUM(A2#)

    Съвети:

    • За да направите бърза препратка към обхвата за преливане, просто изберете всички клетки в синьото поле с помощта на мишката и Excel ще създаде преливането за вас.
    • За разлика от обикновената референция за обхват, референцията за преливане на обхват е динамична и реагира автоматично на промяната на размера на обхвата.
    • За повече информация, моля, вижте Оператор на обхвата на разлива.

      Имплицитно пресичане и символ @

      В динамичния масив на Excel има още една значителна промяна в езика на формулите - въвеждането на символа @, известен като имплицитен оператор за пресичане .

      В Microsoft Excel, имплицитно пресичане е поведение на формула, която свежда много стойности до една стойност. В стария Excel една клетка можеше да съдържа само една стойност, така че това беше поведението по подразбиране и за него не беше необходим специален оператор.

      В новия Excel всички формули по подразбиране се разглеждат като формули за масиви. Операторът за подразбиращо се пресичане се използва, за да се предотврати поведението на масиви, ако не го искате в конкретна формула. С други думи, ако искате формулата да връща само една стойност, поставете @ пред името на функцията и тя ще се държи като формула без масив в традиционния Excel.

      За да видите как работи на практика, разгледайте снимката по-долу.

      В С2 има формула за динамичен масив, която разпръсква резултатите в много клетки:

      =UNIQUE(A2:A9)

      В E2 функцията е предхождана от символа @, който предизвиква имплицитно пресичане. В резултат на това се връща само първата уникална стойност:

      =@UNIQUE(A2:A9)

      За повече информация вижте подразбиращо се пресичане в Excel.

      Предимства на динамичните масиви на Excel

      Несъмнено динамичните масиви са едно от най-добрите подобрения на Excel от години насам. Като всяка нова функция те имат силни и слаби страни. За наше щастие силните страни на новите формули за динамични масиви на Excel са огромни!

      Просто и по-мощно

      Динамичните масиви дават възможност за създаване на по-мощни формули по много по-прост начин. Ето няколко примера:

      • Извличане на уникални стойности: традиционни формули
      • Преброяване на уникални и различни стойности: традиционни формули
      • Сортиране на колони по азбучен ред: традиционни формули

      Роден за всички формули

      В динамичния Excel не е необходимо да се притеснявате кои функции поддържат масиви и кои не. Ако дадена формула може да върне няколко стойности, тя ще го направи по подразбиране. Това се отнася и за аритметичните операции и наследените функции, както е показано в този пример.

      Вложени функции за динамични масиви

      За да разработите решения за по-сложни задачи, можете да комбинирате новите функции на Excel за динамични масиви или да ги използвате заедно със старите, както е показано тук и тук.

      Относителните и абсолютните препратки са по-малко важни

      Благодарение на подхода "една формула, много стойности" не е необходимо да заключвате диапазони със знака $, тъй като технически формулата е само в една клетка. Така че в повечето случаи няма значение дали се използват абсолютни, относителни или смесени препратки към клетките (което винаги е било източник на объркване за неопитните потребители) - формулата за динамичен масив така или иначе ще даде правилни резултати!

      Ограничения на динамичните масиви

      Новите динамични масиви са чудесни, но както при всяка нова функция, има няколко предупреждения и съображения, които трябва да имате предвид.

      Резултатите не могат да се сортират по обичайния начин

      Диапазонът на разливане, върнат от формула за динамичен масив, не може да бъде сортиран с помощта на функцията за сортиране на Excel. Всеки подобен опит ще доведе до появата на " Не можете да променяте част от масив " грешка. За да подредите резултатите от най-малкия към най-големия или обратното, обвийте текущата си формула с функцията SORT. Например, ето как можете да филтрирате и сортирате едновременно.

      Не може да се изтрие нито една стойност в диапазона на разливане

      Нито една от стойностите в диапазона на разливане не може да бъде изтрита поради същата причина: не можете да променяте част от масив. Това поведение е очаквано и логично. Традиционните CSE формули за масиви също работят по този начин.

      Не се поддържат в таблиците на Excel

      Тази функция (или грешка?) е доста неочаквана. Формулите за динамични масиви не работят в таблици на Excel, а само в обикновени диапазони. Ако се опитате да конвертирате разливен диапазон в таблица, Excel ще го направи. Но вместо резултатите ще видите само грешка #SPILL!.

      Не работят с Excel Power Query

      Резултатите от формулите на динамичните масиви не могат да бъдат заредени в Power Query. Ако се опитате да обедините два или повече диапазона на разливи с помощта на Power Query, това няма да се получи.

      Динамични масиви спрямо традиционните формули за масиви на CSE

      С въвеждането на динамичните масиви можем да говорим за два вида Excel:

      1. Динамичен Excel която напълно поддържа динамични масиви, функции и формули. Понастоящем това са само Excel 365 и Excel 2021.
      2. Наследствен Excel , известен още като традиционен или преддинамичен Excel, в който се поддържат само масивни формули Ctrl + Shift + Enter. Това са Excel 2019, Excel 2016, Excel 2013 и по-ранни версии.

      От само себе си се разбира, че динамичните масиви превъзхождат формулите за масиви на CSE във всяко едно отношение. Въпреки че традиционните формули за масиви са запазени от съображения за съвместимост, оттук нататък се препоръчва да се използват новите формули.

      Ето най-съществените разлики:

      • Формулата за динамичен масив се въвежда в една клетка и се завършва с обикновено натискане на клавиш Enter. За да завършите старомодна формула за масив, трябва да натиснете Ctrl + Shift + Enter .
      • Новите формули за масиви се разливат автоматично в много клетки. CSE формулите трябва да се копират в диапазон от клетки, за да се върнат множество резултати.
      • Изходът на формулите за динамични масиви автоматично се оразмерява при промяна на данните в изходния диапазон. CSE формулите съкращават изхода, ако областта на връщане е твърде малка, и връщат грешки в допълнителни клетки, ако областта на връщане е твърде голяма.
      • Формула на динамичен масив може лесно да се редактира в една клетка. За да модифицирате CSE формула, трябва да изберете и редактирате целия диапазон.
      • Не е възможно да се изтриват и вмъкват редове в диапазон от формули на CSE - първо трябва да изтриете всички съществуващи формули. При динамичните масиви вмъкването или изтриването на редове не е проблем.

      Обратна съвместимост: динамични масиви в наследения Excel

      Когато отворите работна книга, съдържаща формула за динамичен масив, в стария Excel, тя автоматично се преобразува в обикновена формула за масив, оградена с {къдрави скоби}. Когато отворите работния лист отново в новия Excel, къдравите скоби ще бъдат премахнати.

      В по-стария Excel новите функции за динамични масиви и препратките към преливащи се диапазони се обозначават с префикс _xlfn, за да се покаже, че тази функционалност не се поддържа. Знакът за препратка към преливащ се диапазон (#) се заменя с функцията ANCHORARRAY.

      Например, ето как се появява формула UNIQUE в Excel 2013 :

      Повечето формули за динамични масиви (но не всички!) ще продължат да показват резултатите си в стария Excel, докато не направите някакви промени в тях. Редактирането на формула веднага я прекъсва и показва една или повече стойности за грешка #NAME?.

      Формулите за динамични масиви на Excel не работят

      В зависимост от функцията могат да възникнат различни грешки, ако използвате неправилен синтаксис или невалидни аргументи. По-долу са описани 3-те най-често срещани грешки, на които можете да се натъкнете при всяка формула за динамичен масив.

      #SPILL! грешка

      Когато динамичен масив връща няколко резултата, но нещо блокира диапазона на изливане, се появява грешка #SPILL!.

      За да поправите грешката, трябва просто да изчистите или изтриете всички клетки в диапазона на разлива, които не са напълно празни. За да откриете бързо всички клетки, които пречат, щракнете върху индикатора за грешка и след това щракнете върху Изберете пречещи клетки .

      Освен от непопълнен диапазон на разливане, тази грешка може да се дължи на няколко други причини. За повече информация, моля, вижте:

      • Грешка в Excel #SPILL - причини и поправки
      • Как да поправите грешка #SPILL! с VLOOKUP, INDEX MATCH, SUMIF

      #REF! грешка

      Поради ограничената поддръжка на външни препратки между работните книги, динамичните масиви изискват и двата файла да са отворени. Ако изходната работна книга е затворена, се извежда грешка #REF!

      #NAME? грешка

      Появява се грешка #NAME?, ако се опитате да използвате функция за динамичен масив в по-стара версия на Excel. Моля, не забравяйте, че новите функции са налични само в Excel 365 и Excel 2021.

      Ако тази грешка се появи в поддържаните версии на Excel, проверете два пъти името на функцията в проблемната клетка. Има вероятност да е грешно въведено :)

      Ето как да използвате динамични масиви в Excel. Надявам се, че ще харесате тази фантастична нова функционалност! Както и да е, благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.