Excel to potężne oprogramowanie, które zostało stworzone tak, by obsługiwać ponad 450 gotowych funkcji oraz tysiące innych procesów. Wszystko to  można łączyć w naprawdę złożone i wydajne formuły. Czasami jednak zdarza się, że chcemy skorzystać z konkretnej funkcji, której w Excelu po prostu nie ma. Bo, choć twórcy Excela świetnie przewidzieli wiele potrzeb użytkowników, nie są w stanie przewidzieć ich wszystkich.

Funkcje zdefiniowane przez użytkownika (UDF) stanowią sposób na rozwiązanie tego problemu. Jest to umiejętność na poziomie średniozaawansowanym do zaawansowanego. Być może na co dzień nie wykonujesz bardzo skomplikowanych zadań w Excelu, ale nigdy nie wiesz, kiedy znajomość tych procesów może Ci się przydać. Czytaj dalej, aby dowiedzieć się więcej o tym, kiedy, dlaczego i jak tworzyć funkcje niestandardowe w Excelu.

Dostępni najlepsi nauczyciele Excel
Ireneusz
5
5 (27 ocen(y))
Ireneusz
120 zł
/h
Gift icon
1-sza lekcja za darmo!
Adrian
5
5 (17 ocen(y))
Adrian
100 zł
/h
Gift icon
1-sza lekcja za darmo!
Michał
5
5 (19 ocen(y))
Michał
85 zł
/h
Gift icon
1-sza lekcja za darmo!
Kamil
5
5 (12 ocen(y))
Kamil
80 zł
/h
Gift icon
1-sza lekcja za darmo!
Krzysztof
5
5 (12 ocen(y))
Krzysztof
120 zł
/h
Gift icon
1-sza lekcja za darmo!
Monika
5
5 (12 ocen(y))
Monika
119 zł
/h
Gift icon
1-sza lekcja za darmo!
Magdalena
5
5 (10 ocen(y))
Magdalena
90 zł
/h
Gift icon
1-sza lekcja za darmo!
Andrzej
5
5 (4 ocen(y))
Andrzej
59 zł
/h
Gift icon
1-sza lekcja za darmo!
Ireneusz
5
5 (27 ocen(y))
Ireneusz
120 zł
/h
Gift icon
1-sza lekcja za darmo!
Adrian
5
5 (17 ocen(y))
Adrian
100 zł
/h
Gift icon
1-sza lekcja za darmo!
Michał
5
5 (19 ocen(y))
Michał
85 zł
/h
Gift icon
1-sza lekcja za darmo!
Kamil
5
5 (12 ocen(y))
Kamil
80 zł
/h
Gift icon
1-sza lekcja za darmo!
Krzysztof
5
5 (12 ocen(y))
Krzysztof
120 zł
/h
Gift icon
1-sza lekcja za darmo!
Monika
5
5 (12 ocen(y))
Monika
119 zł
/h
Gift icon
1-sza lekcja za darmo!
Magdalena
5
5 (10 ocen(y))
Magdalena
90 zł
/h
Gift icon
1-sza lekcja za darmo!
Andrzej
5
5 (4 ocen(y))
Andrzej
59 zł
/h
Gift icon
1-sza lekcja za darmo!
Zaczynajmy

Czym jest funkcja zdefiniowana przez użytkownika (UDF)?

Funkcja zdefiniowana przez użytkownika w programie Excel to dokładnie to, na co wskazuje nazwa: niestandardowa funkcja, którą tworzysz w programie Excel w celu wykonania określonej przez ciebie operacji.

Podobnie jak funkcja SUMA, która nakazuje programowi Excel zsumować wartości znajdujące się w nawiasach, tak samo twoja funkcja UDF nakazuje programowi Excel wykonać obliczenie lub zadanie.

Jak korzystać z formuł w programie Excel

