Moje doświadczenia z Excelem, Accesem i programowaniem w VBA

Wpisy z tagiem: zaokrąglanie

czwartek, 28 lutego 2013

Pod jedną  ze starych notek pojawił się komentarz tej treści:

=JEŻELI(MOD(954,04;56,12)=0;"OK";"ERROR")
Dlaczego ta formuła daje wynik ERROR?

Autor komentarza ma rację - funkcja powinna pokazać wynik "OK", a nie "ERROR". Dlaczego tak nie jest?  Dlatego, ze zero w Excelu wcale nie zawsze jest zerem. Niestety.

Rozbierając tę funkcję na poszczególne elementy - widzimy warunek:
Jeżeli reszta z dzielenia (czyli funkcja MOD) liczb 954,04 i 56,12 jest równa zero, to wynik ma być "OK", w przeciwnym przypadku: "ERROR". Sprawdzając wynik na kalkulatorze możemy zobaczyć, że 954,04 / 56,12 = 17 - czyli reszta z dzielenia jest równa zero.

Niestety, z zerem w Excelu są czasem problemy - zero nie zawsze jest zerem. Dokładnie rzecz biorąc - wynik obliczeń arytmetycznych nie zawsze jest dokładny. Różnice są bardzo małe, kilkanaście miejsc po przecinku, ale jednak są. Wynika to z faktu zapisywania wartości w skoroszycie Excela. W praktyce oznacza to, że "w Excelu tak już po prostu się zdarza".

W opisywanym przypadku widać to już w kreatorze funkcji:

kreator funkcji 

kliknij na obrazek, aby go powiększyć

Reszta pozostała z dzielenia nie jest równa zero - na piętnastym miejscu po przecinku jest liczba 7.

Jak sobie z tym poradzić? Korzystając z funkcji arytmetycznych, bezpieczniej jest w takich przypadkach wpisać funkcję np.:

=JEŻELI(MOD(954,04;56,12)

lub skorzystać z funkcji zaokrąglania Zaokr()

 

 

 

 


 

Kurs Excel w praktyce

sobota, 17 lipca 2010

Funkcje VBA Int(Liczba) oraz Fix(Liczba) to funkcje, w wyniku których zwracana jest część całkowita liczby. Dla argumentów dodatnich - obie funkcje zwracają po prostu to - co przed przecinkiem, niezależnie od wartości po przecinku. Różnica pomiędzy obiema funkcjami jest widoczna dla liczb ujemnych. Funkcja Int zwraca najbliższą liczbę całkowitą niewiększą od zaokrąglanej, natomiast funkcja Fix - najbliższą liczbę całkowitą niemniejszą od zaokrąglanej.
Int(3,14)=3
Fix(3,14)=3
Int(-3,14)=-4
Fix(-3,14)=-3

czwartek, 15 lipca 2010

Funkcja VBA Round(Liczba,Liczba_miejsc_po_przecinku) to funkcja, która w prosty, matematyczny sposób zaokrągla Liczbę.
Argument Liczba_miejsc_po_przecinku jest argumentem opcjonalnym (czyli nieobowiązkowym). Jego pominięcie jest tożsame z zaokrągleniem do liczby całkowitej.
Funkacja VBA Round jest odpowiednikiem funkcji własnej Excela Zaokr.

wtorek, 29 czerwca 2010

Kolejna z funkcji zaokrąglających Excela. Jej nazwa jest nieco myląca, gdyz zaokraglenie danej liczbę w dół jest zgodne z prawda, ale tylko dla liczb dodatnich. W przypadku liczb ujemnych - zaokragla w górę. Najprostszym opisem jest więc to, że funkcja ZAOKR.GÓRA zaokągla liczby w kierunku od zera.

Argumentami funkcji są:
Liczba - liczba, która ma zostać zaokrąglona
Liczba_cyfr - wymagana liczba cyfr, do jakiej ma zostać zaokrąglona Liczba
Jeżeli argument ten jest mniejszy od zera - zaokrąglenie dotyczy części całkowitej (przed przecinkiem) Liczby.
Jeżeli argument ten jest większy od zera - zaokrąglenie dotyczy części ułamkowej (po przecinku) Liczby.
Dla wartości argumentu równej zero Liczba jest zaokrąglana do najbliższej liczby całkowitej.

Kolejna z funkcji zaokrąglających Excela. Jej nazwa jest nieco myląca, gdyz zaokraglenie danej liczbę w dół jest zgodne z prawda, ale tylko dla liczb dodatnich. W przypadku liczb ujemnych - zaokragla w górę. Najprostszym opisem jest więc to, że funkcja ZAOKR.DÓŁ zaokągla liczby w kierunku do zera.

Argumentami funkcji są:
Liczba - liczba, która ma zostać zaokrąglona
Liczba_cyfr - wymagana liczba cyfr, do jakiej ma zostać zaokrąglona Liczba
Jeżeli argument ten jest mniejszy od zera - zaokrąglenie dotyczy części całkowitej (przed przecinkiem) Liczby.
Jeżeli argument ten jest większy od zera - zaokrąglenie dotyczy części ułamkowej (po przecinku) Liczby.
Dla wartości argumentu równej zero Liczba jest zaokrąglana do najbliższej liczby całkowitej.

Funkcja ZAOKR.DO.CAŁK jest jedną z prostych funkcji zaokrąglających. Nie jest tu jednak zastosowana zasada matematyczna zaokrąglania. Funkcja zaokrągla w dół, do najbliższej liczby całkowitej.
Najlepiej widać to na przykładach:

ZAOKR.DO.CAŁK(3,14)=3
ZAOKR.DO.CAŁK(3,99)=3
ZAOKR.DO.CAŁK(-3,14)=-4

 

środa, 23 czerwca 2010

O pułapkach zaokrąglania liczb poprzez formatowanie pisałam w poprzedniej notce:
Zaokrąglanie liczb w Excelu
Najprostsza funkcją zaokrąglajacą w Excelu jest funkcja Zaokr. Argumentami funkcji są:
Liczba - liczba, która ma zostać zaokrąglona
Liczba_cyfr - wymagana liczba cyfr, do jakiej ma zostać zaokrąglona Liczba
Jeżeli argument ten jest mniejszy od zera - zaokrąglenie dotyczy części całkowitej (przed przecinkiem) Liczby.
Jeżeli argument ten jest większy od zera - zaokrąglenie dotyczy części ułamkowej (po przecinku) Liczby.
Dla wartości argumentu równej zero Liczba jest zaokrąglana do najbliższej liczby całkowitej

W przykładzie pokazane są różne wartości liczby po zaokrągleniu, w zależności od parametru Liczba_cyfr:

zaokrąglanie liczb w Excelu

Wart uwagi jest tu pierwszy przykład. Zaokrąglamy Liczbę do -2 cyfr. Oznacza to, że istotne są tu lylko 2 pierwsze cyfry. Nie można ich jednak po prostu usunąć - wartość liczby zmieniłaby się stukrotnie. Zachowując więc rząd wielkości - pozostałe miejsca uzupełniane są zerami.

Odpowiednikiem funkcji w VBA jest Round.

środa, 16 czerwca 2010

Excel z swojej defincji jest arkuszem kalkulacyjnym i czesto jest wykorzystywany do róznego rodzaju obliczeń. W poszczególnych komórkach występować mogę nie tylko liczby bezpośrednio wpisywane przez użytkownika, ale także wyniki obliczeń formuł. Wynik takiego działania bardzo często jest liczbą z wieloma miejscami po przecinku. Zbytnia dokładność nie zawsze jest konieczna, a często wygląda mało estetycznie. W takich sytuacjach najłatwiej jest sformatować komórkę ograniczając liczbę miejsc po przecinku.
Dla przypomnienia - najszybciej poprzez zaznaczenie komórki lub całego zakresu komórek i kliknięcie prawym przyciskiem myszy. Z rozwiniętego w ten sposób menu podręcznego wybieramy opcję Formatuj komórki... i ustawiamy wybrane przez nas opcje wyświetlania.

formatowanie liczb

Efekt jest, ale problem może pojawić się przy dalszym wykorzystaniu danych. Wprawdzie na ekranie widzimy liczby zaokrąglone, ale jest to tylko efekt wizualny. W komórce nadal są pełne wartości komórek i do dalszych obliczeń brane będą te pełne wartości, wywołując czasem niespodziewane efekty.

formatowanie liczb 

W komórkach B2, B3, B4 są liczby. Ich zaokrąglenia do liczby całkowitych - w odpowiednich komórkach kolumny C. Wiersz 5 to suma tych komórek. W komórce B5 wynik jest prawidłowy, ale w komórce C5 widzimy, że 1 + 1 + 1 = 4. Absurd? Tylko wizualnie - faktycznie sumowane są pełnie wartości, a nie ich sformatowany widok.
Chcąc doprowadzic do rzeczywistego zaokrąglania liczb musimy więc zastosować odpowiednie formuły. I o tym będzie kolejna notka.

| < Listopad 2017 > |
Pn Wt Śr Cz Pt So N
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      


Książki warte polecenia
zobacz szczegóły...


A tu oferta na dziś:





ministat liczniki.org



Napisz do mnie!