SUBTOTAL IF Formula - Excel și Foi de calcul Google

Descărcați Exemplu de registru de lucru

Descărcați exemplul de registru de lucru

Acest tutorial va demonstra cum se calculează „subtotalul dacă”, numărând doar rândurile vizibile cu criterii.

Funcția SUBTOTAL

Funcția SUBTOTAL poate efectua diverse calcule pe o gamă de date (număr, sumă, medie etc.). Cel mai important, poate fi folosit pentru a calcula numai rândurile vizibile (filtrate). În acest exemplu, vom folosi funcția de numărare (COUNTA) rânduri vizibile prin setarea argumentului SUBTOTAL function_num la 3 (O listă completă a funcțiilor posibile poate fi găsită aici.)

= SUBTOTAL (3, $ D $ 2: $ D $ 14)

Observați cum se modifică rezultatele pe măsură ce filtrăm manual rândurile.

SUBTOTAL DACĂ

Pentru a crea un „Subtotal Dacă”, vom folosi o combinație de SUMPRODUCT, SUBTOTAL, OFFSET, ROW și MIN într-o formulă matrice. Folosind această combinație, putem crea în esență o funcție generică „SUBTOTAL IF”. Să parcurgem un exemplu.

Avem o listă a membrilor și statutul de prezență al acestora pentru fiecare eveniment:

Se presupune că ni se cere să numărăm numărul membrilor care au participat la un eveniment dinamic, deoarece filtrăm manual lista astfel:

Pentru a realiza acest lucru, putem folosi această formulă:

= SUMPRODUCT ((=) * (SUBTOTAL (3, OFFSET (, ROW () - MIN (ROW ()), 0))))
= SUMPRODUCT ((D2: D14 = "Participat") * (SUBTOTAL (3, OFFSET (D2, ROW (D2: D14) -MIN (ROW (D2: D14)), 0))))

Când utilizați Excel 2022 și versiunile anterioare, trebuie să introduceți formula matrice apăsând CTRL + SHIFT + ENTER pentru a spune Excel că introduceți o formulă matrice. Veți ști că formula a fost introdusă corect ca o formulă matrice atunci când parantezele crețate apar în jurul formulei (a se vedea imaginea de mai sus).

Cum funcționează formula?

Formula funcționează prin înmulțirea a două matrice în interiorul SUMPRODUCT, unde prima matrice tratează criteriile noastre și a doua matrice filtrează numai rândurile vizibile:

= SUMPRODUCT (*)

Matricea de criterii

Matricea de criterii evaluează fiecare rând din intervalul nostru de valori (Starea „Participat” în acest exemplu) și generează un tablou de genul acesta:

=(=)
= (D2: D14 = "Participat")

Ieșire:

{ADEVĂRAT; FALS; FALS; ADEVĂRAT; FALS; TURE; TURE; TURE; FALS; FALS; ADEVĂRAT; FALS; ADEVĂRAT}

Rețineți că ieșirea din prima matrice din formula noastră ignoră dacă rândul este vizibil sau nu, acesta este locul în care a doua matrice vine în ajutor.

Matricea de vizibilitate

Folosind SUBTOTAL pentru a exclude rândurile nevizibile din gama noastră, putem genera matricea noastră de vizibilitate. Cu toate acestea, SUBTOTAL singur va returna o singură valoare, în timp ce SUMPRODUCT așteaptă o serie de valori. Pentru a rezolva acest lucru, folosim OFFSET pentru a trece un rând la rând. Această tehnică necesită alimentarea cu OFFSET a unui tablou care conține un număr la un moment dat. A doua matrice arată astfel:

= SUBTOTAL (3, OFFSET (, ROW () - MIN (ROW ()), 0))
= SUBTOTAL (3, OFFSET (D2, ROW (D2: D14) -MIN (ROW (D2: D14)), 0))

Ieșire:

{1;1;0;0;1;1}

Îmbinându-i pe cei doi:

= SUMPRODUCT ({TRUE; TRUE; FALSE; FALSE; TRUE; TRUE} * {1; 1; 0; 0; 1; 1})
= 4

SUBTOTAL IF cu criterii multiple

Pentru a adăuga mai multe criterii, pur și simplu să multiplicați mai multe criterii împreună în SUMPRODUCT, astfel:

= SUMPRODUCT ((=) * (=) * (SUBTOTAL (3, OFFSET (, ROW () - MIN (ROW ()), 0))))
= SUMPRODUCT ((E2: E14 = "Participat") * (B2: B14 = 2019) * (SUBTOTAL (3, OFFSET (E2, ROW (E2: E14) -MIN (ROW (E2: E14)), 0)) )))

SUBTOTAL DACĂ în Foi de calcul Google

Funcția SUBTOTAL IF funcționează exact la fel în Foi de calcul Google ca în Excel:

wave wave wave wave wave