Funkcje i formuły programu Excel sprawiają, że korzystanie z programu jest znacznie bardziej wydajne, skuteczne i ogólnie łatwiejsze.

Formuły mogą zawierać funkcje, które wykonują określone obliczenia. W programie Excel warto korzystać z powtarzalnych formuł i funkcji. Usprawnia to przetwarzanie danych i obliczeń, a także pomaga zdobyć większe doświadczenie w korzystaniu z setek dostępnych funkcji.

Na przykład zamiast ręcznie wpisywać formułę do obliczania średniej z zestawu danych, należy korzystać z funkcji ŚREDNIA.

Znacznie upraszcza to całą operację oraz zajmuje mniej czasu i pamięci w skoroszycie.

Funkcje zdefiniowane przez użytkownika (UDF) pozwalają tworzyć własne funkcje z formułami niezbędnymi do osiągnięcia konkretnego celu.

Cechy funkcji UDF

Funkcje UDF różnią się od wbudowanych funkcji programu Excel tym, można je skonfigurować tak, aby działały zgodnie z potrzebami konkretnych danych. Wbudowane funkcje programu Excel są przeznaczone do ogólnego zastosowania, dzięki czemu są przydatne dla szerokiego grona użytkowników, ale nie sprawdzają się w przypadku danych o bardzo specyficznych wymaganiach.

Widok z góry na spotkanie biznesowe. Uścisk dłoni, laptopy, dokumenty, kawa i materiały biurowe na białym drewnianym stole.

Oto niektóre korzyści wynikające z używania funkcji UDF.

Funkcjonalność niestandardowa

Funkcje UDF pozwalają użytkownikom tworzyć własne, niestandardowe funkcje w celu wykonywania konkretnych obliczeń lub operacji, które nie są obsługiwane przez wbudowane funkcje programu Excel.

Dostęp do modelu obiektowego programu Excel

Kod VBA używany do tworzenia UDF może korzystać z obiektów Excela, takich jak komórki, arkusze i skoroszyty. Umożliwia to użytkownikom manipulowanie danymi programu Excel oraz wykonywanie złożonych obliczeń w ramach własnych funkcji.

Składnia i sposób użycia

Po zdefiniowaniu funkcji UDF można z niej korzystać w formułach programu Excel tak samo, jak z każdej innej wbudowanej funkcji. Użytkownicy mogą wpisać funkcję UDF do komórki, podając wymagane argumenty, a funkcja zwróci obliczony wynik.

Aby korzystać z funkcji UDF, trzeba najpierw umieścić jej kod w module VBA, a następnie zapisać skoroszyt w formacie obsługującym makra, na przykład jako plik .xlsm.

Dopiero wtedy funkcję można wywoływać w komórkach Excela tak samo jak inne funkcje.

Kod wielokrotnego użytku

Funkcje UDF sprzyjają ponownemu wykorzystaniu kodu. Po utworzeniu funkcji niestandardowej można z niej korzystać w wielu arkuszach lub skoroszytach, co zapewnia spójny i wydajny sposób wykonywania określonych obliczeń.

beenhere
Uwaga dotycząca korzystania z języka VBA w programie Excel dla sieci Web

W momencie pisania tego artykułu (lipiec 2026 r.) aplikacja Excel Online w usłudze OneDrive nie pozwala użytkownikom na przejście do trybu programisty. Aby uzyskać dostęp do trybu programisty, należy skorzystać z wersji programu Excel na komputery stacjonarne.

Czym jest Visual Basic for Applications (VBA)?

Visual Basic for Applications to język programowania używany w programie Excel do tworzenia między innymi funkcji zdefiniowanych przez użytkownika (UDF). Kod VBA edytuje się w edytorze VBE (Visual Basic Editor).

Aby z powodzeniem wykorzystywać VBA do tworzenia funkcji UDF, należy zapoznać się z pewnymi zasadami składni. Podobnie jak w przypadku korzystania z języków programowania, takich jak CSS, istnieją określone słowa i polecenia, które należy znać, aby nakazać kodowi wykonanie zamierzonej funkcji.

