Baza wiedzy / Excel

ZAOKR.DO.WIELOKR w Excelu: najbliższy krok i zgodne znaki

Najbliższa wielokrotność, ujemne argumenty i remisy. Pokazuję też ograniczenie kroków dziesiętnych oraz dlaczego wynik może nie wystarczyć na cały zapas.

Kajo RudzińskiOpublikowano Aktualizacja 4 min czytania

Złota kostka między regularnie rozmieszczonymi platformami

ZAOKR.DO.WIELOKR wybiera najbliższą wielokrotność podanego kroku. Angielska nazwa to MROUND. Ja używam jej wtedy, gdy wyniki mają trafiać na określoną siatkę, na przykład co 5 jednostek. Najpierw ustalam jednak, czy chodzi o wartość najbliższą, czy o przekroczenie progu w określonym kierunku.

To rozróżnienie jest ważne przy opakowaniach i zapasie. Najbliższa wielokrotność może być mniejsza od potrzebnej liczby sztuk. Funkcja nie zna celu arkusza i nie zagwarantuje, że zaokrąglony wynik wystarczy do obsłużenia całego zapotrzebowania.

Składnia i dostępność

=ZAOKR.DO.WIELOKR(liczba;wielokrotność)

Oba argumenty są wymagane. Pierwszy jest wartością do zaokrąglenia, drugi krokiem, którego wielokrotności rozważasz. W przykładach stosuję polskie nazwy, średnik między argumentami i przecinek dziesiętny. Angielski zapis w typowych ustawieniach amerykańskich to =MROUND(number,multiple).

Dokumentacja Microsoft obejmuje m.in. Microsoft 365 oraz Excel 2016, 2019, 2021 i 2024. W pracy z innym arkuszem kalkulacyjnym sprawdź jego własne zasady. Podobna nazwa nie wystarcza do potwierdzenia wszystkich przypadków brzegowych.

Najbliższa wielokrotność na małych liczbach

Dane w tabeli są syntetyczne. Przy kroku 5 dla liczby 27 porównuję 25 i 30. Odległości wynoszą 2 oraz 3, więc wybieram 25. Przy liczbie 28 bliżej jest 30. Drugi argument nie oznacza liczby miejsc dziesiętnych.

Formuła Wynik Uzasadnienie
=ZAOKR.DO.WIELOKR(27;5) 25 Bliżej 25 niż 30
=ZAOKR.DO.WIELOKR(28;5) 30 Bliżej 30 niż 25
=ZAOKR.DO.WIELOKR(30;5) 30 Wartość już leży na siatce
=ZAOKR.DO.WIELOKR(25;10) 30 Połowa kroku, kierunek od zera
=ZAOKR.DO.WIELOKR(-25;-10) -30 Połowa kroku, również od zera

Dla wartości ujemnej „od zera” oznacza mniejszą liczbę na osi. Dlatego wolę ten opis od nieprecyzyjnego „przy remisie wybiera większą”. Reguła nie zmienia się w obietnicę wyboru większej liczby algebraicznej tylko dlatego, że wynik jest ujemny.

Ujemna liczba potrzebuje ujemnego kroku

Poprzednia wersja tekstu błędnie pokazywała =ZAOKR.DO.WIELOKR(-17;5) jako drogę do -15. Microsoft wymaga zgodnych znaków argumentów. Taki zapis zwraca #LICZBA!, czyli angielskie #NUM!. Poprawne przykłady mają postać:

=ZAOKR.DO.WIELOKR(-17;-5)
=ZAOKR.DO.WIELOKR(-22;-10)

Wyniki to odpowiednio -15 i -20. W pierwszym przypadku odległość od -15 wynosi 2, a od -20 wynosi 3. W drugim -20 leży bliżej niż -30. Znak kroku jest częścią umowy funkcji, a nie kosmetycznym dodatkiem do zapisu.

Nie usuwam znaku z danych automatycznie, żeby zniknął błąd. Jeżeli minus oznacza korektę lub kierunek odchylenia, jego utrata zmieni znaczenie wyniku. Najpierw ustalam regułę dla takich rekordów, a dopiero potem przygotowuję odpowiednią formułę.

