Формуле низа су једна од најмоћнијих функција Екцел-а. Ако сте упознати са формулама низа, биће вам драго да знате да можете креирати ВБА функције које враћају низ.
Враћање низа назива месеци
Почнимо са једноставним примером. Функција МонтхНамес враћа низ од 12 елемената — погодили сте — имена месеци.
Функција Имена месеца()
МонтхНамес = Арраи(“јануар”, “фебруар”, “март”, _
„април“, „мај“, „јун“, „јул“, „август“, _
„септембар“, „октобар“, „новембар“, „децембар“)
Енд Фунцтион
Да бисте користили функцију МонтхНамес у радном листу, морате је унети као формулу низа од 12 ћелија. На пример, изаберите опсег А2:Л2 и унесите =Имена месеца() . Затим притисните Цтрл+Схифт+Ентер да унесете формулу низа у свих 12 изабраних ћелија. Погледајте резултат.
Коришћење функције МонтхНамес за враћање низа од 12 елемената.
Ако желите да се називи месеци приказују у колони, изаберите 12 ћелија у колони и користите ову формулу низа. (Не заборавите да га унесете притиском на Цтрл+Схифт+Ентер.)
=ТРАНСПОСЕ(Имена месеци())
Такође можете да изаберете један месец из низа. Ево формуле (не формуле низа) која приказује четврти елемент низа: април.
=ИНДЕКС(Имена месеци(),4)
Враћање сортиране листе
Претпоставимо да имате листу имена која желите да прикажете у сортираном редоследу у другом опсегу ћелија. Зар не би било лепо да функција радног листа то ради уместо вас?
Ова прилагођена функција ради управо то: узима распон ћелија у једној колони као свој аргумент, а затим враћа низ сортираних ћелија. Опсег А2:А13 садржи нека имена. Опсег Ц2:Ц13 садржи ову формулу вишећелијског низа. (Запамтите да морате да унесете формулу притиском на Цтрл+Схифт+Ентер.)
Коришћење прилагођене функције за враћање сортираног опсега.
=Сортирано(А2:А13)
Ево кода за сортирану функцију:
Функција сортирана (Рнг као опсег)
Дим СортедДата() као варијанта
Дим Целл Ас Ранге
Дим Темп као варијанта, и Ас Лонг, ј Ас Лонг
Дим НонЕмпти Ас Лонг
' Пренесите податке у СортедДата
За сваку ћелију у Рнг
Ако није ИсЕмпти (ћелија) онда
Непразан = Непразан + 1
РеДим Пресерве СортедДата (1 до НонЕмпти)
СортедДата(НонЕмпти) = Целл.Валуе
Крај Ако
Следећа ћелија
' Сортирајте низ
За и = 1 До НонЕмпти
За ј = и + 1 до непразног
Ако СортедДата(и) > СортедДата(ј) Онда
Темп = СортедДата(ј)
Сортирани подаци(ј) = Сортирани подаци(и)
Сортирани подаци(и) = Темп
Крај Ако
Следећи ј
Затим сам
' Транспонујте низ и вратите га
Сортирано = Апплицатион.Транспосе(СортедДата)
Енд Фунцтион
Функција Сортед почиње креирањем низа под називом СортедДата. Овај низ садржи све вредности које нису празне у опсегу аргумената. Затим се сортира низ СортедДата, користећи алгоритам за сортирање мехурића. Пошто је низ хоризонтални низ, мора се транспоновати пре него што га функција врати.
Сортирана функција ради са опсегом било које величине, све док је у једној колони или реду. Ако су несортирани подаци у низу, ваша формула треба да користи Екцел-ову функцију ТРАНСПОСЕ за хоризонтално приказивање сортираних података. На пример:
=ТРАНСПОСЕ(Сортирано(А16:Л16))