Quantcast
Channel: Malinowy Excel
Viewing all 291 articles
Browse latest View live

VBA: wydruk na szerokość 1 kartki

$
0
0

Dopasuj wszystkie kolumny do jednej strony

Jeśli chcecie ustawić w Excelu, aby tabelka drukowana była na szerokości jednej strony – wystarczy to zrobić w ustawieniach strony albo od razu w podglądzie wydruku, wybierając opcję: Dopasuj wszystkie kolumny do jednej strony. Efekt będzie taki, że Excel trochę zmniejszy czcionkę naszej tabelki na wydruku (w arkuszu zostanie taka, jaka była), natomiast tabelka na szerokość zmieści się w 1 stronie. Powstaje jednak pytanie: jak to zrobić za pomocą makra? Jak nagramy makro z tym jednym ustawieniem – oto, co generuje Excel (musiałam zmniejszyć czcionkę, bo mi się nie zmieściło na ekranie!)::

Ta prosta opcja w nagranym makrze

Ta prosta opcja w nagranym makrze

Okazuje się jednak, że aby to zrobić w VBA wystarczy kilka linijek kodu, a nie 100, jak proponuje rejestrator.  Na tym filmie, omawiam całe zagadnienie:

A tutaj możesz skopiować sobie kod:

Sub Drukuj()
 Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .FitToPagesWide = 1
        .FitToPagesTall = 0
    End With
 Application.PrintCommunication = True
End Sub

Czasem działało mi tylko ActiveSheet.PageSetup.FitToPagesWide = 1, ale nie w każdym pliku… Na wszelki wypadek polecam więc pisać obie linijki.

A stąd możesz pobrać plik z gotowym makrem:

 

 


Regiony alfabetycznie w tabeli przestawnej?

$
0
0

Czyli sortowanie list niestandardowych w tabeli przestawnej

Excel doskonale zna nazwy i kolejność np. dni tygodni czy miesięcy. Żeby się o tym przekonać, wystarczy wpisać w dowolną komórkę dowolny dzień tygodnia i przeciągnąć ten wpis do kolejnych komórek. Excel tę kolejność zna, ponieważ ma zdefiniowane listy niestandardowe, które o tym mówią. Mało tego – my użytkownicy możemy stworzyć swoje własne listy, np. z działami naszej firmy, czy regionami sprzedaży (opisywałam to tutaj). Natomiast jak już chcemy nasze dane posortować według np. dni tygodnia – Excel głupieje i sam z siebie tego nie zrobi. Trzeba zastosować metodę, którą opisywałam tutaj. Natomiast już w tabelach przestawnych Excel sobie „przypomina”, że przecież zna kolejność dni tygodnia i sam z siebie sortuje według nich tabelę przestawną. Bez naszej ingerencji. Problem jednak pojawia się, gdy nie chcemy, aby tak sortował, ponieważ akurat kolejność naszych regionów sprzedaży chcemy mieć w tym wypadku alfabetyczną …

Takie coś chciała jedna z uczestniczek szkolenia Excel w HR, które prowadziłam. Przyznam, że nie wiedziałam tego od tak i chwilkę pogrzebałam… Odpowiedź okazała się bardzo prosta. Zobaczcie sami!

Czyli załóżmy, że przedstawiamy wynagrodzenia pracowników w regionach naszej firmy i w naszym Excelu mamy zdefiniowaną listę niestandardową: Wschód, Zachód, Północ, Południe.

Tabela przestawna przedstawiająca te dane, wygląda tak:

Sortowanie domyślne

Sortowanie domyślne

Zauważ, że regiony są posortowane dokładnie tak, jak lista niestandardowa. Aby jednak posortować je alfabetycznie, należy:

1. Kliknąć w dowolnym miejscu tabeli przestawnej prawym przyciskiem myszy i z menu kontekstowego wybrać Opcje tabeli przestawnej.

2. Pojawi się okienko jak na obrazku i z niego wybieramy zakładkę Sumy i filtry i odznaczamy opcję Użyj list niestandardowych podczas sortowania:

Potrzebna opcja

Potrzebna opcja

Żeby posortować tabelę przestawną według regionu, wystarczy teraz ustawić się w dowolnej komórce tego pola w tabeli (np. K6) i kliknąć jeden z dwóch przycisków sortowania na karcie Dane (A->Z, Z->A).

I to tyle. Cała filozofia. Efekt jest taki:

Wynik

Wynik

Pliku do pobrania nie zamieszczam, bo nie ma co z niego kopiować 🙂 Tutaj tylko ustawiamy opcję. Natomiast film tradycyjnie jest:

Powiązane artykuły:

  • Tworzenie listy niestandardowej
  • Sortowanie list niestandardowych np. dni tygodnia

Power Query: średni obrót na klienta w regionie

$
0
0

Czyli must have każdego analityka sprzedaży

Ostatnio na blogu pojawił się pierwszy wpis o Power Query, w którym pokazywałam jak wybrać z listy klientów, którzy mają przypisane różne numery ID. Dziś drugi wpis o tym narzędziu, a z pewnością będzie pojawiało się ich więcej, ponieważ PQ jest przyszłością Excela. W wielu sytuacjach może zastąpić pisanie makr, a jest od nich zdecydowanie łatwiejsze i, aby go używać, nie trzeba mieć nie wiadomo jakich umiejętności. Wręcz powiedziałabym, że mnóstwo rzeczy da się „wyklikać” z menu. Jeden z takich przykładów prezentuję w dzisiejszym wpisie. A ponieważ zdaję sobie sprawę, że dla wielu z Was PQ jest to całkowicie nowym narzędziem – prezentowany case opisałam bardzo szczegółowo.

Mamy do dyspozycji dwa zakresy: Faktury i Regiony. Oba przedstawione na obrazku poniżej (Faktury mają oczywiście więcej danych):

Dane

Dane

Odpowiedź na pytanie Jaki jest średni obrót na klienta w regionie, wymaga zestawienia ze sobą tych dwóch tabel. Czyli chcemy „jakoś” uzyskać obrót per region i wiedzieć ile jest w tym regionie klientów. Jak już to będziemy mieli, to zostanie prosta matematyka: obrót regionu przez ilość jego klientów i z głowy. Podobny case już omawiałam (w tym filmie) i użyłam do tego tabel przestawnych, da się to zrobić inaczej tabelami (to tym jeszcze będę pisała) i da się też formułami. W dzisiejszym wpisie natomiast, pokażę Wam jak to zrobić za pomocą Power Query.

Aby zacząć pracę z Power Query, najpierw trzeba te zakresy przerobić na tabele (tabele w rozumieniu narzędzia Tabela). Aby to zrobić, wystarczy ustawić się w zakresie, z którego tabelę chcemy stworzyć i użyć skrótu klawiszowego Ctrl + t. Pojawi się taka tabliczka:

Tworzenie tabeli - okienko

Tworzenie tabeli – okienko

Excel powinien wykryć, że dane mają nagłówki. Jeśli tego nie zrobi – trzeba to zaznaczyć ręcznie. Czynność tę trzeba powtórzyć dla każdej tworzonej tabeli.

Ja jeszcze lubię zmieniać nazwy utworzonych tabel na jakieś sensowne (Excel z kolei lubi Tabela1, Tabela2,… :)). Aby to zrobić, wystarczy ustawić się w dowolnej komórce interesującej nas tabeli i w menu Narzędzia tabel/ Projektowanie w sekcji Właściwości zmienić nazwę:

Zmiana nazwy tabeli

Zmiana nazwy tabeli

Teraz będziemy tabele wrzucać do Power Query…

Import do PQ: Faktury

Niezależnie od wersji Excela, najpierw należy się ustawić w tabeli (Faktury), którą chcemy wrzucić do Power Query. Dalej, jeśli masz Excela 2010 lub 2013 (ja mam 2013), to idź do menu Power Query (nie masz? Tutaj znajdziesz instrukcję jak zainstalować Power Query) i tam wciśnij przycisk From Table/Range (mam polską wersję, ale ten przycisk usilnie jest po angielsku :)). Jeśli natomiast masz 2016 – przycisk ten znajdziesz na karcie Dane.

Od razu po tej operacji Excel otworzy edytor zapytań Power Query, więc jesteśmy w domu. Zapytanie zostanie nazwane tak, jak importowana tabela (Faktury) i od razu PQ doda 2 kroki w sekcji Zastosowane kroki:

Po wrzuceniu danych...

Po wrzuceniu danych…

I teraz przypominam, że naszym celem jest ustalenie średniego obrotu na klienta. Nie interesuje nas z jakich faktur ten obrót się składa. Faktury więc nie będą nam tutaj potrzebne. Chcemy więc się ich pozbyć, jednak przy okazji sumując obrót na klienta. W tym celu zastosujemy grupowanie danych według klienta.

Aby to zrobić – zaznacz nagłówek kolumny Klient i wybierz z menu Przekształć/ Grupowanie według. Wybierz i wpis następujące opcje:

Faktury: grupowanie klientów

Faktury: grupowanie klientów

Po naciśnięciu OK otrzymamy taki efekt:

Faktury: obroty klientów

Faktury: obroty klientów