Dopasowane elementy pasują do gniazd, a niezgodny zestaw pozostaje rozdzielony bramką

Kroki dziesiętne mają ograniczenie przy połowie

Dla syntetycznej liczby 3,14 i kroku 0,05 najbliższą wielokrotnością jest 3,15. W polskiej formule zapiszę =ZAOKR.DO.WIELOKR(3,14;0,05). Nie wyprowadzam jednak z tego gwarancji identycznego zachowania dla wszystkich dziesiętnych punktów środkowych.

Microsoft wymienia znane ograniczenie MROUND: dla dziesiętnego kroku kierunek zaokrąglenia w połowie jest niezdefiniowany. Dokumentacja podaje dwa różne kierunki dla 6,05 oraz 7,05 przy kroku 0,1. Nie przedstawiam więc tej funkcji jako uniwersalnej reguły rozliczeń wymagających ściśle ustalonej obsługi połówek.

Jeżeli proces wymaga takiej reguły, opisz jednostkę i sposób reprezentowania wartości oraz uzgodnij metodę z odbiorcą. Sam wygląd komórki z dwoma miejscami po przecinku nie usuwa ograniczeń obliczeń. Do prezentacji i do zmiany wartości podchodzę osobno.

Najbliżej i zawsze w górę to inne wymagania

Masz 27 sztuk i pudełka po 5. ZAOKR.DO.WIELOKR(27;5) daje 25. To za mało miejsca na cały zapas. Dla dodatnich ilości i dodatniego kroku funkcja CEILING.MATH realizuje zaokrąglenie w górę do wielokrotności, więc dla 27 i 5 potrzebny poziom wynosi 30.

Inne pytanie brzmi: ile całych pudełek trzeba przygotować? Wynik ma wtedy jednostkę pudełek, a nie sztuk. Najpierw dzielisz potrzebną liczbę sztuk przez pojemność, a następnie stosujesz uzgodnione zaokrąglenie liczby pudełek w górę. Nie nazywaj wyniku 30 „liczbą opakowań”, jeśli oznacza pojemność w sztukach.

Przy pracy z liczbą miejsc zamiast wielokrotnością przyda się ZAOKR.GÓRA. Różnice między nazwami PL/EN i separatorami omawiam także w poradniku tłumaczenia formuł.

Ćwiczenie i kontrola wyniku

Zapisz liczby 24, 25 i 26 oraz krok 10. Wyniki powinny wynosić odpowiednio 20, 30 i 30. Dla ujemnych odpowiedników i ujemnego kroku otrzymasz -20, -30 i -30. To obejmuje obie strony granicy oraz dokładną połowę przy kroku całkowitym.

Następnie celowo połącz ujemną liczbę z dodatnim krokiem i opisz oczekiwany błąd według dokumentacji. Na koniec wróć do pytania biznesowego: czy wynik ma być najbliższy, czy nigdy nie może być za mały? Dopiero ta odpowiedź rozstrzyga, czy wybrałeś właściwą funkcję.

Najważniejsze w pigułce

Dlaczego ZAOKR.DO.WIELOKR zwraca błąd dla liczby ujemnej?

Liczba i wielokrotność muszą mieć zgodne znaki. Dla -17 użyj kroku -5; krok 5 powoduje błąd #LICZBA!.

Czy MROUND zawsze zaokrągla w górę?

Wybiera najbliższą wielokrotność. Dla 27 i kroku 5 wynikiem jest 25, dlatego nie zapewnia pojemności na całe 27 sztuk.

Czy reguła połowy działa zawsze dla kroków dziesiętnych?

Microsoft opisuje niezdefiniowany kierunek przy połowie dla dziesiętnego kroku. Przy wymaganej dokładnej regule trzeba uzgodnić metodę i reprezentację danych.

Przy pracy nad artykułem użyto w zautomatyzowany sposób sztucznej inteligencji. Jeśli też chcesz tak umieć, sprawdź ten projekt.

Kajo Rudziński

Newsletter KajoData

Zostańmy w kontakcie.

Piszę o analizie danych, uczeniu się i zmianie pracy. Dzielę się tym, co pomaga mi ogarniać technologię i zawodowe decyzje. Jeśli lubisz ten sposób myślenia, zapraszam do mojego newslettera.