czwartek, 24 października 2013

Funkcja JEŻELI

Funkcja JEŻELI należy do funkcji logicznych. Funkcje logiczne potrafią logicznie myśleć ;) Jej postać jest następująca:

JEŻELI(warunek; zrób to jeżeli jest spełniony warunek; jeżeli nie jest spełniony warunek zrób to)

Przykład:
Poniżej w kolumnie B podana jest ilość młotków wyprodukowanych przez pracowników. W kolumnie C chcemy otrzymać informację: jeżeli ilość wyprodukowanych młotków jest większa od 100 to wpisz w komórkę : "Premia uznaniowa". Jeżeli nie (czyli ilość wyprodukowanych młotków jest równa lub mniejsza sto) to wpisz : "Bez premii".

Reasumując :
Jeżeli (kolumna B>100 ; to wpisz do komórki "Premia uznaniowa"; jeżeli nie to wpisz "Bez premii")
zapisując to jako formułę dla komórki C2 :
JEŻELI(B2>100;"Premia uznaniowa";"Bez premii")

wynik:

Proste, ale jest to tylko wierzchołek góry lodowej możliwości wykorzystania funkcji JEŻELI.

W powyższym przykładzie mamy do czynienia z dwoma przypadkami : TAK - jest większe niż 100 i NIE - jest mniejsze równe 100. Jak poradzić sobie z przypadkiem gdy mamy do czynienia z większa ilością warunków i wartości dla nich. Korzystamy wtedy z zagnieżdżenia funkcji JEŻELI.
Przykład:
Mamy wystawić oceny uczniom na podstawie otrzymanych punktów za klasówkę. Przedziały dla ocen są następujące:
60-51 - celujący;
50-41 - bardzo dobry;
40-31 - dobry;
30-21 - dostateczny;
20-11 - mierny;
10-0 - niedostateczny.

Budujemy funkcję :
JEŻELI(Komórka>50;"celujący";
   JEŻELI(Komórka>40;"bardzo dobry";
   JEŻELI(Komórka>30;"dobry";
   JEŻELI(Komórka>20;"dostateczny";
   JEŻELI(Komórka>10;"mierny";
   "niedostateczny")))))  
czytając od lewej do prawej :
Jeżeli (wartość komórki jest większa niż 50; to wpisz "celujący";
jeżeli nie to ( jeżeli wartość komórki jest większa niż 40; to wpisz "bardzo dobry";
jeżeli nie to ( jeżeli wartość komórki jest większa niż 30; to wpisz "dobry";
jeżeli nie to ( jeżeli wartość komórki jest większa niż 20; to wpisz "dostateczny";
jeżeli nie to ( jeżeli wartość komórki jest większa niż 10; to wpisz "mierny";
jeżeli nie to wpisz "niedostateczny")))))
Kwestia po prostu odpowiedniego przeczytania. W excelu wygląda to następująco :

W polu wartość_jeżeli_fałsz wstawiamy następną funkcję JEŻELI, postępujemy tak kaskadowo aż do momentu, kiedy wpiszemy ocenę "niedostateczny". W wyniku otrzymujemy :

Analizując funkcję widzimy pewną nieścisłość, np. dla komórki B4 - ilość punktów 45, wartość komórki jest większa niż 10, 20, 30, 40 co dopowiadałoby by wpisom z funkcji od "mierny" do "bardzo dobry". Skąd w takim razie excel wie jaką ocenę ma wstawić. Kieruje się prostą zasadą, czyta od lewej do prawej funkcję i jeżeli napotka pierwszy raz spełniony warunek wstawia ocenę i kończy czytanie.

Do tej pory rozpatrwyaliśmy przypadki następującej postaci :
Jeżeli coś to zrób to, jeżeli nie to zrób to.

A co w takim zadaniu?
Uczniom zostały przyznane oceny z pięciu przedmiotów.
Warunkiem przyznania dyplomu za dobre wyniki w nauce jest :
ocena z języka polskiego i matematyki i fizyki- co najmniej 4.
przepisując to w formie Jeżeli coś to zrób to, jeżeli nie to zrób to. :

