Funkcja arkuszowa SumIf()

Funkcja WorksheetFunction.SumIf() to jedna z funkcji matematycznych  VBA w Excelu. Wynikiem jej działania jest suma z zakresu komórek spełniajacych określone kryterium.

kliknij, aby powiększyć

Argumenty funkcji to:

    • Arg1 – zakres komórek, dla których sprawdzamy kryterium wyszukiwania. Argument obowiązkowy
    • Arg2 -wartość lub kryterium, która musi być spełnione, aby  komórka była wliczona do sumowania . Argument obowiązkowy.
    • Arg3 – zakres komórek dla których obliczamy sumę. Argument opcjonalny. Wartością domyślną jest tu zakres komórek wprowadzony w Arg1.

Opcjonalny Arg3 stosuje się w tych przypadkach, gdy w jednym zakresie wyszukujemy komórek spełniający kryterium  Arg2, a w innym – obliczamy sumę. Warunkiem koniecznym jest jednakowa liczba komórek w obydwu zakresach.

W praktyce może to wyglądać np. tak:

Przykładowe zastosowania funkcji w kodzie VBA to:

Sub MojeStatystyki()
Dim a As Double
’Suma brutto dla Używek
a = WorksheetFunction.SumIf(Range(„Arkusz15!C2:C14”), „Używki”, Range(„Arkusz15!F2:F14”))
’Suma netto artykułów objętych stawką mniejszą niż 8%
a = WorksheetFunction.CountIf(Zakres, „<” & Range(„Arkusz4!C1”))
’Suma netto artykułów objętych stawką mniejszą niż 8%
a = WorksheetFunction.SumIf(Range(„Arkusz15!E2:E14”), „<8%”, Range(„Arkusz15!D2:D4”))
End Sub

Odpowiednikiem funkcji w Excelu jest funkcja Suma.Jeżeli()


Kurs Programowanie VBA w Excelu 365 od podstaw

 

Funkcja Suma.Jeżeli()

Funkcja Suma.Jeżeli to jedna z funkcji matematycznych Excela. Wynikiem jej działania jest liczba sumą komórek spełniających dane kryterium.

kliknij, aby powiększyć

Argumenty funkcji to:

    • Zakres – zakres komórek dla których jest sprawdzane kryterium. Argument obowiązkowy.
    • Kryteria -wartość lub kryterium, która musi być spełnione, aby  komórka była zliczona . Argument obowiązkowy.
    • Suma_zakres – zakres komórek z tego samego wiersza, gdzie znajdują się wartości do zsumowania. Jest to argument opcjonalny, wartością domyślną jest ten sam zakres komórek, co argument Zakres.

Zobaczmy to na podstawie prostej tabeli:

kliknij, aby powiększyć

 

Chcą policzyć ile razy występuje jakaś wartość, możemy zdefiniować kryterium np. jako:

    •  suma netto wartości <5zł
      =SUMA.JEŻELI(D2:D14;”<5″)
      Tu warto zauważyć, że po wpisaniu <5 – Excela automatycznie ustawia kryterium jako String dodając znak cudzysłowu
    • z odwołaniem do innej komórki np.H1
      ==SUMA.JEŻELI(D2:D14;H1)
    • suma brutto artykułów z kategorii Tłuszcze
      ==SUMA.JEŻELI(C2:C14;”Tłuszcze”;F2:F14)
      Zakres warunków do wyszukiwania różni się od zakresu wartości sumowanych – obydwa zakresy muszą zawierać tę samą ilość komórek
    • z użyciem symboli wieloznacznych – np.artykuły zartykuły kończące się na literę „a”.
      =SUMA.JEŻELI(B2:B14;”*a”;F2:F14)

Odpowiednikiem funkcji w kodzie VBA jest funkcja arkuszowa SumIf.


 

Funkcja arkuszowa CountIf()

Funkcja WorksheetFunction.CountIf() to jedna z funkcji statystycznych Excela. Wynikiem jej działania jest liczba określająca ilość komórek spełniających dane kryterium.

kliknij, aby powiększyć