Osoba korzystająca z laptopa z arkuszami kalkulacyjnymi i wykresami, relaksująca się na leżaku przy basenie.

Zapoznaj się z tym skróconym przewodnikiem po VBA, zawierającym niektóre z najczęściej używanych poleceń programu Excel dla języka VBA.

⌨️ Polecenie VBA✨ Znaczenie🪄 Przykład użycia
SubRozpoczyna procedurę makra.Sub Przyklad()
End SubKończy procedurę makra.End Sub
FunctionRozpoczyna definicję funkcji UDF.Function SumaDwochLiczb()
End FunctionKończy definicję funkcji.End Function
DimDeklaruje zmienną.Dim suma As Double
AsOkreśla typ danych zmiennej.Dim wiek As Integer
If...ThenWykonuje instrukcję, jeśli warunek jest spełniony.If A1 > 0 Then
ElseOkreśla alternatywną ścieżkę działania.Else
For...NextTworzy pętlę powtarzającą czynność.For i = 1 To 10
MsgBoxWyświetla komunikat w oknie dialogowym.MsgBox "Gotowe"
RangeOdnosi się do zakresu komórek.Range("A1").Value = 10
CellsOdnosi się do konkretnej komórki po numerze wiersza i kolumny.Cells(1, 1).Value = 10

Jak utworzyć funkcję UDF w programie Excel

Jak więc w praktyce utworzyć własną funkcję UDF w programie Excel? Zanim zaczniesz, powinieneś znać zasady pisania formuł w programie Excel oraz podstawy języka VBA.

Krok 1: Otwórz edytor języka Visual Basic for Applications (VBA)

Naciśnij klawisze Alt + F11 (Windows) lub Opt + F11 lub Fn + Opt + F11 (Mac), aby otworzyć edytor VBA w programie Excel. Alternatywnie możesz przejść do karty „Programista” i kliknąć opcję „Visual Basic”.

Jeśli zakładka „Programista” nie jest widoczna na pasku narzędzi, przejdź do Plik > Opcje > Dostosuj wstążkę > zaznacz pole po prawej stronie obok opcji „Programista”.

Krok 2: Wstaw nowy moduł

W edytorze VBA kliknij prawym przyciskiem myszy dowolny element w oknie „Eksplorator projektu” (zwykle po lewej stronie), najedź kursorem na opcję „Wstaw” i wybierz „Moduł”.

Krok 3: Napisz kod funkcji UDF

W oknie modułu możesz zacząć pisać swoją funkcję UDF w języku programowania VBA. Oto kilka podstawowych zasad:

Kod musisz rozpocząć od słowa „Function”, aby VBA rozpoznało, że to, co napiszesz po nim, stanowi funkcję.
Następnie nadaj nazwę funkcji. Może to być dowolna nazwa, o ile nie jest już używana przez inną funkcję, a przy nazywaniu funkcji stosuj konwencję camel-case zamiast spacji.
Bezpośrednio po nazwie funkcji wprowadź argumenty, które chcesz umieścić w formule, w nawiasach.
Dodaj uwagi do kodu, rozpoczynając wiersz od pojedynczego cudzysłowu/apostrofu. Uwagi te nie mają wpływu na działanie kodu, ale służą jako notatki dla Ciebie samego.
Zdefiniuj wszelkie inne zmienne i obiekty niezbędne do działania kodu.
Zakończ sekcję wyrażeniem „End Function”.

Jeśli po naciśnięciu klawisza Enter/Return w celu przejścia do następnego wiersza wiersz kodu zostanie podświetlony, oznacza to, że wystąpił błąd składniowy, który należy naprawić.

beenhere
Podstawy języka VBA