Jeżeli(ocena z języka polskiego>=4 i ocena z matematyki >= 4 i ocena z fizyki >=4, to przyznaj dyplom, jeżeli nie to nie rób nic),

żeby to zapisać w excelu skorzystamy z dodatkowej funkcji :

ORAZ(warunek logiczny 1;warunek logiczny 2;...;.) - iloczyn logiczny (koniunkcja).

Funkcja logiczna ORAZ() zwraca wartość prawda gdy wszystkie warunki logiczne zwracają wartość prawda. Zwraca wartość fałsz, gdy chociaż jeden warunek logiczny zwraca wartość fałsz.

W excelu:

Drugi dyplom za dobre wyniki w naukach ścisłych dostaną uczniowie, którzy otrzymali ocenę z matematyki lub fizyki - co najmniej 5, czyli :

Jeżeli(ocena z matematyki >= 5 lub ocena z fizyki >=5, to przyznaj dyplom, jeżeli nie to nie rób nic).

W tym przypadku będzie nam pomocna funkcja LUB:

LUB(warunek logiczny 1;warunek logiczny 2;...;.) - suma logiczna;

Funkcja logiczna LUB() zwraca wartość fałsz jeżeli wszystkie warunki logiczne mają wartość fałsz, zwraca wartość prawda, gdy chociaż jeden warunek logiczny zwraca wartość prawda.

Wynik:

Reasumując :
Funkcja JEŻELI powoduje, że excel myśli w następujący sposób :

Jeżeli coś to zrób to, jeżeli nie to zrób to.

Jeżeli excel ma zrobić szereg czynności oddzielnie dla każdego warunku, to korzystamy z zagnieżdżonych funkcji jeżeli.
Jeżeli excel ma zrobić jakąś czynność dla kilku warunków powiązanych ze sobą spójnikiem i albo spójnikiem lub, to korzystamy odpowiednio z funkcji ORAZ albo LUB.

niedziela, 10 lutego 2013

Lista rozwijana.

Do czego jest przydatna lista rozwijana?
1. Dzięki liście rozwijanej mamy pewność wprowadzenia poprawnych danych w komórce.
2. Dane są wprowadzane do komórki szybciej - poprzez jedno kliknięcie myszką.

Listę rozwijaną tworzy się na serii danych umieszczonych w kolumnie. Dla naszych potrzeb wykorzystamy nazwy państw.

1. Zaznaczamy zakres danych, który będzie widoczny w liście.
2. W polu nazwy (znajduje się po lewej stronie paska funkcji patrz załączony obrazek) wpisujemy wymyśloną przez nas nazwę dla tego zakresu danych i zatwierdzamy enterem. U nas zakres danych nazwałem - Państwa.
3. W tym lub innym arkuszu zaznaczamy zakres, w którym chcemy stworzyć listy. Z górnego menu wybieramy Dane>Sprawdzanie poprawności
4. W tym momencie pokaże się okienko.
- W polu Dozwolone: wybieramy Lista.
- W polu Źródło: wpisujemy =Państwa, odwołanie do naszego zakresu danych.

Klikamy ok i w wyniku otrzymujemy dla każdej wcześniej zaznaczonej komórki rozwijaną listę :

Szybko i sprawnie :)

piątek, 1 lutego 2013

Procedury w VBA

Procedura to zamknięty blok, w którym jest szereg instrukcji, które każemy "excelowi" wykonać aby osiągnąć zamierzony przez nas efekt. Procedura to to samo co makro.
Sub NazwaProcedury () 
  {Tutaj znajduje się ciało procedury
   czyli szereg instrukcji do wykonania
   ....................
Exit Sub <-tu można wcześniej zakończyć wykonywanie makra
   .. dalsze instrukcje}
End Sub  <-koniec procedury
NazwaProcedury może być dowolna wymyślona przez nas. Istnieje jednak kilka warunków :
- nazwa musi być jednym ciągiem tekstowym, czyli nie można używać spacji;
- nie można używać w nazwie następujących znaków :#,$,%,&,@,^,!.

Dobrym zwyczajem jest nadawanie nazw procedurom odnosząc się do tego co wykonują, np. Kopiowanie_zakresu, Ustawianie_wydruku itp.

Przed słowem kluczowym Sub mogą pojawić się nazwy Private lub Public.

