Jak przedstawić dobrze godziny na osi wykresu minutowy wykres temperatury – widzowie #105

Twoje zadanie na dziś to przedstawić na wykresie temperatury mierzone co przykładowe 10 minut. Jak masz dane odpowiednio uporządkowane, to sprawa jest prosta.

widzowie-105-jak-przedstawic-dobrze-godziny-na-osi-wykresu-minutowy-wykres-temperatury-01

Zaznaczasz pojedynczą komórkę w danych, a następnie wstawiasz wykres liniowy.

widzowie-105-jak-przedstawic-dobrze-godziny-na-osi-wykresu-minutowy-wykres-temperatury-02

Niestety prezentuje się on fatalnie ze względu na dane na osi poziomej (kategorii). Wynika to z tego, że są tutaj daty z godziną w ciągu dnia, a minimalny okres czasu jaki Excel systemowo potrafi pokazywać na osi wykresu to dzień.

widzowie-105-jak-przedstawic-dobrze-godziny-na-osi-wykresu-minutowy-wykres-temperatury-03

Dlatego musimy zmienić sposób wyświetlania na osi poziomej. Wystarczy, że w nią klikniesz (zaznaczysz ją), a następnie naciśniesz Ctrl + 1, żeby wyświetliło się okno właściwości.

Wystarczy, że zmienisz typ osi, na oś tekstu i już dane będą wyglądały znacznie lepiej.

widzowie-105-jak-przedstawic-dobrze-godziny-na-osi-wykresu-minutowy-wykres-temperatury-04

Ewentualnie możesz jeszcze w części etykiet możesz zmienić jednostkę interwału na dwanaście, zamiast domyślnej, to wtedy będzie pokazywał się czas w odstępach dwóch godzin.

widzowie-105-jak-przedstawic-dobrze-godziny-na-osi-wykresu-minutowy-wykres-temperatury-05

Powyższe obrazy były z Excela 2013, ale w Excelu 2010 i 2007 wygląda to podobnie tylko opcje są w ciut innych miejscach, ale też dostajesz się do nich przez zaznaczenie poziomej osi (kategorii) i naciśnięcie skrótu Ctrl + 1.

widzowie-105-jak-przedstawic-dobrze-godziny-na-osi-wykresu-minutowy-wykres-temperatury-06

 
Pozdrawiam
Adam Kopeć
Miłośnik Excela

Jak wyciągnąć tekst pomiędzy ostatnim a przedostatnim backslashem – widzowie #104

Szef zlecił Ci zadanie (może ma na imię Robert ;)), żeby wyciągnąć tekst, który się znajduje pomiędzy przedostatnim, a ostatnim backslashem (\). To zadanie wymaga trochę pracy. Żeby było łatwiejsze podzielimy je sobie na trzy części. Najpierw znajdziemy pozycję przedostatniego i ostatniego backslasha, a potem już łatwo wyciągniemy tekst pomiędzy nimi.
Żeby odnaleźć pozycję przedostatniego i ostatniego backslasha najpierw będziemy potrzebować policzyć ile ich jest. Zrobimy to podmieniając wszystkie backslashe w tekście na pusty ciąg tekstowy, czyli po prostu usuniemy je. To uzyskamy za pomocą funkcji PODSTAW:

=PODSTAW(A2;”\”;””)

Kolejnym krokiem będzie obliczenie długości tekstu/ścieżki, po usunięciu backslashy, to da nam funkcja DŁ, a żeby uzyskać liczbę backslashy potrzebujemy odjąć tą długość od faktycznej długości tekstu:

=DŁ(A2)-DŁ(PODSTAW(A2;”\”;””))

widzowie-104-jak-wyciagnac-tekst-pomiedzy-ostatnim-a-przedostatnim-backslash-01
Założyliśmy sobie, że najpierw odszukamy pozycję przedostatniego backslasha, więc musimy tu jeszcze odjąć jedynkę. Teraz możemy, ten konkretny numer znaku zastąpić takim ciągiem tekstowym, który na pewno nie powtórzy się w przeszukiwanym tekście np.: #@, to znów będzie funkcja PODSTAW:

=PODSTAW(A2;”\”;”#@”;DŁ(A2)-DŁ(PODSTAW(A2;”\”;””))-1)

widzowie-104-jak-wyciagnac-tekst-pomiedzy-ostatnim-a-przedostatnim-backslash-02

Teraz wystarczy, że odnajdziesz pozycję tego nietypowego ciągu znaków (funkcja ZNAJDŹ) i masz pozycję przedostatniego backslasha:

=ZNAJDŹ(„#@”;PODSTAW(A2;”\”;”#@”;DŁ(A2)-DŁ(PODSTAW(A2;”\”;””))-1))

widzowie-104-jak-wyciagnac-tekst-pomiedzy-ostatnim-a-przedostatnim-backslash-03
Pozycję ostatniego znaku odnajdziesz po prostu nie odejmując jedynki:

=ZNAJDŹ(„#@”;PODSTAW(A2;”\”;”#@”;DŁ(A2)-DŁ(PODSTAW(A2;”\”;””))))

widzowie-104-jak-wyciagnac-tekst-pomiedzy-ostatnim-a-przedostatnim-backslash-04
Teraz jak mamy już pozycję ostatniego i przedostatniego znaku to łatwo wyciągnąć to co jest pomiędzy nimi za pomocą funkcji FRAGMENT.TEKSTU. Trzeba tylko pamiętać dodać i odjąć jeden, żeby nie wyciągnąć również backslashy:

=FRAGMENT.TEKSTU(A2;C2+1;D2-C2-1)

widzowie-104-jak-wyciagnac-tekst-pomiedzy-ostatnim-a-przedostatnim-backslash-05

Pozdrawiam
Adam Kopeć
Miłośnik Excela

08 – Opcje, które warto zmienić w edytorze VBA

Jest kilka opcji, które warto, żebyś zmienił w opcjach edytora VBA. Rozwijasz menu Tools, a następnie Options. Pojawi się okno, w którym na pierwszej zakładce (Editor), moim zdaniem warto zmienić dwie opcje.
wstep-do-makr-08-opcje-ktore-warto-zmienic-w-edytorze-vba-01
Pierwszą jest zaznaczenie pola wyboru Require Variable Declaration. Po jej zaznaczeniu w nowo stworzonych modułach będzie dodawać się na samej górze fraza: Option Explicit. Fraza ta wymusza deklarowanie zmiennych, co oznacza, że nie będziesz mógł przypisać wartości do zmiennej która wcześniej nie została zadeklarowane. Jeśli nie zadeklarujesz zmiennej, do której przypiszesz wartość, to w trakcie kompilacji (próby uruchomienia kodu) pojawi się odpowiedni komunikat:

wstep-do-makr-08-opcje-ktore-warto-zmienic-w-edytorze-vba-02
Dzięki temu unikniesz problemu z ewentualnymi literówkami oraz oszczędzisz trochę pamięci przez deklarowanie zmiennych konkretnych typów.
Drugą zmianą jest odznaczenie pola wyboru Auto Syntax Check. Ta opcja automatycznie sprawdza składnie kodu i wyświetla odpowiedni komunikat podczas pisania (przykładowy komunikat poniżej).

wstep-do-makr-08-opcje-ktore-warto-zmienic-w-edytorze-vba-03
Ten komunikat jest całkiem zbędny, ponieważ błędnie składniowo napisany kod jest podświetlany na czerwono i to jest wystarczające wyróżnienie. Natomiast wyskakujące okienko z komunikatem, może irytować i rozpraszać w trakcie pisania kodu.

Na tej zakładce możesz ewentualnie jeszcze zmienić wielkość wcięć (Tab Width).

Domyślną kolorystykę błędów składni (Syntax Error Text) oraz słów kluczowych itp., znajdziesz na drugiej zakładce opcji edytora VBA (Editor Format).

wstep-do-makr-08-opcje-ktore-warto-zmienic-w-edytorze-vba-04
Tam co najwyżej warto zmienić rozmiar czcionki, a kolory zostawić domyślne, bo właśnie takie znajdziesz w tutorialach i pomocach w sieci.
Dodatkowa możliwość, która może Ci się przydać, to komentowanie (i odkomentowywanie) całych bloków kodu. Możesz to uzyskać dodać sobie pasek narzędzi Edit (Menu View -> Toolbars -> Edit).

wstep-do-makr-08-opcje-ktore-warto-zmienic-w-edytorze-vba-05Po dodaniu możesz go przypiąć z boku lub na górze okna edytora VBA. Tu najbardziej przydatna jest opcja komentowania bloków kodu, bo do pozostałych ważnych narzędzi przypisane są skróty klawiszowe.

Chcesz ze mną poznać możliwości VBA? Zobacz kiedy planowana jest następna edycja 30dniowego kursu online:
http://excelw30dni.pl/kategoria-produktu/szkolenia-vba/

Pozdrawiam
Adam Kopeć
Miłośnik Excela

Jak przypisać liczby do odpowiednich kolumn (losowanie lotto) – widzowie #103

Zakładamy, że mamy przykładowe liczby (wyniki gry losowej) i chcemy je wstawić uporządkowane w kolumny im przypisane. Jest to całkiem proste bo nagłówki kolumn to dokładnie te same numery, które mogą się trafić w losowaniu.
widzowie-103-jak-przypisac-liczby-do-odpowiednich-kolumn-losowanie-lotto-01
W pierwszej kolejności musimy sprawdzić czy dana liczba z nagłówka znajduje się na liście wylosowanych liczb – wystarczy, że skorzystamy z funkcji PODAJ.POZYCJĘ. Jeśli liczba z danego nagłówka kolumny znajduje się na liście wylosowanych liczb, to funkcja PODAJ.POZYCJĘ zwróci tą pozycję (numer pozycji na liście), jeśli jej nie ma, to funkcja PODAJ.POZYCJĘ zwróci błąd (#N/D!).

Na razie nasza formuła (pamiętając o odpowiednich rodzajach odwołań) będzie wyglądać tak:

=PODAJ.POZYCJĘ(B$13;$B3:$AO3;0)

widzowie-103-jak-przypisac-liczby-do-odpowiednich-kolumn-losowanie-lotto-02
Jeśli liczba zostanie odnaleziona, to chcemy zwrócić liczbę z nagłówka, jeśli nie, to chcemy zostawić pustą komórkę. Przyda się nam do tego na pewno funkcja JEŻELI, ale jeszcze będziemy potrzebowali funkcji CZY.LICZBA, która będzie zwracać wartość PRAWDA, gdy liczba zostanie odnaleziona i FAŁSZ, gdy nie zostaje odnaleziona:

=JEŻELI(CZY.LICZBA(PODAJ.POZYCJĘ(B$13;$B3:$AO3;0));B$13;””)

Wystarczy ją przeciągnąć i mamy przyporządkowane liczby do odpowiednich kolumn.

widzowie-103-jak-przypisac-liczby-do-odpowiednich-kolumn-losowanie-lotto-03

Pozdrawiam
Adam Kopeć
Miłośnik Excela

Stop overthinking – wyciąganie danych z arkusza obok – porada #278

Stop overthinking. O co mi chodzi? Systematycznie dostaję pytania o rozwiązanie jakiegoś problemu w Excelu i czasami się zdarza, że czytelnik zaczyna myśleć, że do rozwiązania jego problemu potrzeba jakiś skomplikowanych problemów zapominają o prostych rozwiązaniach.

W tym filmie najmocniejszy przykład overthinkingu, czyli sytuacja, gdzie potrzebujemy w osobnych arkuszach mieć tylko część danych (kolumn) z głównego arkusza. Czyli w najprostszej postaci wystarczy zwykłe odwołanie do komórek z sąsiedniego arkusza. Co prawda pewnie dla każdej kolumny będzie trzeba napisać osobną formułę, żeby pobierał dane z odpowiedniej kolumny, ale da się to zrobić, mając podstawową wiedzę o Excelu. Wystarczy formuła w stylu:

=Arkusz1!A2

Już zaczęłoby działać, robić to o co nam chodzi. To jest najważniejsze. To często powtarzam na kursach programowania VBA najważniejsze, żeby nasz kod działał. Nie musi być idealny, czy optymalny. Pierwsze najważniejsze kryterium ma działać.

Jak mawia człowiek, od którego dużo się uczę: „JAKOŚ, a później JAKOŚĆ”. „Ć” dodajemy przez ćwiczenia 😀

Z powyższym przyrównaniem do danych z innego arkusza może być tylko jeden drobny problem – jeśli komórka będzie pusta, to Excel odczyta ją jako zero. Na szczęście, żeby uniknąć tego problemu wystarczy sprawdzić wartość komórki za pomocą funkcji JEŻELI, i jeśli będzie pusta, to zwrócić pusty ciąg znaków, a jak nie będzie pusta, to wartość komórki:

=JEŻELI(Dane!A2=””;””;Dane!A2)

porada-278-stop-overthinking-01

A jakby zależało Ci na pojedynczej formule na całą tabelkę to przykładowa może wyglądać tak 😉

=JEŻELI(INDEKS(Dane!$A$2:$F$14;ILE.WIERSZY($I$2:I2);PODAJ.POZYCJĘ(I$1;Dane!$A$1:$F$1;0))=””;””;INDEKS(Dane!$A$2:$F$14;ILE.WIERSZY($I$2:I2);PODAJ.POZYCJĘ(I$1;Dane!$A$1:$F$1;0)))

Dlatego działaj z tym co masz, a naprawdę masz duże szanse, że rozwiążesz swój problem, a pewnie się jeszcze czegoś nowego przy tym nauczysz J

Pozdrawiam
Adam Kopeć
Miłośnik Excela