Asosiy kontentga o‘tish
Innovialabs

Excel’da LET va LAMBDA: VBA’siz o‘z funksiyalaringiz

Chuqur3 daq

Qisqacha

LET formula ichidagi oraliq qiymatlarga nom beradi, LAMBDA esa formulani nom bilan saqlab, SUM kabi chaqiriladigan o‘z funksiyangizga aylantiradi — makros va VBA’siz.

LET va LAMBDA nima qiladi

  • LET formula ichida o‘zgaruvchilar beradi: qiymat bir marta hisoblanadi va keyin nomi bilan ishlatiladi.
  • LAMBDA parametrli funksiyani tasvirlaydi. Uni Name Manager’da saqlasangiz, =MARGIN(B2,C2) kabi kitobning o‘z funksiyasiga ega bo‘lasiz.
  • MAP, REDUCE, BYROW LAMBDA’ni qabul qilib, uni massivlarga qo‘llaydi — element bo‘yicha, qator bo‘yicha yoki yig‘ib borish bilan.

Bu funksiyalar Microsoft 365 va veb uchun Excel’da mavjud; eski versiyalarda LAMBDA bo‘lmasligi mumkin — unda #NAME? xatosini ko‘rasiz. Google Sheets ham ularning barchasini qo‘llab-quvvatlaydi.

Misollarda argumentlar vergul bilan ajratilgan. Ba’zi mintaqaviy sozlamalarda Excel nuqtali vergul ishlatadi.

LET: uzun formula o‘qiladigan bo‘ladi

Odatiy muammo — bitta bo‘lak formulada bir necha marta takrorlanadi. Masalan, mijoz bo‘yicha marja:

=IF(SUMIFS(C:C,A:A,F2)=0,0,(SUMIFS(C:C,A:A,F2)-SUMIFS(D:D,A:A,F2))/SUMIFS(C:C,A:A,F2))

LET bilan:

=LET(
  rev,  SUMIFS(C:C, A:A, F2),
  cost, SUMIFS(D:D, A:A, F2),
  IF(rev = 0, 0, (rev - cost) / rev)
)

Afzalliklari: har bir SUMIFS bir marta hisoblanadi, mantiq darhol ko‘rinadi, bitta shartni o‘zgartirish uchun barcha nusxalarni qidirish shart emas. LET’ning oxirgi argumenti — doim yakuniy hisob.

LAMBDA: uch qadamda o‘z funksiyangiz

  1. LAMBDA’ni katakda yozing va darhol chaqirib tekshiring: =LAMBDA(rev, cost, IF(rev=0, 0, (rev-cost)/rev))(C2, D2)
  2. Formulas → Name Manager → New ni oching, MARGIN nomini bering va «Refers to» maydoniga formulani oxiridagi chaqiruvsiz qo‘ying.
  3. Kitobning istalgan katagida ishlating: =MARGIN(C2, D2).

LAMBDA ichida LET ishlatish mumkin, nomlangan LAMBDA esa o‘zini o‘zi chaqira oladi — rekursiya shunday quriladi, masalan matndagi almashtirishlar ro‘yxatini ketma-ket qo‘llash uchun.

LAMBDA’ni katakka chaqiruvsiz kiritsangiz, Excel #CALC! qaytaradi. Argumentlar soni noto‘g‘ri bo‘lsa — #VALUE!.

MAP, REDUCE va BYROW amalda

MAP — funksiyani har bir elementga qo‘llash:

=MAP(A2:A100, LAMBDA(x, PROPER(TRIM(x))))

Butun ustun uchun ortiqcha bo‘shliqlarni olib tashlaydi va ismlarni bosh harf bilan yozadi.

BYROW — har bir qator uchun bitta qiymat:

=BYROW(B2:E50, LAMBDA(r, MAX(r) - MIN(r)))

Har bir qatordagi ko‘rsatkichlar oralig‘i. Ichki funksiya massiv emas, bitta qiymat qaytarishi kerak.

REDUCE — natijani yig‘ib borish:

=REDUCE(0, B2:B200, LAMBDA(acc, s, acc + IF(s > H1, s * H2, s * H3)))

Stavka H1’dagi chegaraga bog‘liq bo‘lgan komissiya summasi, stavkalar H2 va H3’da. acc — yig‘uvchi, 0 — uning boshlang‘ich qiymati. Oraliq natijalar kerak bo‘lsa, xuddi shu mantiq bilan SCAN dan foydalaning.

Google Sheets’dagi muqobillar

ExcelGoogle Sheets
LET, LAMBDA, MAP, REDUCE, BYROW, BYCOL, SCANxuddi shu funksiyalar
Name Manager + LAMBDAData → Named functions

Google Sheets’da nomlangan funksiya alohida panelda yaratiladi: nom, argument o‘rinbosarlari va formula ta’rifini kiritasiz. Uni LAMBDA bilan o‘rash kerak emas — argumentlar formulada nomi bilan ishlatiladi. Nomlangan funksiyalarni boshqa jadvaldan import qilish mumkin.

Ko‘p uchraydigan xatolar

  • MAP yoki BYROW ichida butun ustunga havola — funksiya million bo‘sh qatordan o‘tadi va sekinlashadi. Diapazonni cheklang yoki jadvallardan foydalaning.
  • Nomlangan funksiyada tavsif yo‘q — yarim yildan keyin u nima qilishini hech kim eslamaydi. Izoh maydonini to‘ldiring.
  • Murakkab mantiqni qismlarga bo‘lib tekshirmaslik. Avval LAMBDA’ni katakda to‘g‘ridan-to‘g‘ri chaqirib sozlang, keyin saqlang.
  • Funksiya barcha fayllarda paydo bo‘lishini kutish. Nomlangan LAMBDA bitta kitob ichida yashaydi; ko‘chirish uchun varaqni nusxalang yoki Excel Labs qo‘shimchasidan foydalaning.

Ko‘p beriladigan savollar

Hisob-kitoblar uchun ko‘p jihatdan ha: ular veb uchun Excel’da ishlaydi, makrosli fayl talab qilmaydi va xavfsizlik siyosatlari tomonidan bloklanmaydi. Fayllar, xatlar yoki interfeys bilan ishlash uchun esa hamon VBA, Office Scripts yoki tashqi avtomatlashtirish kerak.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.