Instrukcja w języku Visual Basic stanowi kompletną pozycję. Może zawierać słowa kluczowe, operatory, zmienne, stałe i wyrażenia. W języku VBA występują trzy różne rodzaje instrukcji: deklaracyjne, przypisujące i wykonawcze.

Krok 4: Zapisz skoroszyt

Zapisz skoroszyt programu Excel z rozszerzeniem pliku obsługującym makra (np. .xlsm), aby zapewnić możliwość zapisania w nim kodu VBA.

Krok 5: Użyj funkcji zdefiniowanej przez użytkownika w programie Excel

Wróć do swojego skoroszytu programu Excel. W dowolnej komórce możesz teraz używać swojej funkcji niestandardowej tak samo, jak każdej innej funkcji programu Excel.

Gratulacje! Teraz masz własną funkcję, dostosowaną do twoich potrzeb obliczeniowych.

Dostępni najlepsi nauczyciele Excel
Ireneusz
5
5 (27 ocen(y))
Ireneusz
120 zł
/h
Gift icon
1-sza lekcja za darmo!
Adrian
5
5 (17 ocen(y))
Adrian
100 zł
/h
Gift icon
1-sza lekcja za darmo!
Michał
5
5 (19 ocen(y))
Michał
85 zł
/h
Gift icon
1-sza lekcja za darmo!
Kamil
5
5 (12 ocen(y))
Kamil
80 zł
/h
Gift icon
1-sza lekcja za darmo!
Krzysztof
5
5 (12 ocen(y))
Krzysztof
120 zł
/h
Gift icon
1-sza lekcja za darmo!
Monika
5
5 (12 ocen(y))
Monika
119 zł
/h
Gift icon
1-sza lekcja za darmo!
Magdalena
5
5 (10 ocen(y))
Magdalena
90 zł
/h
Gift icon
1-sza lekcja za darmo!
Andrzej
5
5 (4 ocen(y))
Andrzej
59 zł
/h
Gift icon
1-sza lekcja za darmo!
Ireneusz
5
5 (27 ocen(y))
Ireneusz
120 zł
/h
Gift icon
1-sza lekcja za darmo!
Adrian
5
5 (17 ocen(y))
Adrian
100 zł
/h
Gift icon
1-sza lekcja za darmo!
Michał
5
5 (19 ocen(y))
Michał
85 zł
/h
Gift icon
1-sza lekcja za darmo!
Kamil
5
5 (12 ocen(y))
Kamil
80 zł
/h
Gift icon
1-sza lekcja za darmo!
Krzysztof
5
5 (12 ocen(y))
Krzysztof
120 zł
/h
Gift icon
1-sza lekcja za darmo!
Monika
5
5 (12 ocen(y))
Monika
119 zł
/h
Gift icon
1-sza lekcja za darmo!
Magdalena
5
5 (10 ocen(y))
Magdalena
90 zł
/h
Gift icon
1-sza lekcja za darmo!
Andrzej
5
5 (4 ocen(y))
Andrzej
59 zł
/h
Gift icon
1-sza lekcja za darmo!
Zaczynajmy

Przykładowe funkcje niestandardowe, które można dodać do arkuszy programu Excel

Dlaczego warto utworzyć funkcję niestandardową (UDF)? Przykłady funkcji niestandardowych obejmują złożone obliczenia finansowe, analizy statystyczne lub specjalistyczne operacje na danych. Są to rodzaje obliczeń, których projektanci Excela nie mogli przewidzieć, dlatego konieczne jest utworzenie własnej funkcji do przetwarzania danych.

Dlaczego warto stworzyć funkcję UDF?

Istnieje wiele sytuacji, w których funkcja UDF może okazać się przydatnym narzędziem. Oto tylko kilka powodów, dla których warto nauczyć się tworzyć i programować funkcje UDF za pomocą języka VBA w programie Excel.

Specjalistyczne obliczenia