I z fakturami to na razie tyle. Teraz tylko trzeba zapisać i załadować. Polecam zapisać tylko połączenie, a nie wrzucać ponownie tych danych do arkusza – nie jest nam to potrzebne. Aby to zrobić wejdź w edytorze PQ do menu Narzędzia główne/ Zamknij i załaduj/ Zamknij i załaduj do… (trzeba rozwinąć strzałkę pod przyciskiem) i wybierz: Utwórz tylko połączenie.

PS. Strasznie dużo screenów w tym wpisie 🙂

Import do PQ: Regiony i scalanie zapytań

To zabieramy się za regiony. Najpierw to samo, czyli wrzucenie do PQ (From Table/Range). Tutaj dane są ładnie oczyszczone, więc teraz zajmiemy się łączeniem dwóch zapytań (tabelek): Faktur i Regionów, gdyż chcemy wiedzieć ile klientów było w danym regionie i jaką miał on sprzedaż. Na razie wiemy jaką sprzedaż mieli klienci.

Teraz do każdego klienta w regionie (zapytanie Regiony) przyporządkujemy jego obrót z zapytania Faktury (coś jak WYSZUKAJ.PIONOWO w Excelu. Żeby tego dokonać skorzystamy z przycisku Scal zapytania na karcie Narzędzia główne w sekcji Połącz:

Scalanie zapytań

Scalanie zapytań

W tym okienku ważne jest, aby kliknąć na kolumny, według których ma nastąpić połączenie. W naszym przykładzie są to kolumny Klient. Wtedy PQ będzie wiedziało, że po nich ma dopasowywać.

Jako rodzaj sprzężenia zostawmy domyślną opcję, czyli Lewe zewnętrzne. Otrzymamy taki efekt:

Po scaleniu

Po scaleniu

Dwie pierwsze kolumny pochodzą z zapytania Regiony, natomiast trzecia – Nowa kolumna – jest wynikiem połączenia i zawiera ona w sobie tabele, w których znajdują się pasujące rekordy z zapytania Faktury. Tak, w PQ możemy w jedną „komórkę” wpakować całą tabelę. W Excelu co najwyżej jedną wartość. Natomiast my chcemy wyodrębnić z tych tabel wartości. Będzie to już prościutkie, ponieważ mamy tylko jeden rekord w każdej z nich, gdyż wcześniej dokonaliśmy grupowania i pozbyliśmy się nadmiarowych rekordów. Aby to zrobić, należy kliknąć na przycisk ze strzałkami obok nagłówka Nowa kolumna (zaznaczony na żółto na obrazkach). Polecam tylko odznaczyć kolumnę Klient (nic nam nie wniesie, a tylko zdubluje dane) i opcję Użyj oryginalnej nazwy kolumny jako prefiksu:

Rozwijanie

Rozwijanie

W wyniku dołączymy kolumnę Obrót do klienta i regionu:

Doklejenie obrotu

Doklejenie obrotu

Widać z obrazka powyżej, że nie potrzebujemy tutaj klientów, a jedynie ich ilość w regionie. Znowu zatem dokonamy grupowania, tym razem według regionu i jednocześnie policzymy klientów i zsumujemy obroty w regionach. Ustawmy się więc na kolumnie Region i wybierzmy Przekształć/ Grupuj według:

Ostatnie grupowanie

Ostatnie grupowanie

I w wyniku tego grupowania dostaniemy prawie to, co chcieliśmy na początku.

Wynik grupowania

Wynik grupowania

Teraz tylko dorzućmy kolumnę, o którą pytaliśmy na początku, czyli średni obrót na klienta. Aby to zrobić, ustawmy się w kolumnie Obrót (tę kolumnę chcemy dzielić) i skorzystajmy z menu Dodaj kolumnę, przycisk Standardowe, opcja Podziel.

Nowa kolumna - dzielenie

Nowa kolumna – dzielenie

Pojawi się następująca tabliczka, w której należy zaznaczyć, że chcemy dzielić przez wartość z innej kolumny:

Dzielenie

Dzielenie

Wynik otrzymamy taki, jak na obrazku poniżej. Oczywiście wynik jeszcze nie ostateczny 🙂

Wynik dzielenia

Wynik dzielenia

Wypada jeszcze zmienić nazwę kolumny i oczywiście posortować dane. Nazwę kolumny polecam zmienić w pasku formuły (nie ma potrzeby dodawania kolejnego kroku). Po prostu zmieńmy Wstawiono dzielenie na np. Średni obrót. I po tym średnim obrocie teraz posortujmy, czyli przycisk sortowania malejącego na karcie Narzędzia główne (po uprzednim zaznaczeniu kolumny Obrót).

Wynik teraz możemy załadować do Excela, np. do nowego arkusza (czyli Narzędzia główne/ Zamknij i załaduj). Po sformatowaniu danych wynik mamy następujący:

Wynik

Wynik

I voila! O to chodziło.

Na koniec możecie zapytać, czemu akurat Power Query, skoro nawet prostymi formułami da się powiedzieć jaki był średni obrót na klienta w regionie. Moja odpowiedź jest taka, że oczywiście, że się da, natomiast dzięki PQ dostajemy tutaj niesamowicie elastyczny mechanizm. Wystarczy, że do naszych tabel dojdą nowe faktury i klienci (a z pewnością tak się stanie!), zapytania PQ wystarczy odświeżyć i wynik uaktualni się sam. Dodam, że Power Query może te dane czerpać z bazy danych i nawet nie ma konieczności umieszczania w arkuszach danych źródłowych (Faktury i Regiony), co dla formuł jest koniecznością. Oczywiście nie twierdzę, że formuły są be – sama je kocham! Natomiast chodzi mi o przyszłościowe zastosowanie. Uważam, że akurat do tego formuły po prostu są bardziej uciążliwe. Coś jak formuły vs tabele przestawne 🙂

Wow, to chyba wpis z największą liczbą screenów na moim blogu i przy okazji chyba najdłuższy! Przyznam, że sporo pracy mnie to kosztowało. Mam nadzieję, że Wam się podoba chociaż!

A na koniec tradycyjnie plik do pobrania:

 

I film z rozwiązaniem (trochę inne nazwy kolumn, moim zdaniem we wpisie lepsze :)):

 

I na koniec powiązany film, o którym wspominałam na początku, czyli rozwiązanie z tabelami przestawnymi podobnego problemu (dane inaczej wyglądają):

 

Odwołania strukturalne tabel w formułach: blokowanie kolumn

$
0
0

Czyli jak zmusić Excela, by odwoływał się do wybranej kolumny przy kopiowaniu

Na pewno spotkaliście się z narzędziami tabel w Excelu. Mają one świetne właściwości, choćby takie, że umieją powiększać swoje rozmiary. Dodatkowo jak wpiszemy do nich formuły – nie musimy ich kopiować w dół – tabele robią to za nas. Natomiast odnośnie formuł to robią coś jeszcze, niekoniecznie lubianego przez użytkowników… stosują odwołania strukturalne, czyli odwołania do nazw elementów tabeli, jak np. kolumna, czy nagłówek. Dla prostych operacji to super sprawa, jednak dla trudniejszych może okazać się problemem…

Pierwszy raz na ten problem natknęłam się, gdy tworzyłam plik dla przedszkola moich dzieci, którego zadaniem było rozliczanie opłat za pobyt dzieci po godzinie 13:00. Wszystkie dane trzymałam w tabeli i wyliczałam tam kilka wartości na podstawie danych w jednej kolumnie. Jakież to było dla mnie irytujące, kiedy okazywało się, że podczas kopiowania formuły, Excel za każdym razem zmienia adresy kolumn (czyli zachowuje się tak, jak normalna kopiowana komórka!), podczas gdy ja chciałam, aby zmieniał mi adres tylko jednej (ale w żaden sposób mu tego nie powiedziałam :))! Nie umiałam tego zrobić, więc pisałam każdą formułę oddzielnie. Oh, dear God! BTW: teraz tak sobie o tym myślę i śmieję się z siebie, no bo niby skąd Excel miał wiedzieć, którą kolumnę Cierzniewska chciała zablokować? Chciałam, żeby Excel mi to wyczytał w myślach najwyraźniej 😉 Tego akurat nie umie, ale na szczęście umie „blokować” kolumny tabel w formułach. W tym wpisie zobaczysz jak.

W tym wpisie postanowiłam omówić prosty przykład, aby jak najlepiej pokazać metodę na blokowanie kolumn w odwołaniach strukturalnych. Będziemy chcieli obliczyć strukturę kosztów mediów w kwartale, a potem na każdego najemcę naszego centrum handlowego (a co!:)). Dane mamy następujące:

Formatka

Formatka

Matematycznie formuły to proste dzielenie sumy zużycia styczniowego przez sumę zużycia kwartalnego, przy czym w formule będziemy chcieli zablokować sumę kwartalną, gdyż każdy kolejny miesiąc będzie się do niej odwoływał. Dla struktury zużycia mediów na klienta będziemy robić to samo, tylko w kilku wierszach. A więc:

Struktura zużycia mediów

