Məzmuna keç
Educora
İrəli22 dəq16 / 27

Dinamik massivlər: FILTER, SORT, UNIQUE, LET, LAMBDA

Bir düsturun bütöv cədvəl qaytardığı müasir Excel: nəticələrin «tökülməsi», FILTER, SORT, SORTBY, UNIQUE, SEQUENCE, həmçinin LET və LAMBDA ilə öz funksiyanı yaratmaq.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Tökülmə diapazonunu, # istinadını və #SPILL! səhvini başa düşmək
  • FILTER, SORT, SORTBY və UNIQUE ilə dinamik hesabatlar qurmaq
  • SEQUENCE ilə ardıcıllıqlar yaratmaq, LET ilə düsturu sadələşdirmək
  • LAMBDA ilə sadə adlı funksiya yaratmaq

Uzun illər Excel-də qayda sadə idi: bir düstur — bir xana. «Bakıdakı bütün sifarişləri ayrıca siyahıda göstər» kimi tapşırıq üçün filtr, köçürmə-yapışdırma və ya mürəkkəb massiv düsturları lazım idi. Microsoft 365-də isə dinamik massivlər var: bir düstur yazırsan, nəticə lazım olan qədər xanaya özü «tökülür» və mənbə dəyişəndə yenilənir.

Bu dərsdə eyni satış cədvəlindən istifadə edəcəyik. A1:D9: Seller, Region, Product, Amount başlıqları və 8 sifariş: Aysel (Baku, Laptop, 1200), Murad (Ganja, Phone, 650), Leyla (Baku, Phone, 700), Elvin (Sumgait, Laptop, 1100), Nigar (Baku, Tablet, 480), Rauf (Ganja, Laptop, 1250), Aysel (Baku, Tablet, 520), Murad (Ganja, Laptop, 1150). Məbləğlər manatladır.

Tökülmə (spill) və `#` operatoru

Tərif
Tökülmə diapazonu

Dinamik massiv düsturunun nəticəsinin tutduğu xanalar. Düstur yalnız ilk xanada yazılır, qalan xanalar mavi çərçivə ilə göstərilir və əl ilə dəyişdirilə bilməz.

  • F2-yə =UNIQUE(B2:B9) yaz — F2:F4-də Baku, Ganja, Sumgait görünür.
  • F2# bütün tökülmə diapazonuna istinaddır: =COUNTA(F2#) → 3. Yeni region əlavə olunsa, F2# da böyüyür.
  • G2-yə =SUMIF(B2:B9,F2#,D2:D9) yaz — bir düsturla üç cəm: 2900, 3050, 1100.
  • Köhnə iş kitabında düsturun qarşısında @ görsən, bu, «yalnız bir dəyər götür» (gizli kəsişmə) deməkdir.

Süzmə, sıralama, təkrarsız siyahı: FILTER, SORT, SORTBY, UNIQUE

DüsturNəticə (tökülür)
=FILTER(A2:D9,B2:B9="Baku")Bakının 4 sifarişi: Aysel 1200, Leyla 700, Nigar 480, Aysel 520
=FILTER(A2:D9,B2:B9="Shaki","Sifariş yoxdur")«Sifariş yoxdur» (3-cü arqument olmasa — #CALC!)
=SORT(A2:D9,4,-1)bütün cədvəl məbləğə görə azalan sıra ilə: Rauf 1250, Aysel 1200, Murad 1150…
=SORTBY(A2:A9,D2:D9,-1)yalnız adlar, amma məbləğə görə sıralanmış (sıralama sütunu nəticədə yoxdur)
=UNIQUE(A2:A9)6 satıcı: Aysel, Murad, Leyla, Elvin, Nigar, Rauf
=UNIQUE(A2:A9,,TRUE)yalnız bir dəfə görünənlər: Leyla, Elvin, Nigar, Rauf
=SORT(UNIQUE(C2:C9))Laptop, Phone, Tablet
=TAKE(SORT(A2:D9,4,-1),3)ən böyük 3 sifariş (Top-3)
FILTER-də bir neçə şərt

1) Bakıda 600 ₼-dan böyük sifarişləri göstər. 2) Gəncədəki bütün sifarişləri və ya istənilən regiondakı planşet (Tablet) sifarişlərini göstər.

