Reszta z dzielenia, czyli mało znana funkcja MOD

W pierwszych klasach podstawówki, gdy nie przerabiano jeszcze ułamków poznałem takie pojęcie jak reszta z dzielenia. Pani zadała pytanie ile to jest 20 podzielone przez 3. W starszych klasach bym odpowiedział 6 i 2/3 lub 6,67. Natomiast gdy nie znaliśmy ułamków to odpowiedź na owe pytanie brzmiała: 6 i 2 reszty (Obrazowo mówiąc jeśli w grupie są 3 osoby i dostaną od opiekuna paczkę zawierającą 20 cukierków, to każdy otrzyma po 6 cukierków i zostaną 2 niepodzielne cukierki).

Pobierz skoroszyt z ćwiczeniami

I do czasu aż nie zainteresowałem się informatyką takie działanie jak reszta z dzielenia mi nie towarzyszyło w życiu. Na, ale wbrew pozorom w wielu sytuacjach owe działanie może nam ułatwić życie.

Resztę z dzielenia liczy funkcja MOD. Oto prosty przykład:

=MOD(20; 3)

Uwaga: podobnie jak w przypadku dzielenia, drugi argument funkcji MOD nie może być zerem!

I tutaj mógłbym zakończyć opis funkcji MOD, ale ma ona kilka fajnych zastosowań.

Przypisanie tej samej liczby co n-tej osobie

Mamy listę pracowników. I chcemy aby pierwszy pracownik miał numerek 1, drugi miał numerek 2, trzeci numerek 3 a czwarty z powrotem 1 (np. układamy w ten sposób grafik i chcemy każdemu pracownikowi przypisać na jaką zmianę ma przyjść). Tutaj sprawa jest prosta – jak mamy listę pracowników, to prawdopodobnie jest jakaś kolumna z liczbą porządkową. A jak jej nie mamy to możemy szybko utworzyć.

Wystarczy więc policzyć resztę z dzielenia liczby porządkowej przez 3 (bo mamy 3 zmiany).

=MOD(A2; 3)

W efekcie otrzymamy coś takiego:

I tak: dla pierwsze osoby wychodzi pierwsza zmiana gdyż 1 dzielone przez 3 daje 0 i 1 reszty. Dla drugiej osoby mamy 0 i 2 reszty. Dla trzeciej osoby mamy wynik 0 gdyż 3 dzielone przez 3 daje 1 i zero reszty.

Jeśli nam to zero przeszkadza (czasem może nam to nie przeszkadzać bo np. do jakiś dalszych przekształceń chcemy w tej kolumnie mieć na przemian 3 różne wartości), to możemy wynik zwrócony przez funkcję MOD zwiększyć o 1.

=MOD(A2; 3) + 1

Tylko tutaj będzie mały problem: pierwsza od góry osoba przychodzi teraz na drugą zmianę (bo 1 dzielone przez 3 daje nam 0 i resztę z dzielenia 1 a jeszcze do tego wyniku dodajemy jedynkę). Druga osoba przychodzi na 3 zmianę a trzecia osoba na pierwszą.

Jeśli lubisz estetykę i chcesz, aby pierwsza osoba przychodziła na pierwszą zmianę, druga na drugą a trzecia na trzecią to możemy liczbę porządkową pomniejszyć o 1. I tak będzie wyglądała nasza formuła:

=MOD(A2-1; 3)+1

Jak to działa? Otóż pierwsza osoba ma tak jakby liczbę porządkową 0 (Bo nasz dzielnik to: A2-1 a w komórce A2 jest jedynka). I teraz 0 dzielone przez 3 daje nam 0 i 0 reszty. Do wyniku zwróconego przez funkcję MOD dodajemy jedynkę i wychodzi nam 1. Dla drugiej osoby mamy resztę z dzielenia 1 (dzielnik = 2-1=1, co nam daje 1 reszty z dzielenia a po dodaniu do tego jedynki mamy wynik 2). Dla trzeciej osoby (dzielnik = 3-1 = 2, co daje nam 0 i 2 reszty z dzielenia, po dodaniu do wyniku zwróconego przez funkcję MOD jedynki daje nam to 3 zmianę).

Sprawdzanie czy liczba jest parzysta

W Excelu 2010 pojawiły się dwie nowe funkcje:

  • CZY.PARZYSTE(liczba) – zwraca wartość PRAWDA jeśli liczba jest parzysta
  • CZY.NIEPARZYSTE(liczba) – zwraca wartość PRAWDA jeśli liczba jest nieparzysta

Ale w starszych wersjach Excela nie było tych funkcji i należało „kombinować”. Otóż mogę podzielić liczbę przez 2. Wtedy reszta z dzielenia nam powie:

  • Otrzymaliśmy 0 – liczba jest parzysta
  • Otrzymaliśmy 1 – liczba jest nieparzysta

Do czego to można wykorzystać? Np. 10 cyfra (przedostatnia) numeru PESEL określa płeć. Dla kobiet ta cyfra jest parzysta a dla mężczyzn nieparzysta.

Sprawdzanie czy liczba jest podzielna przez inną liczbę

Rozszerzając nieco poprzedni przypadek: chcemy sprawdzić czy liczba1 jest podzielna przez liczbę2. Jeśli reszta z dzielenia wyjdzie 0 to znaczy, że liczba1 jest podzielna przez liczba2. Zastosowanie: chcemy podzielić pracowników na X zespołów i chcemy, aby w każdym zespole była dokładnie taka sama liczba osób.

Usuwanie całkowitych wielokrotności

Otrzymaliśmy informację, że maszyna pracuje 77 godzin. Dzieląc 77 przez 24 wychodzi nam 3 dni „z kawałkiem”. Ale interesuje nas ile dokładnie wynosi „ten kawałek”.

Możemy wykonać takie oto działanie:

=77-(ZAOKR.DÓŁ(77/24;0)*24)

Ale przyznasz mi, że lepiej wygląda coś takiego:

=MOD(77; 24)

Kiedy potrzebujemy odjąć od danej liczby całkowite wielokrotności innej liczby? Oto kilka pomysłów:

  • Trzecia i czwarta cyfra numeru PESEL zawiera miesiąc urodzenia. Za pomocą funkcji FRAGMENT.TEKSTU możemy wyciągnąć z numeru PESEL datę urodzenia. Ale osoby urodzone po roku 1999 mają do numeru miesiąca dodaną wartość 20 (czyli 21-styczeń, 22-luty, 23-marzec itp.). Możemy policzyć resztę z dzielenia przez 20 z tej liczby i już mamy miesiąc urodzenia danej osoby (np. jeśli funkcja ta zwróci 23 to reszta z dzielenia przez 20 daje wynik 1 i reszty 3; jeśli mamy stary pesel z 3 w miesiącu to 3 dzielone przez 20 daje 0 i też 3 reszty z dzielenia).
  • Czasem mamy wiek danej osoby w miesiącach. Np. 125 miesięcy. I po odjęciu pełnych lat chcemy wiedzieć ile miesięcy ta osoba żyje (czyli 125=10 lat i 5 miesięcy i nam o tę piątkę chodziło)
  • Analogiczna sytuacja może być z godzinami: czas pracy to 77 godzin – czyli 3 dni i 5 godzin.
Jeśli artykuł Ci się podobał, będę wdzięczny gdy go udostępnisz w mediach społecznościowych
Ten wpis został opublikowany w kategorii funkcje i oznaczony tagami , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.