Informację o tym chcemy mieć w wierszu 3., więc do komórki C3 wpiszmy następującą formułę :

=SUMA(Media[Sty])/SUMA(Media[[Q1]:[Q1]])

Cały trik polega tutaj na zapisie kolumny Q1. Zauważcie, że jest on wskazana jako zakres kolumn i wskazana jest nazwa tabeli (koniecznie!). Nie jest to nic dziwnego, ponieważ dla stycznia też jest wskazana. Dzieje się tak dlatego, że formuła istnieje poza tabelą, stąd Excel musi wiedzieć, do jakiej tabeli ma się odwołać. Natomiast gdyby formuła była w tej tabeli – nadal musielibyśmy odwoływać się do tabeli podczas wskazywania zakresu kolumn. Wtedy dopiero uzyskamy efekt blokowania kolumny.

Można to oczywiście wpisać z palca, ale polecam inną metodę: oprócz zaznaczenia naszej docelowej kolumny (Q1), zaznacz jakąś kolumnę obok. Excel sam w ten sposób wstawi zakres, w którym wystarczy tylko podmienić nazwę „tej drugiej” kolumny na Q1:

Wskazywanie zakresu kolumn

Wskazywanie zakresu kolumn

I podmianka na właściwą nazwę kolumny:

Zmiana zakresu kolumn

Zmiana zakresu kolumn

Tak napisaną formułę trzeba teraz skopiować, ale uwaga! ZA POMOCĄ PRZECIĄGANIA!!!!! Niestety tylko tak, bo inaczej po prostu nie działa – skopiujemy tym sposobem formułę 1:1 (normalnie, żeby to uzyskać trzeba wejść do edycji formuły i skopiować tekst, który ją tworzy!). Strasznie nad tym ubolewam, ponieważ nie działa tutaj moje ukochane Ctrl + Enter ;(

Kopiowanie za pomocą PRZECIĄGANIA

Kopiowanie za pomocą PRZECIĄGANIA

I to cała filozofia 🙂 Zobaczmy teraz jak to zrobić na klientów.

Struktura zużycia mediów na klienta

Matematyka jest identyczna – dzielenie, natomiast będziemy dzielić pojedyncze wiersze, a nie sumy kolumn. Dlatego Excel doda sobie znaczek @ przy nazwie kolumny Znaczek ten oznacza, że ma być brana wartość z wiersza, w którym jest formuła.

Wpiszmy do komórki H6 taką formułę:

=Media[@Sty]/Media[@[Q1]:[Q1]]

A tak to wygląda podczas wpisywania:

To samo dla najemców

To samo dla najemców

Trik identyczny. Po skopiowaniu PRZECIĄGANIEM w prawo i w dół otrzymujemy następujący efekt (pamiętaj o wypełnianiu bez formatowania!):

Wynik

Wynik

Mam nadzieję, że odczarowałam :)Tabele nie takie straszne, choć przyznam bez bicia, że sama za nimi nie przepadam. Chyba dlatego, że formuły o nie oparte są mega długie 😉

6

Przeterminowane faktury: REAKTYWACJA

$
0
0

Czyli jak sprawić, aby Excel informował o statusie faktury: zapłacona/przeterminowana

Rok temu z kawałkiem opublikowałam artykuł, w którym zaproponowałam mechanizm sprawdzający czy faktura jest przeterminowana. Mechanizm działał, natomiast okazało się, że można go usprawnić. Kocham usprawnienia, więc chętnie poszłam za sugestią Marcina, który chciał mieć jeszcze informację, że faktura została już zapłacona. Czyli coś takiego:

Wynik

Wynik

Takie usprawnienie jeszcze lepiej pozwala trzymać pieczę nad fakturami, a wymaga tylko kilku drobnych zmian… Na końcu artykułu oczywiście plik do pobrania 🙂

Zmiana 1.: dodatkowa kolumna

Aby kontrolować, czy faktura została zapłacona, należy dorzucić kolumnę Data płatności. Jeśli znajdzie się w niej data – oznacza to, że płatności dokonano. Formatka powinna mieć więc takie kolumny, jak na obrazku powyżej.

 

Zmiana 2. Formuły

Dwie formuły wymagają modyfikacji:

1. Status – dochodzi nam drugi status: „zapłacona”

2. Liczba dni po terminie: ta kolumna informuje o tym, ile upłynęło już dni po terminie, a faktura nadal jest niezapłacona. Jeśli więc zostanie zapłacona (nawet po terminie), to chcemy tutaj wyświetlić zero.

A więc status.

Logika jest taka, że jeśli faktura została zapłacona, to chcemy wświetlić słowo „zapłacona”. Jeśli nie została zapłacona, to może być już przeterminowana i wtedy wyświetlamy status „przeterminowana”, albo może jeszcze up to date. Wtedy nie chcemy wyświetlać nic. Formuła, która to zrobi jest taka (komórka E6 w formatce na pierwszym obrazku):

=JEŻELI(D6>0;"zapłacona";JEŻELI(C6<$D$3;"przeterminowana";""))

Oczywiście jeśli wolicie inne opisy słowne – zmieniajcie według uznania.

Teraz liczba dni po terminie.

Liczba ta ma się wyświetlać wtedy, gdy faktura nie została zapłacona, czyli nie ma daty płatności, i termin jej płatności jest mniejszy niż dzisiejsza data (ja ją mam na formatce w komórce D3, ale oczywiście możesz użyć funkcji DZIŚ). W przeciwnym wypadku nie chcemy liczyć dni, czyli wpiszemy po prostu zero. Poniższa formuła to sprawdzi i wyliczy liczbę dni przeterminowania:

=JEŻELI(ORAZ(C6<$D$3;D6=0);$D$3-C6;0)

Zmiana 3. formatowanie warunkowe

Ostatnia zmiana to rozszerzenie zakresu formatowania warunkowego. Powinien on ogarniać cały zakres tabeli z fakturami. Ja w swoim pliku (do pobrania na końcu artykułu), posłużyłam się narzędziem tabela, które jest o tyle cudowne, że samo zwiększa swój rozmiar. Jeśli natomiast nie używacie tego narzędzia – koniecznie zmieńcie zakres formatowania warunkowego. A robi się to tak:
1. zaznacz zakres B6:F16 (na formatce u mnie) – dla tego zakresu będziesz pokazywać reguły formatowania warunkowego

2. Wejdź do Narzędzia główne/ Formatowanie warunkowe/ Zarządzaj regułami

3. W polu Dotyczy zaznacz nowy zakres, którego ma dotyczyć formatowanie. Powinien się on sam zmienić, jeśli dodaliście kolumnę między istniejącymi kolumnami. Jeśli za danymi – trzeba zmienić zakres:

Zmiana zakresu formatowania warunkowego

Zmiana zakresu formatowania warunkowego

No i tak na prawdę to tyle. Jedna kolumna gratis i zmiana w 2 formułach. That’s it!

I wersja wideo:

 

Co zrobić, aby wykres/obraz zachowywał rozmiar podczas zmiany szerokości kolumn?

$
0
0

W tym filmie pokazuję prostą opcję, dzięki której wykres zachowuje rozmiar, gdy zmieniasz szerokość kolumny czy wysokość wiersza. Domyślnie, kiedy je zmieniasz, a nad nimi jest wykres – on również zmienia swój rozmiar tak, jak kolumna/wiersz. Krótko mówiąc: wykres się ROZJEŻDŻA!!!

Jest to niesamowicie irytujące, bo cała misterna praca włożona w formatowanie go idzie na marne. Ale jest jedna prosta opcja, która temu zapobiega… Dokładnie ta sama opcja działa również w przypadku obrazów, które mają tę samą „przypadłość” 😉

Pokazuję ją w tym filmie:

Mam nadzieję, że się przyda i będziecie stosować 🙂

Zawiadomienie pracowników o zmianie wynagrodzenia

$
0
0

Czyli korespondencja seryjna w Excelu

Wyobraźmy sobie sytuację, że chcemy wszystkim pracownikom dać 10% podwyżki (lubię sobie wyobrażać takie sytuacje:)). Wszystko cudownie, ale wymaga to od nas stworzenia całej masy papierków, między innymi pisemną informację dla pracownika o tym fakcie. Chcemy mieć taką informację wydrukowaną na papierze, no więc nic prostszego – idealna sytuacja dla korespondencji seryjnej w Wordzie. Ale… dostaliśmy od przełożonej jedyną słuszną formatkę, tylko, że… w Excelu. Ma być taka i koniec.

No i zonk: jak zrobić korespondencję seryjną w Excelu???

Na szczęście jest rozwiązanie, tylko wymaga napisania makra.

Wynik

Plik, w którym będziemy działać składa się z 2 arkuszy:

  1. Wniosek
  2. Dane

W pierwszym z nich – Wniosek – znajduje się formatka do zadania:

Formatka

Formatka wniosku

W drugim zaś – Dane – dane pracowników, którymi będą zasilane żółte pola we wniosku. Dane te umieściłam w tabeli o nazwie tbOsoby:

Tabela z danymi zasilającymi wniosek

Tabela z danymi zasilającymi wniosek