Obliczanie unikalnego wskaźnika finansowego lub niestandardowej miary statystycznej dostosowanej do konkretnych parametrów, których nie obejmują standardowe funkcje programu Excel. Na przykład może zaistnieć potrzeba obliczenia konkretnego wskaźnika rentowności lub niestandardowego wskaźnika oceny ryzyka dostosowanego do konkretnej branży.

Przekształcanie i czyszczenie danych

Czyszczenie i przekształcanie danych w określony sposób, który nie jest łatwy do osiągnięcia za pomocą wbudowanych funkcji. Funkcję UDF można zaprojektować tak, aby obsługiwała złożone zadania związane z czyszczeniem danych, takie jak usuwanie duplikatów, formatowanie ciągów znaków lub wykonywanie specjalistycznych operacji na tekście.

Mężczyzna w dżinsowej koszuli zrelaksowany i uśmiechnięty siedzi przy biurku z komputerem, podczas gdy w tle rozmawia dwóch jego współpracowników w nowoczesnym biurze.

Formuły branżowe

W branżach takich jak inżynieria czy nauka może zaistnieć potrzeba wykonania specjalistycznych obliczeń charakterystycznych dla danej dziedziny. Można utworzyć funkcję UDF w celu obliczania złożonych wzorów inżynierskich lub równań naukowych, które nie są łatwo dostępne w standardowych funkcjach programu Excel.

Automatyzacja złożonych zadań

Automatyzacja serii skomplikowanych zadań lub analiz wymagających wielu etapów. Funkcję UDF można utworzyć w celu usprawnienia i zautomatyzowania tych zadań, co pozwala zaoszczędzić czas i zmniejszyć prawdopodobieństwo wystąpienia błędów. Mogą to być na przykład złożone modelowanie finansowe, analizy scenariuszy lub procesy przetwarzania danych.

Niestandardowe raportowanie i analiza

Generowanie niestandardowych raportów o określonym formatowaniu, układzie lub treści. Funkcja UDF może stanowić część większego systemu, który ułatwia tworzenie dostosowanych do potrzeb raportów w oparciu o parametry zdefiniowane przez użytkownika.

Osoba pracująca na laptopie, na którego ekranie widoczny jest arkusz kalkulacyjny z danymi, lista zadań do wykonania, zeszyty, rośliny oraz przytulne tło biurowe.
Źródło: Unsplash - Gorilla ROI Data Connector

Jak wygląda funkcja UDF w języku VBA

Oto przykład funkcji UDF napisanej w języku VBA. Kod ten służy do zsumowania wszystkich kwot w złotówkach w danym zakresie danych, a następnie podzielenia ich przez 12 w celu uzyskania miesięcznej raty niezbędnej do spłaty całej kwoty w ciągu jednego roku. Należy pamiętać, że jest to niezwykle prosty przykład, który ma być przystępny i łatwy do zrozumienia dla początkujących. Prawdopodobnie nie będziesz potrzebować dokładnie tej funkcji do swoich celów finansowych, ale jej zasada działania jest łatwa do zrozumienia.

Przykład:

  • Function CalculateMonthlyPayment(rng As Range) As Double
  • ' Ta funkcja UDF sumuje zakres liczb i dzieli sumę przez 12, aby uzyskać kwotę miesięcznej raty
  • ' Sprawdź, czy zakres wejściowy nie jest pusty
  • If Not rng Is Nothing Then
  • Dim cell As Range
  • Dim totalAmount As Double
  • ' Przejrzyj kolejno każdą komórkę w zakresie i zsumuj wartości
  • For Each cell In rng
  • If IsNumeric(cell.Value) Then
  • totalAmount = totalAmount + cell.Value
  • End If
  • Next cell
  • ' Podziel sumę na 12, aby uzyskać miesięczną ratę
  • CalculateMonthlyPayment = totalAmount / 12
  • Else
  • ' Zwróć 0, jeśli zakres danych wejściowych jest pusty
  • CalculateMonthlyPayment = 0
  • End If
  • End Function