Argumenty funkcji to:

    • Arg1 – zakres komórek, z której chcemy uzyskać wynik. Argument obowiązkowy
    • Arg2 -wartość lub kryterium, która musi być spełnione, aby  komórka była zliczona . Argument obowiązkowy.

A jak to wygląda w praktyce? Na przykład  na podstawie prostej tabeli:

kliknij, aby powiększyć

Przykładowe zastosowania funkcji w kodzie VBA to:

Sub MojeStatystyki()
Dim Zakres As Range
Dim a As Double
’Przypisanie zakresu komórek do zmiennej
Set Zakres = Range(„Arkusz4!A2:B13”)
’Liczba komórek równych 15
a = WorksheetFunction.CountIf(Zakres, 15)
’Liczba komórek równych mniejszych od wartości komórki C1
a = WorksheetFunction.CountIf(Zakres, „<” & Range(„Arkusz4!C1”))
’Liczba komórek zaczynającaych się na literę s
a = WorksheetFunction.CountIf(Zakres, „s*”)
’zwolnienie pamięci
Set Zakres = Nothing
End Sub

Odpowiednikiem funkcji w Excelu jest funkcja Licz.Jeżeli()


Kurs Programowanie VBA w Excelu 365 od podstaw

 

Funkcja Licz.Jeżeli()

Funkcja Licz.Jeżeli to jedna z funkcji statystycznych Excela. Wynikiem jej działania jest liczba określająca ilość rekordów spełniająca dane kryterium.


Argumenty funkcji to:

    • Zakres – zakres komórek, z której chcemy uzyskać wynik. Argument obowiązkowy
    • Kryteria -wartość lub kryterium, która musi być spełnione, aby  komórka była zliczona . Argument obowiązkowy.

Wartość kryterium może przybierać różne formy.
Zobaczmy to na podstawie prostej tabeli:

kliknij, aby powiększyć

Chcą policzyć ile razy występuje jakaś wartość, możemy zdefiniować kryterium np. jako:

    •  pojedyncza wartość np.15
      =LICZ.JEŻELI(B2:B13;15)
    • odwołanie do innej komórki np.C1
      =LICZ.JEŻELI(B2:B13;C1)
    • zakres wartości
      =LICZ.JEŻELI(B2:B13;”<0″)
      Tu warto zauważyć, że po wpisaniu <0 – Excela automatycznie ustawia kryterium jako String dodając znak cudzysłowu
    • zakres wartości z odwołaniem do komórki np.C1
      =LICZ.JEŻELI(B2:B13;”<” & C1)
      Tu też warto zauważyć, że po wpisaniu <C1 (nawet jeżeli wprowadzimy adres komórki klikając na nią w arkuszu)  – Excel automatycznie ustawia kryterium jako String dodając znak cudzysłowu i otrzymuje „<C1”. To niestety błąd i funkcja zwróci błędny wynik. Trzeba to zrobić tak:
      „<> & C1
    • symbole wieloznaczne w odniesieniu do komórek zwierających tekst
      =LICZ.JEŻELI(A2:A13;”*e*”)
      wskazuje ilość komórek w kolumnie A zawierających literę e

Odpowiednikiem funkcji w kodzie VBA jest funkcja arkuszowa CountIf.


 

Zdarzenie skoroszytu przez wydrukiem

Procedura BeforePrint to jedno ze  zdarzeń skoroszytu (czyli procedur uruchamianych automatycznie) . Tak, jak i inne tego typu zdarzenia, znajduje się w module skoroszytu.

kliknij, aby powiększyć

Procedura Workbook_BeforePrint(Cancel as Boolean) jest uruchamiana automatycznie zawsze przed wydrukiem. Może służyć np. do zmiany formatowania, ukrycia niektórych obiektów, przeliczenia itp.
Procedura ta ma jeden argument:

    • Cancel – typu Boolean. Jest opcjonalny, wartość domyślna to Fałsz.
      Przypisanie w procedurze wartości Prawda – działa tak jak przycisk Anuluj – czyli wydruk zostanie anulowany

Można w ten sposób np. zabezpieczyć jakiś arkusz/arkusze (także wszystkie) przed wydrukiem.


Kurs Excel programowanie w VBA