Aby rozwiązać problem korespondencji seryjnej, wymyśliłam, że będę tworzyć oddzielne arkusze dla każdego pracownika z odpowiednimi jego danymi w żółtych komórkach:

  • F9 to imię i nazwisko,
  • F12 to nowe wynagrodzenie.

Czyli zadaniem makra będzie skopiowanie arkusza, nazwanie go imieniem i nazwiskiem pracownika oraz wpisanie danych pracownika w żółte komórki. Tyle.

Omówienie kodu

Jak już logikę znamy, to przejdę do omówienia kodu.

Cała procedura (sub) nazywa się Korespondencja. Zaraz potem następuję zdefiniowanie zmiennych i wyłączenie odświeżania ekranu (żeby okienka nie mrugały). Odpowiada za to tenkod:

Sub Korespondencja()
    Dim Zakres As Range, Czlowiek As String, Stawka As Double
    Dim ArkWniosek As Worksheet, ArkNowy As Worksheet
    Dim Licznik As Long, Wierszy As Long
    
    Application.ScreenUpdating = False

 

Następnie jest przypisanie zakresów do zmiennych (oczywiście wszelkie nazwy arkuszy czy tabel muszą być takie same, jak w arkuszu – uważaj na to) i od razu policzenie dla ilu osób powinien się stworzyć nowy arkusz. Odpowiada za to zmienna Wierszy, ponieważ jest to tak na prawdę liczba wierszy w tabeli z imionami i nazwiskami (tbOsoby):

    Set ArkWniosek = Sheets("Wniosek")
    Set Zakres = Sheets("Dane").Range("tbOsoby")
        Wierszy = Zakres.Rows.Count

Kolejny etap to już pętla For, która przelatuje po tabeli tbOsoby i w pierwszym kroku przypisuje do zmiennych Czlowiek i Stawka wartości kolejno z niej odczytane:

    For Licznik = 1 To Wierszy
        Czlowiek = Zakres.Cells(Licznik, 1).Value
        Stawka = Zakres.Cells(Licznik, 2).Value

Dalej następuje kopiowanie arkusz z wnioskiem (skopiowany arkusz to od tej pory ArkNowy) i zmiana jego nazwy na imię i nazwisko pracownika, oraz wpisanie odpowiednich wartości do żółtych komórek:

        ArkWniosek.Copy After:=ArkWniosek
            Set ArkNowy = Sheets(ArkWniosek.Index + 1)
            ArkNowy.Name = Czlowiek
        
        ArkNowy.Range("F9").Value = Czlowiek
        ArkNowy.Range("F12").Value = Stawka
     Next

Na koniec to już tylko aktywowanie głównego arkusza Wniosek i włączenie odświeżania ekranu (żeby okienka mrugały):

    ArkWniosek.Activate
    
    Application.ScreenUpdating = True
    
End Sub

Kod w całości wygląda tak:

Sub Korespondencja()
    Dim Zakres As Range, Komorka As Range, Czlowiek As String, Stawka As Double
    Dim ArkWniosek As Worksheet, ArkNowy As Worksheet
    Dim Licznik As Long, Wierszy As Long
    
    Application.ScreenUpdating = False
    
    Set ArkWniosek = Sheets("Wniosek")
    Set Zakres = Sheets("Dane").Range("tbOsoby")
        Wierszy = Zakres.Rows.Count
    
    For Licznik = 1 To Wierszy
        Czlowiek = Zakres.Cells(Licznik, 1).Value
        Stawka = Zakres.Cells(Licznik, 2).Value
        
        ArkWniosek.Copy After:=ArkWniosek
            Set ArkNowy = Sheets(ArkWniosek.Index + 1)
            ArkNowy.Name = Czlowiek
        
        ArkNowy.Range("F9").Value = Czlowiek
        ArkNowy.Range("F12").Value = Stawka
        
    Next
    
    ArkWniosek.Activate
    
    Application.ScreenUpdating = True
    
End Sub

W wyniku działania makra otrzymujemy tyle nowych arkuszy, ilu było pracowników na liście. Teraz, jeśli ich wszystkich chcemy wydrukować (nieistotne, czy na papierze, czy do PDF), wystarczy zaznaczyć te arkusze, które chcemy drukować i wybrać odpowiednią opcję drukowania (omawiam to niżej).

To, że że każdego mamy w oddzielnym arkuszu może Wam się wydać przerażające, na szczęście Excel umożliwia nam łatwą nawigację po arkuszach. Służą do tego strzałki obok kart arkuszy (wersja dla Excela 2013 w górę):

Strzałki nawigacji między arkuszami

Strzałki nawigacji między arkuszami (wersja 2013 i wyższe)

W Excelu 2007 i 2010 wygląda to nieco inaczej:

Strzałki nawigacji między arkuszami 2010

Strzałki nawigacji między arkuszami 2007 i 2010

W Excelu 2013 i wyższych, aby przejść do ostatniego arkusza trzeba przycisnąć klawisz Ctrl i nacisnąć strzałkę w prawo (jak na rysunku), a w niższych wersjach jest do tego dedykowana strzałeczka: z pionową kreską (coś jak przewijanie filmu).

Analogicznie sytuacja wygląda z nawigowaniem do pierwszego arkusza.

Dodatkowo, żeby zaznaczyć arkusze od – do, należy:

  1. wskazać pierwszy z nich (w tym przypadku będzie arkusz dla pierwszej osoby, zaraz po arkuszu Wniosek),
  2. przytrzymać klawisz Shift,
  3. zaznaczyć ostatni arkusz.

A jeśli chcecie zaznaczać tylko wybrane arkusze – wskazujecie je i jednocześnie trzymacie klawisz Ctrl.

A więc jak już zaznaczyliśmy te arkusze, które chcemy drukować – kwestia odpowiednich ustawień drukowania (skrót klawiszowy do drukowania to Ctrl + p, lub Plik/Drukuj):

Ustawienia drukowania

Ustawienia drukowania

Numer 2 na obrazku powyżej o wybór drukarki (ja wybrałam druk do PDF), a nr 3 to właśnie opcja Drukuj aktywne arkusze, którą trzeba zaznaczyć, aby wydrukować wszystkie zaznaczone arkusze na raz. Kocham tę opcję, zwłaszcza, że jest domyślna :).

No i tyle. Drukowania nie wrzucałam do makra, ponieważ pomyślałam, że wolę zostawić Wam dowolność w sposobie drukowania, jednocześnie zachowując prosty kod.

Jeśli chcesz zobaczyć krok po kroku jak napisać kod, polecam film:

 

A gotowiec do pobrania tutaj:
MalinowyExcel_Korespondencja seryjna w Excelu dw

 

Jak zapisać m2 w Excelu, czyli indeks górny w komórce

$
0
0

W Excelu wiem jak, ale nie wiem jak w tytule posta i na YouToube 😉 W każdym razie na poniższym filmie pokazuję jak to zrobić i wierzcie mi – jest to bardzo proste. Nie ma co prawda oddzielnego przycisku, jak w Wordzie, ale się da!

Mogą Ci się przydać takie skróty klawiszowe:

  • F2 – wejście do edycji komórki
  • Ctrl + 1 – wejście do formatowania komórki, w tym wypadku, po zaznaczeniu dwójki – formatowania czcionki
  • Ctrl + Enter – zatwierdzenie wpisu w komórce, przy czym zaznaczenie pozostaje w tej samej komórce.

 


Wielkość liter taka, jak w zdaniu (formuła)

$
0
0

Czyli robimy Worda z Excela 🙂

Rety, już kolejny wpis o funkcjonalnościach Worda w Excelu. Ostatnio była korespondencja seryjna i indeks górny (np. m2), a dziś o wielkości liter.

Już wielokrotnie napotkałam sytuację, że dostałam dane, gdzie wszystko był napisane małymi literami, a ja chciałam, aby wielkość liter była taka, jak w zdaniu, czyli zamienić wielkość pierwszej litery w zdaniu na wielką, a pozostałe na małe. Sprawa pozornie prosta, wystarczy znaleźć odpowiednią funkcję, ale… nie ma takiej 🙂 W Excelu mamy 3 funkcje umiejące zmienić wielkość liter, ale żadna nie umie zmienić ich w taki właśnie sposób. W Wordzie – nie ma problemu:

Opcje dostępne w Wordzie

Opcje dostępne w Wordzie

Ale nie w Excelu… Na szczęście na spokojnie można poradzić sobie z tą sytuacją. Tylko za pomocą formuły, używającej kilku funkcji tekstowych.

Załóżmy, że teksty, w których chcemy zamienić wielkość liter są w kolumnie B takiej formatki:

Formatka

Formatka

Jak widać – mamy 3 warianty (można oczywiście stworzyć więcej konfiguracji, ale te wyczerpują temat ;)):

  1. tylko małe litery
  2. tylko wielkie litery
  3. litery różnej wielkości

Moim celem jest napisanie takiej formuły, która we wszystkich tych wariantach ustawi pierwszą literę zdania na wielką, a pozostałe na małe.

Logika formuły

Najpierw z tekstu wytniemy pierwszy znak – posłuży nam do tego cudowna funkcja tekstowa LEWY. Późnej zamienimy tę literę na wielką, za pomocą funkcji LITERY.WIELKIE.