Həllini göstər
FILTER-də AND və OR funksiyaları işləmir, çünki onlar bütöv massiv üçün bir TRUE/FALSE qaytarır. Əvəzində massivlər vurulur və toplanır: TRUE = 1, FALSE = 0.
1) VƏ = vurma: =FILTER(A2:D9,(B2:B9="Baku")*(D2:D9>600)) → Aysel 1200 və Leyla 700 (2 sətir).
2) VƏ YA = toplama: =FILTER(A2:D9,(B2:B9="Ganja")+(C2:C9="Tablet")) → Murad 650, Nigar 480, Rauf 1250, Aysel 520, Murad 1150 (5 sətir).
Hər mötərizə 8 elementli 1/0 massivi verir; nəticədə 0 olmayan sətirlər saxlanılır.
İnteraktiv
Simulyasiya yüklənir…
Satışlar regionlar üzrə: UNIQUE + COUNTIF/SUMIF nümunəsi (məşq cədvəli dinamik massivləri dəstəkləmir, ona görə siyahı əl ilə yazılıb).

SEQUENCE və LET

=SEQUENCE(rows, [columns], [start], [step])
burada:
  • rows, columnsneçə sətir və sütun doldurulsun (sütun standart olaraq 1)
  • start, stepbaşlanğıc dəyər və addım (hər ikisi standart olaraq 1)
  • =SEQUENCE(5) → 1, 2, 3, 4, 5 (sıra nömrələri üçün).
  • =SEQUENCE(3,4) → 3 × 4 blok, 1-dən 12-yə qədər.
  • =SEQUENCE(7,1,DATE(2026,9,28)) → 28.09.2026-dan başlayan bir həftəlik tarixlər (xanaları tarix formatında göstər).
  • =SEQUENCE(10,1,10,-1) → 10-dan 1-ə geri sayım.

LET düsturun içində dəyişənlər yaratmağa imkan verir: =LET(ad1, dəyər1, ad2, dəyər2, …, nəticə). Eyni hissə düsturda bir neçə dəfə təkrarlanırsa, o, yalnız bir dəfə hesablanır, düstur isə oxunaqlı olur.

Bakının orta sifarişi LET ilə

Bakı sifarişlərinin orta məbləğini tap. FILTER-i iki dəfə yazmadan, LET ilə.

Həllini göstər
LET-siz: =SUM(FILTER(D2:D9,B2:B9="Baku"))/COUNT(FILTER(D2:D9,B2:B9="Baku")) — FILTER iki dəfə hesablanır.
LET ilə: =LET(baku,FILTER(D2:D9,B2:B9="Baku"),SUM(baku)/COUNT(baku)).
baku = {1200; 700; 480; 520}, cəm 2900, say 4.
Nəticə: 2900 / 4 = 725 ₼.
İpucu: Alt+Enter ilə LET-in hər cütünü düstur sətrində yeni sətrə keçirmək olar.

LAMBDA: öz funksiyanı yarat

  1. 1
    Düsturu xanada sına

    =LAMBDA(price,vat,price*(1+vat))(100,0.18) yaz — sonda mötərizədə verilən arqumentlərlə nəticə 118 olur (18% ƏDV ilə qiymət).

  2. 2
    Ad ver

    Formulas › Defined Names › Name Manager › New pəncərəsini aç. Name: WITHVAT, Refers to: =LAMBDA(price,vat,price*(1+vat)). OK bas.

  3. 3
    Adi funksiya kimi işlət

    İndi iş kitabının istənilən yerində =WITHVAT(D2,18%) yaza bilərsən. Düsturu dəyişmək lazım olsa, yalnız Name Manager-də bir dəfə düzəldirsən.

Düstur sətrində yeni sətir (uzun LET düsturlarını oxunaqlı etmək üçün)Alt+Enter
Düstur sətrini genişləndir və ya yığCtrl+Shift+U
Köhnə massiv düsturu (yalnız Excel 2019 və əvvəlki versiyalarda lazımdır)Ctrl+Shift+Enter
Name Manager pəncərəsini aç (LAMBDA adları burada saxlanır)Ctrl+F3

Əsas fikirlər

  • Dinamik massiv düsturu bir xanada yazılır və nəticə qonşu xanalara tökülür; bütün nəticəyə F2# ilə istinad olunur.
  • #SPILL! — yolda maneə var, birləşdirilmiş xana var və ya düstur Excel cədvəlinin içindədir.
  • FILTER-də VƏ şərti *, VƏ YA şərti + ilə yazılır; 3-cü arqument boş nəticəni idarə edir.
  • SORT sütun nömrəsinə, SORTBY isə başqa diapazona görə sıralayır; UNIQUE təkrarları silir.
  • LET dəyişən yaradır, LAMBDA isə Name Manager vasitəsilə öz adlı funksiyanı yaratmağa imkan verir.

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
F2-dəki =UNIQUE(B2:B9) nəticəsinin hamısına necə istinad olunur?