Public oznacza, że procedura jest dostępna przez wszystkie procedury we wszystkich modułach skoroszytu . Wtedy początek wygląda np.:
Public Sub NazwaProcedury () 
     ....................
End Sub
Private oznacza, że procedura jest dostępna tylko dla innych procedur z tego samego modułu. Wtedy początek wygląda np.:
Private Sub NazwaProcedury() 
     ....................
End Sub 
Domyślnie procedury są publiczne, czyli jeśli nie określimy przed słowem Sub co to za typ procedury, to jest ona typu Public.

niedziela, 27 stycznia 2013

Rozdzielanie dwóch słów.

Kiedyś pisałem jak można rozdzielić imię i nazwisko, znajdujące sie w jednej komórce za pomocą funkcji Fragment.Tekstu. Tutaj podaję szybszy i prostszy sposób.


Chcemy np rozdzielić poniżej zapisane imiona i nazwiska w jednej kolumnie na dwie kolumny:


Sposób poniżej przedstawiony, spowoduje przesunięcie nazwiska do kolumny po prawej stronie. Jeżeli mamy w niej dane tak jak u nas kolumna Lat, to musimy wstawić pustą kolumnę pomiędzy Imię i nazwisko i Lat dla naszych nazwisk. Po wstawieniu kolumny, zaznaczamy obszar z imieniami i nazwiskami, które chcemy rozdzielić i wybieramy opcję Dane i Tekst jako kolumny....




Pokaże nam się kreator konwersji:




W pierwszym kroku wybieramy Rozdzielany, w drugim jako ograniczniki - spacja:




W trzecim kroku nic nie zmieniamy. Dajemy zakończ i mamy wynik poniżej:


sobota, 26 stycznia 2013

Opcje w excelu.

W excelu mamy do dyspozycji szereg opcji, czym one są i gdzie są dostępne?

Są tutaj :


a tutaj kilka z nich :




Widzimy, że jest kilka zakładek z opcjami. Dzięki nim możemy zmieniać wygląd excela według własnego gustu i potrzeb. Np. gdy chcemy pozbyć się paska z arkuszami to odhaczamy Karty Arkuszy. Jeśli potrzebujemy, żeby zera były niewidoczne, to odhaczamy Wartości zerowe. Możemy zmienić sobie kolor siatki, albo spowodować żeby była niewidoczna. To tylko część opcji z zakładki widok, a zakładek jest, jak widać, wiele. Zachęcam do korzystania.

Funkcja odwracająca ciąg tekstowy.

Poniżej wpisany jest kod dla funkcji służącej odwracaniu ciągu tekstowego. Być może przyda się komuś. Poniższy kod należy skopiować do modułu w edytorze VBA. Będzie on dostępny w skoroszycie w funkcjach użytkownika.

Function Odwroc_kolejnosc(Wyrazenie As String) As String  
 ' Zwraca odwrócony tekst  
 DlugoscCiagu = Len(Wyrazenie)  
 For i = DlugoscCiagu To 1 Step -1  
 znak = Right(Wyrazenie, 1)  
 Wyrazenie = Mid(Wyrazenie, 1, i - 1)  
 Odwroc_kolejnosc = Odwroc_kolejnosc + znak  
 Next i  
 End Function  

Zastosowanie :

Funkcje użytkownika.

W excelu mamy szereg funkcji z których możemy korzystać. Jednak czasami przydałyby się inne, które nie są dostępne w standardowym zbiorze funkcji. Możemy je sobie sami stworzyć. Oto w jaki sposób:

1. Otwieramy edytor VBA ( skrót ALT+F11).
2. Dodajemy moduł wybierając opcję INSERT a następnie MODULE.


3. Po wstawieniu modułu kopiujemy do niego kod funkcji, lub piszemy bezpośrednio w module.


4. Funkcja ta jest dostępna w skoroszycie po wybraniu funkcji użytkownika.


Nazwa jest taka sama jak nazwa funkcji we wklejonym kodzie.


Akurat przydatność tej funkcji jest praktycznie żadna, gdyż jest już ona dostępna w funkcjach tekstowych pod nazwą LITERY.WIELKIE