Następnie wyodrębnimy pozostałą część zdania. Zrobimy to funkcją PRAWY, której każemy wyciąć tyle znaków od końca tekstu, ile jest w całym tekście minus jeden (ten jeden to pierwsza litera, którą zamieniamy na wielką). Do obliczenia długości tekstu posłużymy się funkcją DŁ.

Jak już to będziemy mieli – wrzucimy to w funkcję LITERY.MAŁE, aby zamienić na małe litery oczywista, i całość połączymy ze sobą. Formułą wygląda tak…

Formuła

Pierwszy krok to wycięcie pierwszej litery i zamiana jej na wielką:

LITERY.WIELKIE(LEWY(B5))

Następnie wyodrębnienie reszty zdania:

PRAWY(B5;DŁ(B5)-1)

Potem zamiana wielkości liter w tej reszcie na małe:

LITERY.MAŁE(PRAWY(B6;DŁ(B6)-1))

I sklejenie wszystkiego ze sobą, za pomocą &:

=LITERY.WIELKIE(LEWY(B5))&LITERY.MAŁE(PRAWY(B5;DŁ(B5)-1))

Efekt tego otrzymujemy taki:

Wynik

Wynik

Tadam! Cała filozofia.

Formułka działa, tylko… jak dla mnie jest strasznie upierdliwa. Za trzecim razem, kiedy okazało się, że jej potrzebuję, stwierdziłam, że nie chce mi się jej pisać od nowa, tylko napiszę sobie funkcje w VBA, która będzie dostępna w każdym otwartym arkuszu. Ale to pokażę Wam w kolejnym wpisie 😉

I film, pokazujący proces pisania tej formuły:

 

A w kolejnym wpisie to samo, tylko za pomocą funkcji VBA 🙂

 

Wielkość liter taka, jak w zdaniu (funkcja VBA)

$
0
0

Czyli robimy Worda z Excela – tym razem przy pomocy VBA

W poprzednim wpisie pokazywałam formułę, którą zamieniałam pierwszą literę w komórce na wielką, a pozostałe na małe. Używałam do tego formuły. Metoda super, bo działa 🙂 Natomiast dla mnie aż się prosi o usprawnienie. Zakładam bowiem, że będę jej potrzebowała częściej niż tylko raz i nie chce mi się jej pisać za każdym razem. Wolę wpisać funkcję, która to zrobi. Niestety, jak pisałam ostatnio, Excel takiej funkcji nie posiada…

…a skoro nie posiada, to trzeba ją samodzielnie napisać w VBA! I o tym będzie dzisiejszy film.

A kod napisany w tym filmie to:

Function JakWZdaniu(Tekst As String)
    JakWZdaniu = UCase(Left(Tekst, 1)) & LCase(Right(Tekst, Len(Tekst) - 1))
End Function

Jego logika jest dokładnie identyczna, co formuły opisanej tutaj, tylko jest to odpowiednik w VBA.

Co jest jeszcze szalenie istotne, to pamiętaj, aby zapisać plik jako plik z obsługą makr, czyli z rozszerzeniem xlsm. A jeśli chcesz, aby ta funkcja działała w każdym otwartym przez Ciebie pliku Excela – zapisz ją np. jako dodatek do Excela – pod koniec tego artykułu opisuję jak to zrobić.

I na koniec plik z gotowcem do pobrania:

MalinowyExcel_Wielkość liter taka jak w zdaniu VBA dw.xlsm

 

Nadgodziny w tygodniu i w weekendy

$
0
0

Czyli trochę o wykorzystaniu funkcji DZIEŃ.TYG

Załóżmy, że pracownik pracuje na cały etat, czyli codziennie ma do przepracowania 8 godzin. My chcemy obliczyć liczbę nadgodzin, które zrobił. Nadgodziny rozumiem tutaj tak, że jeśli pracował w tygodniu dłużej niż 8 godzin, to każda nadwyżka to już są nadgodziny. Natomiast jeśli przyszedł do pracy w weekend, to każdy przepracowany czas traktuję jako nadgodziny.

Sytuację tę pokazuje poniższy obrazek, który równocześnie jest tym, co chcemy uzyskać.

Wynik

Pusta formatka wygląda więc tak:

Formatka

Formatka

Do komórki E3 trzeba wpisać wymiar etatu w postaci godzin, jakie pracownik powinien codziennie przepracować. Kolumna Czas pracy będzie zawierała faktycznie przepracowany czas, a kolumna Nadliczbowe – nadgodziny.  Ostatnia kolumna – Odebrane – informuje o tym, ile godzin danego dnia pracownik odebrał z nadgodzin (taka sytuacja jest np.  trzeciego dnia).

Omówię teraz po kolei wszystkie obliczenia.

Obliczanie czasu pracy

Zacznijmy od najłatwiejszego, czyli po prostu od obliczenia ile czasu pracownik w ogóle danego dnia przepracował. Jest to proste działanie: od czasu końcowego odejmujemy czas początkowy. Formuła w komórce E6 wygląda tak:

=D6-C6

A po skopiowaniu jej do pozostałych komórek kolumny Czas pracy dostajemy to:

Obliczony czas pracy

Obliczony czas pracy

Teraz główny punkt programu, czyli obliczanie nadgodzin…

Obliczanie nadgodzin w ciągu dnia

Zacznę od środka, czyli od omówienia funkcji, która umie rozpoznać dzień tygodnia. Funkcją, którą mam na myśli jest DZIEŃ.TYG. Funkcja ta zwraca dzień tygodnia w postaci cyfry. Ma ona dwa argumenty:

  1. data, z której chcemy poznać dzień tygodnia
  2. sposób prezentacji wyniku.

Drugi argument jest tutaj tajemniczy i zarazem kluczowy. Mówi on bowiem o tym, jaka cyfra ma oznaczać jaki dzień tygodnia. My oczywiście chcemy, aby poniedziałek był reprezentowany przez 1, wtorek przez 2 itd. Aby to uzyskać, w drugim argumencie funkcji DZIEŃ.TYG musimy wpisać cyfrę 2. Czyli funkcja będzie wyglądała tak:

DZIEŃ.TYG(B6;2)

I teraz jeśli ten dzień tygodnia będzie sobotą lub niedzielą (6 lub 7, czyli po prostu większe lub równe 6), to w komórce wynikowej chcemy wyświetlać czas pracy, wyliczony wcześniej. Za ten fragment rozumowania odpowiada następująca część formuły:

DZIEŃ.TYG(B6;2)>=6

Natomiast jeśli dzień tygodnia jest inny niż sobota lub niedziela – będziemy chcieli wyświetlić nadgodziny wyliczone poprzez odejmowania wymiaru etatu (8:00) od czasu pracy. Jeśli różnica będzie dodatnia -mamy nadgodziny. Jeśli nie – nie ma nadgodzin, czyli 0.

Do wybrania czy wyświetlić różnicę (nasze nadgodziny), czy też zero, można by użyć funkcji JEŻELI. Natomiast ja jej w tym użyciu nie lubię, bo nie lubię się powtarzać. Zastosuję natomiast funkcję MAX (ten sam trik omawiałam tutaj, przy liczeniu podatku i kosztów uzyskania przychodów). Będzie wyglądała ona następująco:

MAX(E6-$E$3;0)

Zadaniem funkcji MAX jest wybranie największej wartości spośród tych, które dostała w argumentach. Nasza MAX dostała różnicę (czas pracy minus etat) i zero. Jeśli będą nadgodziny – różnica będzie dodatnia. Jeśli nie będzie nadgodzin – zero lub ujemna. Czyli jeśli MAX dostanie coś takiego: MAX(1;0), to wybierze większą, czyli 1, czyli jedną nadgodzinę. natomiast jak dostanie coś takiego MAX(-1;0), to wybierze 0, czyli brak nadgodzin. I to cały myk.

Po wrzuceniu wszystkiego do funkcji JEŻELI, otrzymamy taką formułę:

=JEŻELI(DZIEŃ.TYG(B6;2)>=6;E6;MAX(E6-$E$3;0))

Obliczanie godzin odebranych

Tutaj znów zastosujemy myk z funkcją MAX. Tym razem będziemy badać różnicę między wymiarem etatu (8:00), a liczbą godzin przepracowanych danego dnia. Jeśli różnica ta będzie dodatnia (>0), tzn., że pracownik tego dnia odbierał nadgodziny. Jeśli zerowa lub ujemna – nie odbierał. Wynik różnicy porównamy funkcją MAX do zera i znów otrzymamy większą z wartości: zero w przypadku, gdy nadgodzin nie odbierano, a liczbę godzin w przypadku odbierania.

Funkcja jest taka:

=MAX(0;$E$3-E6)

Obliczanie wszystkich nadgodzin

Na koniec zostaje tylko obliczenie wszystkich nadgodzin. Będzie to po prostu różnica między godzinami nadliczbowymi, które nam wyszły z podsumowania kolumny Nadliczbowe, a podsumowaniem kolumny Odebrane. Formuła w komórce G16 jest taka:

=F14-G14

