Како се користи Екцел ЛАМБДА функција -

Преглед садржаја

Резиме

Функција Екцел ЛАМБДА пружа начин стварања прилагођених функција које се могу поново користити у целој радној свесци, без ВБА или макронаредби.

Сврха

Направите прилагођену функцију

Повратна вредност

Као што је дефинисано формулом

Синтакса

= ЛАМБДА (параметар,…, прорачун)

Аргументи

  • параметар - Улазна вредност за функцију.
  • израчун - прорачун који треба извршити као резултат функције. Мора да је последњи аргумент.

Верзија

Екцел 365

Напомене о употреби

У рачунарском програмирању, ЛАМБДА се односи на анонимну функцију или израз. Анонимна функција је функција дефинисана без имена. У Екцелу, функција ЛАМБДА пружа начин за дефинисање и инкапсулирање одређене функционалности формуле, слично као Екцел функција. Једном дефинисана, функција ЛАМБДА може се именовати и поново користити негде другде у радној свесци. Другим речима, функција ЛАМБДА је начин за стварање прилагођених функција.

Једна од кључних предности прилагођене функције ЛАМБДА је та што логика садржана у формули постоји на само једном месту. То значи да постоји само једна копија кода коју треба ажурирати приликом решавања проблема или ажурирања функционалности, а промене ће се аутоматски проширити на све инстанце функције ЛАМБДА у радној свесци. ЛАМБДА функција не захтева ВБА или макронаредбе.

Пример 1 | Пример 2 | Пример 3

Стварање функције ЛАМБДА

ЛАМБДА функције се обично креирају и отклањају грешке у траци са формулама на радном листу, а затим се премештају у менаџер имена да би се доделило име које се може користити било где у радној свесци.

Постоје четири основна корака за стварање и коришћење прилагођене формуле засноване на функцији ЛАМБДА:

  1. Проверите логику коју ћете користити са стандардном формулом
  2. Направите и тестирајте генеричку (неименовану) ЛАМБДА верзију формуле
  3. Именујте и дефинишите формулу ЛАМБДА помоћу менаџера имена
  4. Тестирајте нову прилагођену функцију користећи дефинисано име

Следећи примери детаљније разматрају ове кораке.

Пример 1

Да бисмо илустровали како ЛАМБДА ради, започнимо са врло једноставном формулом:

=x*y // multiple x and y

У Екцелу би ова формула обично користила референце ћелија попут ове:

=B5*C5 // with cell references

Као што видите, формула добро функционише, па смо спремни да пређемо на стварање генеричке ЛАМБДА формуле (неименована верзија). Прво што треба размотрити је да ли формула захтева уносе (параметре). У овом случају, одговор је „да“ - формула захтева вредност за к, а вредност за и. Са тим утврђеним, започињемо са функцијом ЛАМБДА и додајемо потребне параметре за унос корисника:

=LAMBDA(x,y // begin with input parameters

Даље, треба да додамо стварни прорачун, к * и:

=LAMBDA(x,y,x*y)

Ако унесете формулу у овом тренутку, добићете #ЦАЛЦ! грешка. То се догађа зато што формула нема улазне вредности за рад, јер више нема референци на ћелије. Да бисмо тестирали формулу, треба да користимо посебну синтаксу попут ове:

=LAMBDA(x,y,x*y)(B5,C5) // testing syntax

Ова синтакса, где се параметри дају на крају функције ЛАМБДА у одвојеном скупу заграда, јединствена је за функције ЛАМБДА. Ово омогућава да се формула тестира директно на радном листу, пре него што се именује ЛАМБДА. На доњем екрану можете видети да генеричка функција ЛАМБДА у Ф5 враћа потпуно исти резултат као и оригинална формула у Е5:

Сада смо спремни да именујемо функцију ЛАМБДА помоћу Управитеља имена. Прво одаберите формулу, * не укључујући * параметре тестирања на крају. Затим отворите Наме Манагер помоћу пречице Цонтрол + Ф3 и кликните Нев.

У дијалог Ново име унесите име „КСБИИ“, оставите опсег подешен на радну свеску и налепите формулу коју сте копирали у област за унос „Односи се на“.

Уверите се да формула започиње знаком једнакости (=). Сада када ЛАМБДА формула има име, може се користити у радној свесци као и свака друга функција. На екрану испод формуле у Г5, копиране доле, налази се:

Нова прилагођена функција враћа исти резултат као и остале две формуле.

Пример 2

У овом примеру претворићемо формулу за израчунавање запремине сфере у прилагођену функцију ЛАМБДА. Општа Екцел формула за израчунавање запремине сфере је:

=4/3*PI()*A1^3 // volume of sphere

где А1 представља полупречник. Следећи екран приказује ову формулу на делу:

Приметите да ова формула захтева само један улаз (радијус) за израчунавање запремине, тако да ће нашој ЛАМБДА функцији бити потребан само један параметар (р), који ће се појавити као први аргумент. Ево формуле претворене у ЛАМБДА:

=LAMBDA(r,4/3*PI()*r^3) // generic lambda

Поново у радном листу, заменили смо оригиналну формулу са генеричком верзијом ЛАМБДА. Приметите да користимо синтаксу тестирања која нам омогућава да прикључимо Б5 радијуса:

Резултати генеричке ЛАМБДА формуле потпуно су исти као и оригинална формула, па је следећи корак дефинисање и именовање ове ЛАМБДА формуле помоћу Управитеља имена, као што је горе објашњено. Име које се користи за функцију ЛАМБДА може бити било које ваљано Екцел име. У овом случају ћемо формулу назвати „СпхереВолуме“.

Назад у радном листу заменили смо генеричку (неименовану) формулу ЛАМБДА са именованом верзијом ЛАМБДА и унели Б5 за р. Приметите да су резултати које је вратила прилагођена функција СпхереВолуме потпуно исти као и претходни резултати.

Пример 3

In this example, we'll create a LAMBDA function to count words. Excel doesn't have a function for this purpose, but you can count words with a cell with a custom formula based on the LEN and SUBSTITUTE functions like this:

=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1

Read detailed explanation here. Here is the formula in action in a worksheet:

Notice we are getting an incorrect count of 1 when the formula is given an empty cell (B10). We'll address this problem below.

This formula only requires one input, which is the text that contains words. In our LAMBDA function, we'll name this argument "text". Here is the formula converted to LAMBDA:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)

Notice "text" appears as the first argument, and the calculation is the second and final argument. In the screen below, we've replaced the original formula with the generic LAMBDA version. Notice we are using the testing syntax, which allows us to plug in B5 for text:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)(B5)

The results from the generic LAMBDA formula are the same as the original formula, so the next step is to define and name this LAMBDA formula with the Name Manager, as explained previously. We'll name this formula "CountWords".

Below, we've replaced the generic (unnamed) LAMBDA formula with the named LAMBDA version, and entered B5 for text. Notice we get exactly the same results.

The formula used in the Name Manager to define CountWords is the same as above, without the testing syntax:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)

Fixing the empty cell problem

Као што је горе поменуто, горња формула враћа нетачан број 1 када је ћелија празна. Овај проблем се може решити заменом +1 са доњим кодом:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+(LEN(TRIM(B5))>0)

Потпуно објашњење овде. Да бисмо ажурирали постојећу именовану формулу ЛАМДА, поново морамо да користимо Наме Манагер:

  1. Отворите Наме Манагер
  2. Изаберите име „ЦоунтВордс“ и кликните на „Едит“
  3. Замените код „Односи се на“ овом формулом:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+(LEN(TRIM(text))>0))

Једном када је Наме Манагер затворен, ЦоунтВордс исправно ради на празним ћелијама, као што се види доле:

Напомена: ажурирањем кода једном у Управитељу имена, све инстанце формуле ЦоунтВордс се ажурирају одједном. Ово је кључна предност прилагођених функција креираних помоћу ЛАМБДА - ажурирањем формуле може се управљати на једном месту.

Занимљиви Чланци...