Как да използвам функцията Excel LAMBDA -

Съдържание

Обобщение

Функцията Excel LAMBDA предоставя начин за създаване на потребителски функции, които могат да бъдат използвани повторно в цялата работна книга, без VBA или макроси.

Предназначение

Създайте персонализирана функция

Върната стойност

Както е дефинирано от формулата

Синтаксис

= LAMBDA (параметър, …, изчисление)

Аргументи

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

Версия

Excel 365

Бележки за употреба

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

Едно от ключовите предимства на персонализирана функция LAMBDA е, че логиката, съдържаща се във формулата, съществува само на едно място. Това означава, че има само едно копие на код за актуализиране при отстраняване на проблеми или актуализиране на функционалността и промените автоматично ще се разпространят във всички екземпляри на функцията LAMBDA в работна книга. Функцията LAMBDA не изисква VBA или макроси.

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

Създаване на функция LAMBDA

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

Има четири основни стъпки за създаване и използване на персонализирана формула, базирана на функцията LAMBDA:

  1. Проверете логиката, която ще използвате със стандартна формула
  2. Създайте и тествайте обща (неназована) версия на LAMBDA на формулата
  3. Назовете и дефинирайте формулата LAMBDA с мениджъра на имена
  4. Тествайте новата персонализирана функция, като използвате дефинираното име

Примерите по-долу обсъждат тези стъпки по-подробно.

Пример 1

За да илюстрираме как работи LAMBDA, нека започнем с една много проста формула:

=x*y // multiple x and y

В Excel тази формула обикновено използва препратки към клетки като тази:

=B5*C5 // with cell references

Както можете да видите, формулата работи добре, така че сме готови да преминем към създаването на обща формула LAMBDA (неназована версия). Първото нещо, което трябва да имате предвид, е дали формулата изисква входни данни (параметри). В този случай отговорът е "да" - формулата изисква стойност за x и стойност за y. С установеното започваме с функцията LAMBDA и добавяме необходимите параметри за въвеждане от потребителя:

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

След това трябва да добавим действителното изчисление, x * y:

=LAMBDA(x,y,x*y)

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

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

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

Вече сме готови да назовем функцията LAMBDA с диспечера на имената. Първо изберете формулата, * не включва * параметрите за тестване в края. След това отворете диспечера на имена с пряк път Control + F3 и щракнете върху New.

В диалоговия прозорец „Ново име“ въведете името „XBYY“, оставете обхвата зададен на работна книга и поставете копираната формула в областта за въвеждане „Отнася се за“.

Уверете се, че формулата започва със знак за равенство (=). Сега, когато формулата LAMBDA има име, тя може да се използва в работната книга като всяка друга функция. На екрана под формулата в G5, копирана надолу, е:

Новата персонализирана функция връща същия резултат като другите две формули.

Пример 2

В този пример ще преобразуваме формула за изчисляване на обема на сфера в персонализирана функция LAMBDA. Общата формула на Excel за изчисляване на обема на сфера е:

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

където А1 представлява радиус. Екранът по-долу показва тази формула в действие:

Забележете, че тази формула изисква само един вход (радиус) за изчисляване на обема, така че нашата функция LAMBDA ще се нуждае само от един параметър (r), който ще се появи като първи аргумент. Ето формулата, преобразувана в LAMBDA:

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

Обратно в работния лист сме заменили оригиналната формула с общата версия LAMBDA. Забележете, че използваме синтаксиса за тестване, който ни позволява да включим B5 за радиус:

Резултатите от общата формула LAMBDA са абсолютно същите като оригиналната формула, така че следващата стъпка е да дефинирате и наименувате тази формула LAMBDA с диспечера на имената, както е обяснено по-горе. Името, използвано за функция LAMBDA, може да бъде всяко валидно име на Excel. В този случай ще наречем формулата "SphereVolume".

Обратно в работния лист сме заменили родовата (неназована) формула LAMBDA с наименованата версия LAMBDA и въведохме B5 за r. Забележете, че резултатите, върнати от персонализираната функция SphereVolume, са абсолютно същите като предишните резултати.

Пример 3

В този пример ще създадем функция LAMBDA за броене на думи. Excel няма функция за тази цел, но можете да броите думи с клетка с персонализирана формула, базирана на функциите LEN и SUBSTITUTE по следния начин:

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

Прочетете подробно обяснение тук. Ето формулата в действие в работен лист:

Забележете, че получаваме грешен брой 1, когато формулата получава празна клетка (B10). Ще разгледаме този проблем по-долу.

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

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

Забележете, че "текст" се появява като първи аргумент, а изчислението е вторият и последен аргумент. На екрана по-долу сме заменили оригиналната формула с общата версия LAMBDA. Забележете, че използваме тестовия синтаксис, който ни позволява да включим B5 за текст:

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

Резултатите от общата формула LAMBDA са същите като оригиналната формула, така че следващата стъпка е да дефинирате и наименувате тази формула LAMBDA с диспечера на имената, както беше обяснено по-горе. Ще наречем тази формула "CountWords".

По-долу сме заменили родовата (неназована) формула LAMBDA с наименованата версия LAMBDA и въведохме B5 за текст. Забележете, че получаваме абсолютно същите резултати.

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

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

Коригиране на проблема с празните клетки

Както бе споменато по-горе, формулата по-горе връща неправилен брой 1, когато клетката е празна. Този проблем може да бъде отстранен чрез замяна на +1 с кода по-долу:

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

Пълно обяснение тук. За да актуализираме съществуващата формула с име LAMDA, отново трябва да използваме Name Manager:

  1. Отворете диспечера на имената
  2. Изберете името "CountWords" и кликнете "Редактиране"
  3. Заменете кода „Отнася се за“ с тази формула:

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

След като диспечерът на имената е затворен, CountWords работи правилно на празни клетки, както се вижда по-долу:

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

Интересни статии...