Po wpisaniu wszystkich omówionych formuł otrzymamy taki efekt:

Wynik

Wynik

I tyle. Jakże proste i użyteczne 🙂 Jak Ci się przyda – udostępnij to proszę znajomym, może im też się przyda.

Na koniec jeszcze wideo, w którym pokazuję krok po kroku jak zrobić omawiany w tym wpisie przykład:

I na koniec plik do pobrania:

Jeśli nie udaje Ci się pobrać pliku, kliknij na link prawym przycikiem myszy i wybierz opcję: Zapisz link jako”:

Podsumowanie tygodniowych nadgodzin – SUMA.JEŻELI lub SUMA.ILOCZYNÓW

$
0
0

Wpis ten pokazuje metodę na obliczenie nadgodzin w pewnym okresie, zakładając, że nadgodziny to wszystkie godziny przepracowane ponad etat i w weekendy. W poprzednim wpisie pokazywałam jak to zrobić z kolumnami pośredniczącymi, w których krok  po kroku są obliczane czas pracy, godziny nadliczbowe i godziny, które pracownik odebrał.

W dzisiejszym filmie pokazuję zaś jak to zrobić tylko na podstawie daty (tutaj mamy informację o dniu tygodnia) i godzin pracy.

Pokazuję 2 sposoby na obliczenie tego:

  1. z kolumną pośredniczącą, przy użyciu funkcji SUMA.JEŻELI i LICZ.JEŻELI
  2. bez kolumny pośredniczącej, za pomocą formuł tablicowych, używających funkcji SUMA.ILOCZYNÓW (nie trzeba zatwierdzać kombinacją klawiszy Ctrl + Shift + Enter)

Oba rozwiązania omawiam na filmie:

A tutaj możesz skopiować użyte formuły:

1. Wersja z kolumną pośredniczącą

Dzień tygodnia (G6):

=DZIEŃ.TYG(B6;2)

Godziny w tygodniu

=SUMA.JEŻELI(G6:G13;"<=5";E6:E13)

Należnych godzin

=LICZ.JEŻELI(G6:G13;"<=5")*E3

Nadgodziny w tygodniu (formuła taka sama dla obu wersji)

=F16-F17

Nadgodziny w weekendy

 =E14-F16

2. Wersja tablicowa

Godziny w tygodniu

=SUMA.ILOCZYNÓW(--(DZIEŃ.TYG(B6:B13)<6);E6:E13)

Należnych godzin

=SUMA.ILOCZYNÓW(--(DZIEŃ.TYG(B6:B13)<6))*E3

I na koniec plik do pobrania:

 

Nadgodziny w tygodniu i w weekendy – wyliczanie wynagrodzenia

$
0
0

Dzisiaj kontynuacja wpisów/filmów o nadgodzinach w tygodniu i w weekendy. Zapytaliście mnie jak obliczyć wynagrodzenie za te nadgodziny i za godziny podstawowe.

Ponieważ jest to prosta sprawa, nagrałam o tym tylko film. Zobaczcie tutaj:

A formuły użyte do obliczenia wynagrodzenia za czas pracy są następujące:

1. Wynagrodzenie za czas podstawowy:

=G18*F4*24

2. Wynagrodzenie za nadgodziny:

=G19*F5*24
I plik do pobrania z gotowcem (trochę inaczej wygląda niż na filmie – tabela jest samopowiększająca się):
MalinowyExcel_Nadgodziny w weekendy wynagrodzenie tabela dw.xlsx

PS Jeśli nie udaje Ci się pobrać pliku, kliknij na link prawym przyciskiem myszy i wybierz opcję: „Zapisz link jako”:

 

Jak się pozbyć tych denerwujących zielonych trójkącików – reaktywacja

$
0
0

Już kiedyś o tym pisałam, ale ostatnio temat do mnie wrócił. Prowadziłam szkolenie „Office dla asystentek i office managerów” i jedna z uczestniczek zapytała mnie jak ponownie pokazać zignorowane wcześniej trójkąciki. Przyznam, że to pytanie słyszałam pierwszy raz w życiu. No i… nie znałam na nie odpowiedzi (to akurat nie pierwszy raz w życiu ;)).

Szybko potem odkryłyśmy z uczestniczkami, że jest do tego przycisk. Dzięki temu już wiem jak trójkąciki przywrócić i oczywiście pokażę jak to zrobić przy okazji tego wpisu. Natomiast wpis będzie ogólnie o pozbywaniu się zielonych trójkącików, gdyż to pytanie słyszę zdecydowanie częściej 😉

A czym w ogóle te trójkąciki są (oprócz tego, że denerwującym elementem komórki)?

Jest to sposób, w jaki Excel pokazuje nam, że coś mu się w komórce nie podoba, że znalazł jakiś błąd. Najczęstszą sytuacja jest liczba przechowywana jako tekst, tak, jak na obrazku poniżej. Excel uważa to za błąd, natomiast my – nie. Zależy nam czasem na takiej formie zapisu liczby, np. id produktu, ponieważ dokładnie taki widnieje np. u nas w systemie (SAP czy innym). I żeby poprawnie na tym działało np. WYSZUKAJ.PIONOWO, musimy zachować taką formę. Nie wspominając już o kontach bankowych, których po prostu nie da się inaczej w Excelu poprawnie zapisać, niż właśnie w postaci tekstowej.

Często więc te trójkąciki po prostu nas denerwują. W tym wpisie pokażę jak się ich pozbyć. Znam 2 metody na to. Obie metody zostawiają pierwotną wartość komórki, a jedynie ukrywają trójkącik. Jedna ma zastosowanie, gdy chcemy pozbyć się ich tylko w konkretnym zakresie komórek, druga – ukrywa wszystkie, niezależnie od tego, gdzie występują.

1. Ignoruj błąd

Ta opcja pozwala ukryć trójkąciki w zaznaczonym zakresie, np. w jednej lub kilku komórkach. Trzeba jej użyć za każdym razem, kiedy chcemy ukryć trójkąciki. Ważne jest to, że tym sposobem ukrywamy tylko konkretne trójkąciki. Nie od razu wszystkie jak leci (to metoda kolejna).

Żeby więc ukryć tylko wybrane trójkąciki, należy:

1. Zaznaczyć zakres, w którym chcemy je ukryć

2. W lewym górnym rogu zaznaczonego zakresu pojawi się wykrzyknik na żółtym polu. Klikamy go.

Wykrzyknik na żółtym tle

Wykrzyknik na żółtym tle

3. Wybieramy z listy, która się pojawi, opcję: Ignoruj błąd.

Ignoruj błąd

Ignoruj błąd

I that’s it! Efekt dostaniemy taki:

Wynik ignorowania błędów

Wynik ignorowania błędów

Jak widać jeden zakres nie ma trójkącików (ten, któremu usuwaliśmy), a drugi ma. Smutna prawda jest jednak taka, że jak skopiujemy gdzieś pierwszy zakres, który już nie ma trójkącików, to w nowym miejscu będzie miał ;(

Rozwiązaniem na to może być druga metoda pozbywania się trójkącików.

2. Opcje programu

Czyli hurtowe pozbywanie się trójkącików we wszystkich plikach Excela, które otworzymy na swoim komputerze. Nawet jeśli dostaniemy je od kogoś. Pochodzenie pliku nie ma tutaj znaczenia. Po prostu mówimy Excelowi, żeby nie sprawdzał błędów. I on przestaje to robić.

Żeby to uzyskać należy pogrzebać w opcjach Excela.

1. Czyli wchodzimy do menu Plik/ Opcje (dla Excela 2007 jest przycisk pakietu Office w lewym górnym rogu programu).

2. Wybieramy kategoria Formuły, sekcja Sprawdzanie błędów i tutaj odznaczamy checkbox Włącz sprawdzanie błędów w tle:

Opcje

Opcje

BTW: w tym okienku też można przywrócić błędy zignorowane metodą, którą opisałam wcześniej. Tego właśnie dowiedziałam się ostatnio na szkoleniu, które prowadziłam ;). Dodatkowo zobacz, że w tym miejscu możesz też zdecydować, jakie błędy Excel ma sprawdzać, a jakich nie. No i oczywiście to, co opisałam przed chwilą: można kazać Excelowi, żeby w ogóle ich nie sprawdzał.

I efekt mamy taki:

Wynik ustawienia opcji

Wynik ustawienia opcji

Zauważ, że w arkuszu nic nie zaznaczałam, a trójkąciki z obu zakresów zniknęły. Mało tego: od tej pory jak otworzę jakikolwiek plik Excela na swoim komputerze – nie zobaczę już nigdy zielonych trójkącików!!!

Oczywiście tylko na swoim komputerze.

Jeśli ten wpis Ci się przydał, to mam prośbę: podziel się nim ze swoimi znajomymi. Może ich też denerwują zielone trójkąciki? 😉
I na koniec jeszcze wersja wideo tego wpisu:

 

Wynagrodzenie za nadgodziny 50% i 100%

$
0
0

Czyli wkopuję się głębiej w temat wynagrodzenia za nadgodziny

