Dawnymi czasy zdarzało mi się poprowadzić zajęcia ze studentami wieczorowymi. Dwie różne uczelnie, trzy semestry. Głównie weekendy i późne popołudnia więc nie było problemu, żeby to zsynchronizować z pracą będącą wówczas moim głównym źródłem dochodu.
Żeby było ciekawiej, na każdym semestrze miałem całkiem inną grupę a także całkiem inny przedmiot. Jednym z przedmiotów był Excel, prowadzony w grupie około 15 studentów z czego większość to byli - jakże by inaczej - ludzie dobrze już po trzydziestce (a więc - dla ówczesnego mnie - nieomal starcy!) i - z niewieloma wyjątkami - mało obeznani z komputerami jako takimi, a już broń Billu z jakimiś karkuszami.
Już kiedyś wspominałem, ale wyjaśnię tym Czytelnikom, którzy (jeszcze!) nie przeczytali całego bloga: "karkusz" to mój własny językowy wynalazek będący pochodną wyrażenia "arkusz kalkulacyjny".
No więc właśnie. Z jednej strony młody ja, świeżo po studiach, programujący "od zawsze" w różnych C++, VB i innych... nie, w zasadzie nie było innych - a z drugiej grupka trzydziestoparolatków, których jedynym zadaniem jest uzyskać pozytywną ocenę z ćwiczeń u tego walniętego gościa.
Miałem tam "ucznia", który miał własną - całkiem nieźle prosperującą - firmę; starszy facet z pokolenia gdzieś między moimi rodzicami a dziadkami; z wiedzą na temat komputerów w zasadzie zerową. Przez pierwsze dwie lekcje opanowywał zależność między poziomym ruchem myszy po powierzchni stołu a pionowym ruchem kursora myszy na ekranie. To się może wydawać zabawne, ale jak się tak dobrze zastanowić, to to wcale nie jest takie oczywiste.
Ale do rzeczy, mociumpanie, o czym to ja miałem... ach, właśnie, skróty. Otóż zajęcia dotyczyły Excela, który jest świetnym narzędziem wspomagającym wszelakie tabelaryczne obliczenia. Wiersze, kolumny, formuły, na koniec jeszcze jakieś fajne kolorki - i można tworzyć całkiem zaawansowane rozwiązania księgowe, naukowe, analityczne, syntetyczne, idiosynkr... no, rozmaite.
Całkiem spora rzesza użytkowników Excela nie wie (albo wie, ale nie używa bo nie docenia płynących z tego korzyści) o klawiszach skrótów, których całego mnóstwa można używać do ułatwienia sobie pracy - a zwłaszcza do jej znacznego przyspieszenia. Dziś - pomimo tego przydługiego i nieco nie na temat wstępu - chcę polać wodę na ten właśnie temat. Zamiast jednak zrobić ^C - ^V z microsoftowego helpa, opowiem raczej o tym jakich klawiszy ja używam najczęściej. Jeżeli którykolwiek z dwóch (a teraz może już nawet trzech) moich Czytelników zna inne skróty, których regularnie używa i które uważa za pożyteczne, niech da głos.
OK, jedziemy. Dla porządku, będę oznaczał klawisz Control przedrostkiem ^, klawisz Shift przedrostkeim Sh- oraz klawisz Alt przedrostkiem Alt-. Kombinacje klawiszy będę oznaczał przedrostkami łączonymi, a więc ^Sh-Up oznacza wciśnięcie i przytrzymanie klawisza Control wraz z klawiszem Shift a następnie wciśnięcie i puszczenie klawisza ze strzałką do góry. Dodatkowo, klawisze wciskane w sekwencji będę oddzielał przecinkami, na przykład: wciśnij i puść Alt, potem wciśnij i puść O, potem wciśnij i puść C, na koniec wciśnij i puść A, będzie reprezentowane jako: Alt,O,C,A.
1. ^PgUp - przejdź do poprzedniego arkusza. Biorąc pod uwagę, że można używać prawego klawisza Control, do przełączania między arkuszami wystarczy kciuk i palec środkowy prawej ręki.
2. ^PgDown - to samo tylko w drugą stronę - przejdź do następnego arkusza
3. ^Tab - przełączanie między otwartymi dokumentami (lub "skoroszytami", chociaż wolę określenie "dokumenty" jako krótsze)
4. ^Sh-Tab - to samo co ^Tab tylko w drugą stronę. Przydatne do przełączenia się do poprzedniego arkusza po tym, jak wcisnęliśmy ^Tab o jeden raz za dużo.
5. ^Up - przejście do najbliższego skraju danych w górę. "Skraj danych" to pierwszy lub ostatni wiersz bądź kolumna z danymi. W zależności od tego w którym aktualnie wierszu danych się znajdujemy, kombinacja ^Up przeniesie nas do pierwszego wiersza danych w bieżącej tabelce lub do ostatniego wiersza danych w tabelce powyżej, lub też wreszcie do pierwszego wiersza w arkuszu.
6. ^Down - to samo tylko w drugą stronę. A więc przenosi do najbliższego skraju danych, tyle że w dół. Czyli: albo do pierwszego wiersza w tabelce poniżej albo do ostatniego wiersza w bieżącej tabelce, albo do ostatniego wiersza w arkuszu.
7. ^Left - to samo co ^Up tylko nie w górę a w lewo. Przenosi do najbliszego skraju danych po lewej stronie - czyli albo do pierwszej kolumny w bieżącej tabeli albo do ostatniej kolumny w poprzedniej tabeli.
8. ^Right - to samo tylko w prawo.
Zanim przejdę do części dalszej, przyjrzyjmy się czterem ostatnim kombinacjim. Control ze strzałką przenoszą nas w zadanym kierunku do pierwszej niepustej komórki (jeżeli takowa istnieje), o ile tylko wystartowaliśmy z komórki pustej (lub niepustej skrajnej), bądź do ostatniej niepustej komórki w zadanym kierunku, jeżeli startujemy z komórki niepustej (i nieskrajnej).
Praktyczne zastosowania są tutaj co najmniej dwa.
Przykład 1:
Wyobraźmy sobie, że zaimportowaliśmy do arkusza 100,000 wierszy z pliku CSV. Niestety, ktoś, kto te dane przedtem eksportował do CSV, zapomniał o otoczeniu wartości tekstowych (w pliku CSV) cudzysłowiami. I, niestety, okazało się, że kilka (dajmy na to 20) wartości w pierwszej kolumnie zawiera przecinki. Efekt jest taki, że niektóre wiersze (20 wierszy w naszym przypadku) będą miały "dodatkową kolumnę" po prawej stronie, ponieważ wartość z przecinkiem będzie rozbita na dwie kolumny.
Żeby w szybki sposób znaleźć takie "wystające" wiersze, wystarczy ustawić się za ostanią kolumną i puknąć ^Down. Kursor przeniesie nas do pierwszego "wystającego" wiersza - możemy go następnie ręcznie poprawić (albo skopiować do maila i odesłać z prośbą o ponowne, poprawne wygenerowanie danych) a następnie kontynuować do następnego "wystającego" wiersza w takim sam sposób.
Przykład 2:
Załóżmy, że mamy dużo danych (nie wiem, 10 kolumn na 100,000 wierszy) i że w jednej z kolumn sporadycznie zdarzają się "dziury" czyli puste komórki. Żeby znaleźć taką "dziurę", ustawiamy się w pierwszym wierszu tej kolumny i pukamy ^Down. Zostaniemy przerzuceni do wiersza poprzedzającego "dziurę" (czyli do dolnego skraju danych). W ten sposób możemy "odnaleźć" wszystkie "dziury". Oczywiście jeżeli dziur będzie zbyt dużo, metoda taka staje się mało efektywna.
OK, lecimy dalej.
9. Sh-Spacja - zaznaczenie całego bieżącego wiersza. W przypadku, kiedy zaznaczonych mamy kilka komórek w pionie, zaznaczenie wszystkich wierszy zawierających te komórki. Uwaga na scalone komórki! Jeżeli w zaznaczanym wierszu / wierszach znajdują się komórki scalone w pionie, zaznaczeniu ulegną wszystkie wiersze zawierające scalone komórki, nawet jeżeli wiersze te nie obejmują komórek aktualnie zaznaczonych.
10. ^Spacja - to samo tylko zaznaczmy bieżącą kolumnę / kolumny. Uwaga na scalone komórki.
11. ^Sh-Spacja - to samo co ^A czyli zaznaczenie wszystkich komórek bieżącego arkusza.
O ile kombinacja ^Sh-Spacja nie ma żadnego sensu użytkowego (łatwiej jest wcisnąć ^A), o tyle dwie poprzednie (^Spacja i Sh-Spacja) są bardzo przydatne - po pierwsze, często chcemy np. sformatować wiersz nagłówkowy - ustawiamy się wówczas w komórce A1, pukamy Sh-Spacja, potem ^B i mamy pogrubiony nagłówek. Po drugie możemy w szybki sposób sprawdzić, czy w danym wierszu / kolumnie nie znajdują się jakieś scalone komórki - ustawiamy się w danym wierszu (lub kolumnie) i pukamy Sh-Spacja (lub ^Spacja) - jeżeli w wyniku zaznaczy się więcej wierszy (lub kolumn), oznacza to, że gdzieś "po drodze" mamy scalone komórki.
12. Sh-Down - rozszerz zaznaczenie o jeden wiersz w dół. Jeżeli zaznaczona jest tylko jedna komórka, wciśnięcie Sh-Down zaznaczy dodatkowo komórkę poniżej. Jeżeli zaznaczonych mamy kilka komórek (w sąsiednich kolumnach) wówczas zaznaczeniu ulegnie odpowiednio więcej komórek poniżej.
13. Sh-Up 14. Sh-Left 15. Sh-Right - to samo tylko w górę, lewo lub prawo.
16. ^Sh-Down - zaznaczenie wszystkich komórek począwszy od komórki bieżącej aż do pierwszej / ostatniej niepustej komórki poniżej. Czemu pierwszej / ostatniej? Rządzą tu takie same reguły jak przy ^Up ^Down ^Left ^Right a więc efekt zależy od tego czy aktualnie zaznaczona komórka jest pusta (bądź niepusta, ale skrajna) czy też niepusta i nieskrajna zarazem.
17. ^Sh-Up 16. ^Sh-Left 17. ^Sh-Right - to samo tylko w pozostałych trzech kierunkach.
Ta konkretna kombinacja (^Strzałka) jest niezwykle przydatna przy kopiowaniu komórek (zwłaszcza formuł, ale nie tylko).
Przykład:
Załóżmy, że mamy bardzo dużo wierszy z danymi. Dane są gdzieniegdzie dziurawe (czyli od czasu do czasu trafia się pusta komórka). Chcemy teraz dołożyć kolejną kolumnę, która coś wylicza dla każdego wiersza. Standardowe, "klikalne" podejście jest takie, że po wpisaniu formuły w pierwszym wierszu zaznaczamy ją a następnie klikamy dwakroć w jej dolny prawy róg dzięki czemu formuła zostanie skopiowana w dół do samego końca... No właśnie, czy aby na pewno? Otóż nie. Zostanie skopiowana w dół do miejsca, w którym po lewej stronie skończą się dane. A ten koniec danych to może być pomyłka, bo to może być tylko "dziura" w danych. Trzeba więc zawsze sprawdzać czy się skopiowało do końca czy nie.
Tymczasem, uzbrojeni w klawisze skrótów, możemy ten sam efekt uzyskać nie tylko w krótszym czasie, ale dodatkowo bez obawy o "dziury". Otóż robimy tak: zaznaczamy komórkę z nowo wpisaną formułą, a następnie: ^C,^Down,Left,^Up,Right,^Sh-Up,^V
I gotowe!
Brzmi skomplikowanie? Nie, tylko tak wygląda "na papierze". Spójrzmy co się dzieje po kolei:
- ^C kopiuje formułę do schowka
- ^Down przenosi nas na sam dół arkusza (czyli do wiersza numer 1048576, chyba że mamy starszą wersję Excela, wówczas będzie to wiersz numer 65536)
- Left przesuwa zaznaczenie o jedną kolumnę w lewo
- ^Up przerzuci nas do ostatniej niepustej komórki w ostatniej (prawej) kolumnie naszej tabeli z danymi
- Right przeniesie nas z powrotem do kolumny, którą chcemy wypełnić formułą
- ^Sh-Up zaznaczy nam wszystkie komórki tej kolumny, począwszy od ostatniej sąsiadującej z danymi aż do samej góry, gdzie wpisaliśmy naszą formułę
- ^V wklei formułę do wszystkich zaznaczonych komórek
Brzmi to bardzo rozwlekle, prawda? Jednak po pewnym czasie używania klawiszy skrótów, a zwłaszcza po oswojeniu się z klawiszami Control i Shift, sekwencję tę wykonuje się odruchowo w czasie około jednej sekundy (przed chwilą zmierzyłem!). Sposobem "myszowym" zajmie to nie dość że ciut więcej, to jeszcze trzeba będzie potem sprawdzać czy w danych nie ma dziur.
Uff, lecimy dalej.
18. ^End - przenosi do komórki leżącej na przecięciu ostatniej (w prawo) kolumny oraz ostatniego (w dół) wiersza, które modyfikowaliśmy.
Przykład:
W pustym arkuszu:
- wpisujemy coś w komórkę C1
- formatujemy komórkę A4 pogrubioną czcionką (czyli pukamy tam ^B)
- ^End przeniesie nas w tym momencie do komórki C4, ponieważ jest ona na przecięciu kolumny C z wierszem 4.
Zauważmy, że nie musimy nawet niczego wpisywać do danej kolumny czy wiersza - wystarczy zmiana formatowania. Jest to bardzo przydatne przy przygotowywaniu danych do eksportu. Często jest tak, że eksportowana tabela ma, dajmy na to, 3 kolumny, ale w czwartej kolumnie znajdują się pojedyncze (puste!) komórki z innym formatowaniem. Może się okazać, że proces importujący dane z takiego arkusza potraktuje tą kolumnę tak, jakby były w niej jakieś dane. Może to prowadzić do błędów.
Jeszcze "groźniejsze" mogą tu być wiersze. Jeżeli sformatujemy CAŁĄ kolumnę A1 jako, dajmy na to, pogrubioną, wówczas podczas importu danych może się okazać, że zamiast stu wierszy z danymi zaimportujemy ponad milion wierszy (z czego większość pustych), ponieważ proces importujący uzna z automatu, że skoro komórka jest sformatowana to ma ona jakąś wartość i trzeba ją zassać.
Tymczasem wystarczy punkąć ^End i jeżeli kursor wyląduje w ostatniej komórce z danymi, wszystko jest ok - a jeżeli wyląduje w jakiejś bliżej niezdefiniowanej komórce "daleko" na dole i/lub w prawo od naszych danych, trzeba zrobić porządek.
Uff.
19. ^Enter - wypełnia zaznaczone komórki wartością wpisaną do aktywnej komórki.
Eeee... ale że co proszę? Co to za bełkot?
Ano, nie bełkot tylko bardzo fajna rzecz, o której - o dziwo - wielu użytkowników nie wie.
Ćwiczenie:
- zaznaczamy kilka / kilkanaście pustych komórek. Mogą być w pionie, w poziomie, może być prostokąt AxB, obojętnie
- zaczynamy pisać: Ala ma kota...
- pukamy ^Enter
Jak widać, wpisywany tekst najpierw pojawiał się tylko w komórce aktywnej (podświetlonej na biało wśród zaznaczonych komórek). Jednak ^Enter "rozmnożyło" ten tekst na wszystkie zaznaczone komórki. Jeżeli wpiszemy formułę, referencje do komórek zostaną w momencie naciskania ^Enter pozmieniane w pozostałych komórkach w taki sam sposób jak przy kopiuj-wklej.
20. F2 - przechodzi w tryb edycji komórki. Dodatkowo, jeżeli jesteśmy już w trybie edycji komórki, F2 przełącza między trybem edycji (w którym strzałki przemieszczają nas po zawartości komórki) a trybem wybierania (w którym strzałki pozwalają na wskazanie innej komórki / komórek arkusza, której/-ych adres następnie pojawi się w aktualnie edytowanej komórce). Bardzo przydatne.
21. Alt,O,C,A (ewentualnie Alt-O,C,A) - dopasowuje szerokość aktualnej kolumny / kolumn (tj. kolumn, w których znajdują się zaznaczone komórki) do zawartości zaznaczonych komórek. Prawie tak samo jak podwójne kliknięcie w nagłówek między kolumnami - z tym, że klikając dopasowujemy szerokość kolumny do najszerszej komórki w tej kolumnie, a używając skrótu klawiszowego ograniczamy się wyłącznie do komórek aktualnie zaznaczonych. Chcąc "z klawiatury" dopasować do całości komórek musimy najpierw zaznaczyć całą kolumnę za pomocą ^Spacja.
22. Alt,D,F,F (lub: Alt-D,F,F) - włącza / wyłącza Autofiltr.
23. Alt-Down na nagłówku Autofiltru - wyświetla / chowa listę wartości do filtrowania oraz inne opcje Autofiltru
24. Alt,E,A,A (Alt-E,A,A) - czyści zawartość oraz formatowanie aktualnie zaznaczonych komórek
25. ^1 - formatowanie zaznaczenia - genialne i zaskakująco mało popularne. Zamiast klikać prawym myszem i wybierać "Format Cells..." wystarczy punkąć ^1
26. ^~ (^Tylda) - włącza / wyłącza tryb podglądu formuł. Bardzo przydatne, zwłaszcza przy generowaniu dokumentacji - kiedy trzeba pokazać nie tylko wyniki ale też sposób ich uzyskania.
27. Alt-W,F,F (Alt,W,F,F) - "zamraża" wiersze znajdujące się powyżej aktualnie zaznaczonej komórki, a także kolumny w lewo od niej. Jeżeli chcemy zamrozić wyłącznie wiersze, musimy ustawić kursor w pierwszej kolumnie. Jeżeli chcemy zamrozić tylko kolumny, musimy to robić z pierwszego wiersza.
28. Alt-E,S (Alt,E,S) - wywołanie menu "Paste special..." ("Wklej specjalnie...")
Hm. To by chyba było na tyle - powyższe skróty to jest - jakże by inaczej - tylko wierzchołek góry lodowej. Jednak celem tego posta nie było udokumentowanie WSZYSTKICH istniejących skrótów, tylko pokazanie tych najczęściej przeze mnie używanych. Zadziwiające jak bardzo można skrócić czas pracy nad arkuszem kiedy ograniczy się ilość operacji myszą do minimum. Zwłaszcza przy większych robótkach związanych z obróbką danych.
Jak napisałem na samym początku - proszę o dopisywanie pominiętych przeze mnie, przydatnych skrótów, w komentarzach. Też się chętnie czegoś naumię...
eeee…
myslalam, ze sie bardziej o tym uczniu rozwinie…
bardziej taka, obyczajowa fabula 🙂
Ja tamte zajęcia pamiętam naprawdę jak przez mgłę, dlatego poszedłem na łatwiznę i przy okazji dokarmiłem kategorię "branżowe".
Przed chwila mnie olsnilo!
Moze nie skupiac sie na faktach i matematyce, a rozwijac sfere co by bylo gdyby (choc ja osobiscie wole: co bedzie gdy), no wiesz jak to sie nazywa – fantastyka:)
Przeciez to nie musi byc blog, choc wiem jak lubisz fakty. 🙂
Jest tylko jeden problem – od tej chwili bylbys nie blogerem, a bajkopisarzem :)))
Ach, jeszcze zapomniałem dopisać jeden skrót do listy – na szczęście mam czujną Żonę (wersja 1.0), która wyłapała uchybienie w procesie postprocessingu 😉
Pominięty skrót to ^Sh-L (Control-Shift-L), który działa identycznie jak Alt-D, F, F (punkt 22. na mojej liście) czyli włącza / wyłącza Autofiltr. Szybciej wciska się ^Sh-L niż Alt-D,F,F.
^; – aktualna data
^' – kopiuje wartość z komórki powyżej
^-; (bieżąca data) oraz ^Sh-; (bieżąca godzina) znałem, faktycznie bardzo przydatne.
Ale ^-' właśnie poznałem – genialne!
Cóś jeszcze?
O, bardzo pożyteczny spis! O wielu trikach nie wiedziałem, a z Excela korzystam sporo. Skróty, o których piszesz, są chyba „stabilne”, bo związane z kursorami i innymi klawiszami funkcyjnymi. Jednak w produktach Microsoftu irytuje mnie niezmiernie to, że dwa razy na dekadę zmieniają diametralnie konfigurację pozostałych skrótów. To jest porażka interfejsowa do kwadratu, bo przecież posługiwanie się skrótami klawiaturowymi związane jest z pamięcią mięśniową, którą bardzo ciężko przeprogramować (i po co?!).
Na przykład w Excelu kiedyś używało się kombinacji ^J do przełączania się pomiędzy wartościami a formułami w karkuszu (genialny neologizm ukułeś, będę stosował!). Proste i wygodne. Obecnie trzeba jednak nacisnąć ^grawis i najpierw pomyśleć przez kilka(naście, -dziesiąt) sekund, gdzie właściwie ten nieużywany nigdy grawis na klawiaturze się znajduje. Sytuację komplikuje mi dodatkowo fakt, że z racji miejsca zamieszkania korzystam z norweskiej klawiatury o nieco innym rozmieszczeniu klawiszy (mam na myśli ich układ fizyczny, tzn. oznaczenia, bo układ software’owy mogę sobie oczywiście podmienić).
Na osobny komentarz zasługują skróty klawiaturowe w innych wersjach językowych danego programu. Polski Office trzyma się wiernie konwencji angielskiej, ale norweski Office próbuje już skróty klawiaturowe „tłumaczyć”. I tak np. w norweskim Excelu ^F nie służy bynajmniej do wyszukiwania (Find), ale do pogrubiania (Fett). Gdzie więc znajduje się wyszukiwanie? Pod… ^B (Bold). Bessęsu.
Przez pierwsze dwie lekcje opanowywał zależność między poziomym ruchem myszy po powierzchni stołu a pionowym ruchem kursora myszy na ekranie.
Chodzi o to, że on trzymał myszkę obróconą o 90 stopni?
Haha 😉 Nie, nie chodzi o obróconą mysz. Chodzi o to, że ekran znajduje się w pionie, a blat (wraz z myszą) – w poziomie. Jakkolwiek niewiarygodnie by to nie brzmiało dla kogoś, kto wyssał posługiwanie się myszą z mlekiem matki, ta drobna różnica może dla niektórych stanowić przeszkodę nie lada.
He he, nie wpadłem na to, żeby rozważyć to zagadnienie w wyższym wymiarze. 🙂