Przydatne funkcje UDF w programie Excel

Ponieważ funkcje UDF są z definicji niezwykle zindywidualizowane, istnieje szeroki wachlarz funkcji UDF stworzonych przez innych użytkowników do konkretnych celów. Świetnym źródłem informacji są fora takie jak Reddit, VBA.Mania i 4programmers.net / dział VBA, gdzie można sprawdzić, jak inni użytkownicy VBA wykorzystują swoje kody.

Kobieta przy laptopie, pudełka kartonowe, drewniany regał.
Na szkoleniu dotyczącym Excela dowiesz się także, w jaki sposób można eksportować pliki do innych programów.

Oto kilka interesujących zastosowań, które wymyślili inni użytkownicy programu Excel:

  • Pobieranie nazwy arkusza używanego w komórce, do której odwołuje się odwołanie
    • Function SheetName(CellReference As Range)
    • SheetName = CellReference.Parent.Name
    • End Function
  • Sprawdzanie, czy plik o określonej nazwie już istnieje
    • Function filesExist(ByVal fileArr As Variant, Optional checkAll As Boolean = True) As Boolean
    • 'Sprawdza, czy pliki (fileArr) istnieją
    • 'Każda wartość w fileArr musi być pełną ścieżką do pliku
    • 'Jeśli checkAll = True, to wszystkie pliki w fileArr muszą istnieć, aby zwrócić wartość True
    • 'Jeśli checkAll = False, to co najmniej jeden plik w fileArr musi istnieć, aby zwrócić wartość True
    • filesExist = thingsExist(„”, fileArr, „File”, checkAll)
    • End Function
  • Sprawdź, czy określony arkusz już istnieje
    • Function CheckSheetExists(ByRef wb As Workbook, ByVal shName As String) As Boolean
    • Dim ws As Worksheet
    • 'przechodzi przez wszystkie arkusze w skoroszycie
    • For Each ws In wb.Worksheets
    • 'jeśli arkusz istnieje wśród arkuszy skoroszytu, funkcja zwraca wartość „True” i kończy działanie
    • If ws.Name = shName Then
    • CheckSheetExists = True
    • Exit Function
    • End If
    • Next ws
    • 'w przypadku, gdy arkusz nie został znaleziony, funkcja zwraca wartość „False”
    • CheckSheetExists = False
    • End Function
beenhere
Nieograniczone możliwości funkcji UDF

VBA pozwala tworzyć bardzo wiele różnych funkcji UDF dopasowanych do potrzeb użytkownika.

Odkryj więcej funkcji UDF z Superprof

Nauka każdego języka programowania wiąże się z dużym nakładem pracy, a VBA nie jest tu wyjątkiem. Jeśli masz trudności z opanowaniem tego języka, nie jesteś sam. Z pomocą korepetytora z Superprof możesz nauczyć się biegle władać VBA i z łatwością tworzyć funkcje UDF. Kilka lekcji Excela z wykwalifikowanym i doświadczonym korepetytorem sprawi, że w mgnieniu oka będziesz tworzyć profesjonalny kod.

Tworzenie funkcji UDF w Excelu może całkowicie zmienić sposób, w jaki korzystasz z tego programu. Zacznij zgłębiać tę złożoną, ale skuteczną technikę, aby przyspieszyć swoją pracę z Excelem.

Podsumuj za pomocą AI

Oceń czy nasz artykuł był pomocny 😊 Oceń nas!

5,00 (1 ocen(y))
Loading...
Zuzanna Olender copywriter

Zuzanna Olender

Umysł ścisły i artystyczna dusza w ciele jednej copywriterki. Jako mgr biologii molekularnej tworzy treści dla biznesów związanych z naturą. Głodna wiedzy dużo czyta i stale poszerza obszar zainteresowań.