Zapytaliście mnie bowiem, jak obliczyć wysokość dodatków 50% i 100% za nadgodziny dobowe. W tym wpisie pokazuję najprostszą na świecie metodę na to. Ponieważ jednak jest najprostsza – wymaga od użytkownika ręcznego zdefiniowana, za które nadgodziny należy się dodatek 50%, a za które 100%. Zdaję sobie więc sprawę, że wpis ten nie wyczerpie tematu rozliczania nadgodzin, natomiast mam nadzieję, że znacznie go uprości.

Wpis ten jest jednocześnie kontynuacją ostatnio poruszanych na blogu tematów nadgodzin i wynagrodzenia za nie. O obliczaniu nadgodzin (czyli formuły w kolumnach E, F i G z poniższego obrazka) możesz przeczytać tutaj.

Wynagrodzenie za nadgodziny 50 i 100 Malinowy Excel

Formatka jest rozszerzeniem tych z poprzednich wpisów i wygląda tak:

Formatka

Formatka

Do ręcznego uzupełnienia jest tym razem kolumna Rodzaj ndg, komórka z wymiarem etatu F3 i z wynagrodzeniem godzinowym (F4). Pozostałe żółte pola, czyli obliczanie liczby nadgodzin 50% i 100% oraz wynagrodzenie za nie – będą to formuły, omówione niżej.

1. Obliczanie liczby nadgodzin 50% i 100%

Tutaj chcemy podsumować liczbę godzin nadliczbowych, ale tylko takich, za które należy się dodatek 50% lub 100%. Jak już je obliczymy, odejmiemy od nich już odebrane godziny każdego typu. Nie chcemy za nie wypłacać wynagrodzenia.

Czyli jak interesują nas nadgodziny 50% to chcemy podsumować te nadgodziny z kolumny Ndg, które w kolumnie Rodzaj ndg mają wpis 50%. Następnie, na tej samej zasadzie, odejmujemy od nich już odebrane godziny, czyli z kolumny Odebrane.

Idealna do tego będzie funkcja SUMA.JEŻELI. Zobaczcie formułę w komórkach D19 i D20 (dla 50% i 100% jedna formuła do skopiowania):

=SUMA.JEŻELI($H$7:$H$14;C19;$F$7:$F$14)-SUMA.JEŻELI($H$7:$H$14;C19;$G$7:$G$14)

Dzięki temu, że mam tak skonstruowaną formatkę, że wartości 50% i 100% mam wpisane w oddzielne komórki – w powyższej formule mogę się do nich na spokojnie odwołać, dzięki czemu wystarczy ta jedna formuła dla obu rodzajów nadgodzin. Oczywiście muszą też być poblokowane zakresy – bez tego ani rusz 😉

Dostajemy w efekcie coś takiego:

Liczba nadgodzin

Liczba nadgodzin

2. Wynagrodzenie za nadgodziny

Obliczenie wynagrodzenia za te nadgodziny to już pikuś. Zrobię to identycznie jak na tym filmie (na nim dokładnie tłumaczę skąd się wzięło mnożenie *24).

Formuła w komórkach H19 i H20 jest taka:

=D19*24*$F$4*(1+G19)

Kolejność mnożenia oczywiście dowolna.

Ze wszystkiego wychodzi nam to:

Wynik

Wynagrodzenie za nadgodziny 50% i 100%

I to tyle. Takie to proste.

Poniżej plik do pobrania (w wygodniejszej do wpisywania dużej liczby danych wersji):MalinowyExcel_Wynagrodzenie za nadgodziny 50 100 tabela dw.xlsx

I film, na którym krok po kroku prezentuję opisane rozwiązanie:

Enjoy!

 


Wyświetlanie wartości w tysiącach – mało znane użycie wklej specjalnie

$
0
0

Temat ten już poruszałam na blogu w tym wpisie, jednak pokazywałam tam metodę wykorzystującą formatowanie komórki.

Metoda fajna, aczkolwiek dla wielu może okazać się niepraktyczna, ponieważ jedynie wyświetla ona liczbę w tysiącach. Wartość komórki jednak pozostaje jednak nadal taka jak była. W tym wpisie pokażę Ci prostą metodę na to, aby zarówno wyświetlana wartość komórki jak i ta faktyczna były takie same, czyli właśnie w tysiącach.

Wykorzystam do tego mało znaną opcję wklejania specjalnego.

Wyświetlanie kwot w tysiącach złotych Malinowy Excel

Aby szybko wyświetlić liczby w tysiącach, należy:

1. W dowolną pustą komórkę arkusza wpisz: 1000

2. Skopiuj tę wartość  (Ctrl + c)

3. Zaznacz zakres liczb, które mają być wyświetlone w tysiącach

4. Kliknij prawym przyciskiem myszy na tym zaznaczeniu

Prawy klik na zaznaczeniu

Prawy klik na zaznaczeniu

5. Z menu kontekstowego wybierz opcję Wklej specjalnie

Wklej specjalnie...

Wklej specjalnie…

6. W okienku wklejania specjalnego zaznacz operację PodzielDodatkowo, aby zachować formatowanie tabelki możesz zaznaczyć też opcję Wartości

Operacja podziel

Operacja podziel

7. Zatwierdź OK i gotowe!

Oto wynik:

Wynik

Wynik

Wszystko krok po kroku omawiam na filmie, jeśli wolisz:

 

 

Dzień numer 43000 w Excelu!

$
0
0

Czyli jak to jest z tymi datami?

Dzisiaj szczególny dzień. I to nie dlatego, że jest piątek. No… też, ale nie głównie dlatego 😉

DZISIAJ JEST DZIEŃ NUMER 43000 W EXCELU!

No ok, ale co to oznacza?

Dla Excela daty są liczbami naturalnymi. Pierwszą datą jaką Excel rozumie jest 1 stycznia 1900. Data ta odpowiada liczbie 1. Kolejny dzień to 2 stycznia 1900, i jest to liczba 2 itd. Dzisiaj, czyli 21 września 2017 mamy dzień numer 43000.

Taka sytuacja zdarza się raz na ok. 3 lata, więc jest co świętować 😉
Dzień 43000 w ExceluJeśli chcesz się samodzielnie o tym przekonać, to:

1. Wpisz do dowolnej komórki Excela dzisiejszą datę (polecam Ci do tego skrót klawiszowy Ctrl + ;),

Dzisiejsza data

Dzisiejsza data

2. Następnie zmień format wpisanej daty na Ogólny (skrót klawiszowy to Ctrl + Shift + `)

Zmiana formatu komórki na ogólny

Zmiana formatu komórki na ogólny

Czyli oznacza to, że od dnia 1 stycznia 19000 minęło 43000 dni (no, w sumie jeszcze nie minęło;)).

Oczywiście dzieje się do przy domyślnych ustawieniach Excela. Można bowiem tak go ustawić, aby numerację zaczynał od 1 stycznia 1904 roku. Ale nie ma co mieszać :).

Daty to liczby? O co właściwie tutaj chodzi?

Wiele osób nienawidzi dat w Excelu. Wiecznie sprawiają problem. Tak, zgadzam się. Ale dzieje się tak dlatego, że nieumiejętnie do nich podchodzimy i nie rozumiemy ich. Kluczem do zrozumienia dat jest to, co napisałam wyżej odnośnie tego jakimi liczbami są daty. I to, że są LICZBAMI.

Zobaczcie jeszcze raz:

Jakimi datami są liczby

Jakimi datami są liczby

A to, że my widzimy te liczby jako daty, to jest nic innego niż FORMAT KOMÓRKI. Czyli każdą liczbę naturalną (całkowitą większą od zera) możemy sformatować jako data i wyjdzie nam data. PS ostatnią datą jest 9999-12-31.

Formatujemy, przypominam, np. skrótem klawiszowym Ctrl + 1 i wybieramy kategorię Data:

Formatuj komórki

Formatuj komórki

Dobrodziejstwa: data = liczba

To, że Excela traktuje daty jako liczby ma szereg pozytywnych konsekwencji.

1. Najważniejsza jest taka, że można dodawać do siebie dni

W ogóle, powiedziałabym, że jakiekolwiek operacje na datach są dzięki temu możliwe. Za pomocą prostej formuły możemy sprawdzić np. jaka data będzie za tydzień, czyli za +7 dni. Excel po prostu doda 7 do liczby, która kryje się pod naszą datą. Wyjdzie mu kolejna liczba, która znowu będzie datą – tą za 7 dni. I tak to się kręci.

Na obrazku sprawdzam właśnie to: datę za tydzień:

Data za tydzień

Data za tydzień

Formuła oczywiście jest taka:

=B3+7

Na tekście tego nie zrobimy, ponieważ nie da się dodawać tekstów.

2. Sortowanie dat niezależnie od formatu.

Excel po prostu sortuje liczby, a to jak je wyświetla – czyli jako daty – ma już drugorzędne znaczenie.

3. Z daty możesz się łatwo dowiedzieć np. jaki to rok

Wystarczy użyć odpowiednich funkcji daty. Są one bardzo prościutkie i łatwo je zapamiętać :). Oto te najważniejsze:

=ROK(A1)

=MIESIĄC(A1)

=DZIEŃ(A1)

Jest jeszcze cała masa innych funkcji, np. taka, która potrafi obliczyć ile dni roboczych minęło między dwiema datami (przykład jej użycia zobacz tutaj). I nie są to bynajmniej funkcje tekstowe LEWY czy PRAWY, ponieważ te nie mają prawa poprawnie zadziałać na datach, gdyż wyodrębniają znaki z wartości komórki, a nie z jej formatu. Natomiast wspomniane funkcje dat zadziałają niezależnie od formatu, ponieważ działają na wartości komórki, czyli liczbie.

Disclaimer

Ale! Żeby wszystko poszło tak pięknie i gładko, jak to opisuję, data MUSI BYĆ POPRAWNIE WPISANA DO KOMÓRKI. Sposobem, który działa na większości komputerów, jest wpisanie daty w takim formacie:

rrrr-mm-dd

lub ewentualnie:

rrrr/mm/dd

Są oczywiście inne metody na wpisywanie dat, ale nie chcę tutaj mieszać. Jeśli mimo wszystko nadal nie jesteś pewna/y, jak poprawnie wpisać datę do Excela – skorzystaj ze skrótu Ctrl + ;. Excel wpisze wtedy dzisiejszą datę, ale – co najważniejsze – zawsze w dobrym formacie. Możesz go sobie stamtąd podpatrzeć :).

To, co warto tutaj jeszcze zapamiętać to: prawidłowo wpisana data powinna być wyrównana do prawej strony komórki. Tak, jak każda inna liczba. Oczywiście pomijam tutaj sytuacje, w których ręcznie zmienimy wyrównanie komórek.

Wyrównanie daty do prawej strony

Wyrównanie daty do prawej strony

I to tyle na dziś. Myślę, że reszta to kwestia praktyki, którą oczywiście będę też pokazywała w kolejnych artykułach.

PS W ramach ćwiczeń możesz sprawdzić jaka data to dzień 44000. Odpowiedź napisz w komentarzu 😉

 

 

WEBINAR o WYSZUKAJ.PIONOWO

$
0
0

Webinar będzie poświęcony funkcji WYSZUKAJ.PIONOWO (VLOOKUP) i dowiecie się na nim m. in.:

– dlaczego na końcu tej funkcji wpisujemy 0 (ewentualnie Fałsz)
– dlaczego ta funkcja często nie działa?
– jak WYSZUKAJ.PIONOWO może zastąpić wielokrotnie zagnieżdżone JEŻELI?
– jak jeszcze można wykorzystać tę jedną z najczęściej wykorzystywanych funkcji?

Na webinarze odpowiem również na Wasze pytania i wątpliwości dotyczące tej funkcji.

Webinar jest bezpłatny, a zarejestrować się na niego możesz tutaj:
http://malinowyexcel.pl/webinar/

Kiedy?
26 września 2017 , godzina 21:00.

Jak ustalić numer kwartału?

$
0
0

Czyli trochę o funkcji ZAOKR.GÓRA i WYBIERZ

Excel oferuje nam mnóstwo funkcji daty i czasu. Wystarczy tylko, że w prawidłowy sposób (tutaj dowiesz się jak) wpisać datę i użyć odpowiedniej funkcji, aby dowiedzieć się np. jaki miesiąc czy dzień tygodnia jest w tej dacie.

Inaczej sytuacja wygląda z kwartałem. Nie ma dedykowanej funkcji, która określa kwartał w tak prosty sposób, jak np. wspomniany rok. Sami więc musimy sobie z tym poradzić i taki sposób wymyślić. Na szczęście jest to bardzo proste i w dzisiejszym wpisie pokażę Ci na to 2 sposoby.

Malinowy Excel Jak ustalić kwartał w Excelu


Oto formatka:

Formatka

Formatka

Ustalenie miesiąca

Pierwszym krokiem będzie ustalenie miesiąca. Z tym Excel radzi sobie świetnie – jest do tego gotowa funkcja MIESIĄC. Jej jedynym argumentem jest data, z której miesiąc ma być wyliczony.

Wykorzystamy kolumnę pomocniczą, w której wpiszemy taką formułę (komórka C4):

=MIESIĄC(B4)

Po skopiowaniu w dół mamy informację o miesiącu każdej daty. Teraz pora na ustalenie kwartału i pokażę 2 sposoby, którymi można to zrobić. Jeśli masz pomysł na jeszcze inny – napisz w komentarzu, chętnie się dowiem 🙂

Ustalanie miesiąca

Ustalanie miesiąca

Ustalenie kwartału – funkcja ZAOKR.GÓRA

Ta metoda zakłada, że każdy miesiąc ma w sobie w pewien sposób zaszytą informację o kwartale. To znaczy, jak numer miesiąca podzielimy przez 3 i wynik zaokrąglimy w górę (do pełnych liczb) – otrzymamy numer kwartału.

Idąc za tą logiką, nasza formuła wygląda następująco (komórka D4):

=ZAOKR.GÓRA(C4/3;0)

I wyniki otrzymujemy takie:

Ustalanie kwartału funkcją ZAOKR.GÓRA

Ustalanie kwartału funkcją ZAOKR.GÓRA

Metoda super, tylko trzeba zapamiętać logikę.

Ustalenie kwartału – funkcja WYBIERZ

Funkcja WYBIERZ jest mało znana, a bardzo przydatna. Co robi? Wybiera oczywiście. Wybiera wskazaną przez nas wartość z odpowiedniego swojego argumentu. A w tym argumentach może mieć wszystko: liczby, tekst, zakresy…

Brzmi enigmatycznie, wiem. Zajęło mi trochę czasu zanim zobaczyłam jej przydatność, ale w przypadku ustalania kwartału jest ona ogromna. Tutaj bowiem co 3 miesiące należą do kolejnego kwartału. Czyli schemat jest taki:

Miesiąc a kwartał

Miesiąc a kwartał

Można tutaj przyjąć, że każdy numer miesiąca jest numerem argumentu funkcji WYBIERZ, który chcemy wyświetlić. Czyli styczeń jest 1, maj jest 2, a np. listopad jest 4.

I to jest to, co funkcja WYBIERZ od nas potrzebuje: numer argumentu, który ma wyświetlić i właśnie wartości wszystkich argumentów.

Czyli do komórki E4 wpiszemy następującą funkcję:

=WYBIERZ(C4;1;1;1;2;2;2;3;3;3;4;4;4)

I tyle. Jeśli chcemy zamiast C4 wpisać funkcję MIESIĄC – spokojnie można tak zrobić.

Funkcja WYBIERZ ma jedną przewagę nad opisywaną wcześniej metodą z funkcją ZAOKR.GÓRA: można ją zastosować, gdy w naszej firmie obowiązuje niestandardowy rok rozliczeniowy. Pisząc niestandardowy mam tutaj na myśli: zaczynający się od innego miesiąca niż styczeń. Choćby od lipca. Funkcja WYBIERZ wyglądałaby wtedy następująco:

=WYBIERZ(C4;3;3;3;4;4;4;1;1;1;2;2;2)

Dla naszych danych wynik byłby następujący:

Ustalanie kwartału niestandardowego

Ustalanie kwartału niestandardowego

Z funkcją ZAOKR.GÓRA byłoby ciężej. A tutaj prosta sprawa, bez głowienia się. A funkcja do zapamiętania prościutka i to bez zapamiętywania jakiejkolwiek logiki 😉

Wynik tego jest oczywiście identyczny, jak poprzedniej metody:

Ustalanie kwartału funkcją WYBIERZ

Ustalanie kwartału funkcją WYBIERZ

I to tyle i to aż takie proste. Mam nadzieję, że się przyda i jeśli tak – udostępnij proszę ten wpis znajomym. Pomóż mi szerzyć excelowe dobro 😉

A tutaj plik do pobrania:

Poniżej plik do pobrania:
MalinowyExcel_Numer kwartału dw.xlsx

I wersja wideo tego wpisu:

 

Suma tylko zapłaconych należności

$
0
0

W tym wpisie pokazuję jak z całej listy należności zsumować tylko te, które zostały już zapłacone. Omawiam to na przykładzie rozliczania opłat za media we wspólnocie mieszkaniowej.

Malinowy Excel Suma tylko zapłaconych należności

Oto formatka, w której mamy informację o numerze lokalu, należności za poszczególne media i status, czyli czy zostało to opłacone, czy nie.

Formatka

Formatka

A to poszczególne formuły:

1. Do zapłaty – per lokal (H4):

=SUMA(C4:F4)

2. Zapłacone – per lokal (I4):

=JEŻELI(G4="Tak";H4;0)

3. Do zapłaty – per medium (C19):

=SUMA(C4:C18)

4. Zapłacono – total (H20):

=SUMA.JEŻELI($G$4:$G$18;"Tak";H4:H18)

5. Zapłacono – per medium (C20):

=SUMA.JEŻELI($G$4:$G$18;"Tak";C4:C18)

6. Procent zapłaconych (C21):

=C20/C19

A wynik wszystkiego wygląda tak:

Wynik

Wynik

I film, na którym zobaczysz wszystko krok po kroku:

 

Viewing all 291 articles
Browse latest View live