Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00457 007773 11733976 na godz. na dobę w sumie
Power Pivot dla Excela. Zaawansowane możliwości - ebook/pdf
Power Pivot dla Excela. Zaawansowane możliwości - ebook/pdf
Autor: , Liczba stron: 264
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-0446-8 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> aplikacje biurowe >> excel
Porównaj ceny (książka, ebook (-20%), audiobook).

Poznaj zaawansowane możliwości Excela!


Jeżeli myślisz, że poznałeś już na wylot wszystkie funkcje arkusza kalkulacyjnego Excel, to jesteś w błędzie! Zakres możliwości tego narzędzia można poszerzać dzięki różnorodnym dodatkom. Jednym z nich jest PowerPivot biblioteka pozwalająca na analizę ogromnych zbiorów danych. Jeżeli chcesz w pełni wykorzystać jej potencjał, to masz w rękach doskonałe źródło informacji!

W trakcie lektury kolejnych rozdziałów nauczysz się korzystać z fragmentatorów, poznasz zaawansowane funkcje wbudowane, a także metody analizy kampanii reklamowych czy wyników testów A/B. Ponadto dowiesz się, jak określić odsetek powracających klientów i gości na stronie WWW oraz zliczysz zdarzenia, które potencjalnie mogły zajść, ale do nich nie doszło. W tej wyjątkowej książce znajdziesz również bezcenne informacje na temat zastosowania narzędzi Power Query, Power View oraz Power Map. Sięgnij po ten przewodnik i poznaj możliwości Excela w zakresie Business Intelligence!

Dzięki tej książce:

Wykorzystaj program Excel w Business Intelligence!


Rob Collie — były szef zespołu inżynierów w firmie Microsoft. Przedsiębiorca, konsultant, autor książek. Pasjonat Excela. Prowadzi popularną stronę poświęconą dodatkowi Power Pivot.


Bill Jelen — certyfikowany specjalista MVP. Autor 42 książek poświęconych Excelowi. Prowadzi popularną stronę MrExcel.com.
 
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: PowerPivot Alchemy: Patterns and Techniques for Excel Tłumaczenie: Andrzej Watrak Projekt okładki: Studio Gravite / Olsztyn Obarek, Pokoński, Pazdrijowski, Zaprucki ISBN: 978-83-283-0443-7 © 2014 Robert Collie and Tickling Keys, Inc. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information or storage retrieval system without permission from the publisher. Polish edition copyright © 2015 by Helion S.A. All rights reserved. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock Images LLC. Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/ppexzm.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/ppexzm Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis tre(cid:258)ci Podzi(cid:218)kowania ............................................................................. 13 Przedmowa .................................................................................. 15 Wprowadzenie ............................................................................. 17 Niedoszacowanie — g(cid:239)ówny problem z ka(cid:285)d(cid:200) ksi(cid:200)(cid:285)k(cid:200) ............................................17 G(cid:239)upie zasady s(cid:200) po to, aby je (cid:239)ama(cid:202)! ......................................................................18 O tym, jak Bill zmyli(cid:239) mnie po raz drugi ..............................................................18 Wprowadzenie II .......................................................................... 21 Rozdzia(cid:239) 1. Sztuczki z raportami i techniki wizualizacji danych ..................... 25 Umieszczenie informacji „Data ostatniej aktualizacji” ...............................................25 Krok 1. Umieszczenie pola obliczeniowego OstatnieOd(cid:258)wie(cid:285)enie .......................26 Krok 2. U(cid:285)ycie pola obliczeniowego w funkcji modu(cid:239)owej ..................................27 Normalizowanie na wykresach pól obliczeniowych wed(cid:239)ug pierwszej/(cid:258)redniej/maksymalnej warto(cid:258)ci ..............................................................29 S(cid:239)owo z lo(cid:285)y szyderców na temat wykresów ......................................................30 Liczby to liczby, a obrazy to obrazy — ka(cid:285)dy lubi po swojemu ..........................30 Formu(cid:239)y .............................................................................................................31 Alternatywne formu(cid:239)y wykorzystuj(cid:200)ce (cid:258)redni(cid:200) ...................................................32 Tworzenie wykresów dynamicznie normalizowanych wed(cid:239)ug pierwszej warto(cid:258)ci ..........................................................................................33 Wydobywanie wyj(cid:200)tków w „problemie Sarah” ........................................................35 Zacznijmy od pola „problem Sarah” ...................................................................35 Wracamy do formu(cid:239) ...........................................................................................36 Wydobywanie rankingów i wyj(cid:200)tków do poziomu sum cz(cid:218)(cid:258)ciowych .......................38 W rzeczywisto(cid:258)ci nie jest to prawdziwe „wydobywanie” danych, ale praca w nadgodzinach ..............................................................................40 Kup książkęPoleć książkę 6 Power Pivot dla Excela. Zaawansowane mo(cid:285)liwo(cid:258)ci W(cid:239)asne etykietki ekranowe w raportach ..................................................................40 Sztuczka: hiper(cid:239)(cid:200)cza prowadz(cid:200)ce donik(cid:200)d ..........................................................41 Lepszy sposób tworzenia etykietek ....................................................................42 Pytania do tej sztuczki .......................................................................................44 Nazwane zestawy danych i „asymetryczne” tabele przestawne: ró(cid:285)ne pola obliczeniowe dla ró(cid:285)nych lat ...............................................................44 Powtarzalne! Przeno(cid:258)ne! ...................................................................................47 Nazwane zestawy nie dzia(cid:239)aj(cid:200) w „tradycyjnych” tabelach przestawnych ............48 Rozdzia(cid:239) 2. Fragmentatory: przepustka do interaktywno(cid:258)ci .......................... 49 „Inicjalizacja” fragmentatorów zawieraj(cid:200)cych zbyt wiele pozycji do przewijania ......53 Wingdings i inne czcionki symboliczne we fragmentatorach ....................................55 Czcionki symboliczne dost(cid:218)pne we fragmentatorach ..........................................55 Rozszerzone znaki ..............................................................................................57 Jak umie(cid:258)ci(cid:202) symbole we fragmentatorze ...........................................................59 Utworzenie fragmentatorów ..............................................................................60 Zmiana czcionki fragmentatora ..........................................................................60 Osobne style dla ró(cid:285)nych czcionek .....................................................................63 Ukrywanie nag(cid:239)ówka .........................................................................................63 Zastosowanie makr do zmiany czcionek fragmentatorów .........................................64 Obiekt ActiveSlicer .............................................................................................64 A teraz… makro ................................................................................................64 Je(cid:285)eli chcesz zmieni(cid:202) równie(cid:285) czcionk(cid:218) nag(cid:239)ówka… ..........................................65 Prosta sztuczka na „przestarza(cid:239)e” fragmentatory ......................................................65 Utworzenie „zast(cid:218)pczej” kolumny z etykietami fragmentatora ............................67 A je(cid:285)eli kalendarz nie jest „przyci(cid:218)ty”? ...............................................................69 Przyjazne sortowanie w raportach z fragmentatorami ..............................................70 Utworzenie sztucznych tabel dla fragmentatorów ..............................................71 Utworzenie pól obliczeniowych .........................................................................72 Umieszczenie pola UkrytaKolejno(cid:258)(cid:202)Sortowania w tabeli i sortowanie danych ....73 Ukrycie kolumny UkrytaKolejno(cid:258)(cid:202)Sortowania w arkuszu .....................................73 Sztuczka z sortowaniem wed(cid:239)ug województw za pomoc(cid:200) fragmentatora ................74 Sposób 1.: tekstowe pola obliczeniowe .............................................................74 Sposób 2.: dodanie nowej kolumny do tabeli Województwa .............................75 Dynamiczne raporty „Pierwszych N warto(cid:258)ci” w Power Pivot ...................................77 Utworzenie dwóch od(cid:239)(cid:200)czonych fragmentatorów ...............................................79 Zakulisowe pola obliczeniowe: odczytywanie wyboru z fragmentatorów ...........79 U(cid:285)ycie funkcji RANKX() .......................................................................................80 Pole obliczeniowe Uwzgl(cid:218)dni(cid:202)Klienta ................................................................82 Zagwarantowanie unikatowych nazw klientów .................................................83 Napisy w raporcie ..............................................................................................83 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 7 Formatowanie warunkowe sterowane za pomoc(cid:200) fragmentatorów .........................85 Inna technika z u(cid:285)yciem od(cid:239)(cid:200)czonych tabel ........................................................86 U(cid:285)ycie nowego fragmentatora i pola obliczeniowego do sterowania formatowaniem warunkowym .................................................87 Utworzenie nowej regu(cid:239)y ze skal(cid:200) kolorów ........................................................88 A teraz sztuczka .................................................................................................89 Korekta b(cid:239)(cid:218)du ....................................................................................................91 Okre(cid:258)lenie progu zielonego ...............................................................................92 Okre(cid:258)lenie progów (cid:285)ó(cid:239)tego i czerwonego ...........................................................93 U(cid:285)ycie w formule wybranej opcji fragmentatora ......................................................94 U(cid:285)ycie funkcji ZESTAW.MODU(cid:146)ÓW() ..................................................................94 U(cid:285)ycie funkcji USZEREGOWANY.ELEMENT.MODU(cid:146)U() ........................................95 Zastosowanie dodatkowych regu(cid:239) formatowania ...............................................96 Obs(cid:239)uga wyczyszczonego wyboru ......................................................................96 Rozdzia(cid:239) 3. Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kolumnami obliczeniowymi .... 99 Podr(cid:218)cznik do kolumn obliczeniowych dla specjalisty od Excela .............................100 Osobliwo(cid:258)ci funkcji TEXT() i FORMAT() .............................................................100 Gdzie jest funkcja WYSZUKAJ.PIONOWO()? ......................................................100 Nie mo(cid:285)na wskaza(cid:202) kolumny za pomoc(cid:200) klawiszy strza(cid:239)ek ...............................100 Sumy po(cid:258)rednie w kolumnach obliczeniowych i funkcja EARLIER() .........................101 Odwo(cid:239)ania do poprzedniego wiersza i temu podobne obliczenia ...........................104 Odwo(cid:239)ania do wierszy „z zakresu” bie(cid:285)(cid:200)cego wiersza ............................................105 Krzy(cid:285)owe przeszukiwanie tabel: funkcja LOOKUPVALUE() i inne techniki ................107 Co si(cid:218) stanie, je(cid:285)eli funkcja LOOKUPVALUE() znajdzie wi(cid:218)cej ni(cid:285) jedn(cid:200) warto(cid:258)(cid:202)? ................................................................109 A je(cid:285)eli funkcja LOOKUPVALUE() nie spe(cid:239)ni Twoich oczekiwa(cid:241)? ........................110 Przeszukiwanie danych na podstawie daty pocz(cid:200)tkowej i ko(cid:241)cowej ................111 Przeszukiwanie tylko na podstawie daty pocz(cid:200)tkowej ......................................112 Sumowanie tabel danych w tabelach przeszukiwanych .........................................114 Funkcja CONTAINSX: wyszukiwanie wspólnych warto(cid:258)ci w dwóch tabelach ..........116 Tworzenie w(cid:239)asnych funkcji X ..........................................................................117 Formu(cid:239)a kojarz(cid:200)ca warto(cid:258)ci z dwóch tabel .......................................................117 Relacje nie s(cid:200) potrzebne ..................................................................................118 Miliony odmian ...............................................................................................118 Ponowne spojrzenie na funkcj(cid:218) CONTAINSX: jaka jest wspólna warto(cid:258)(cid:202)? ..............119 Gdzie mo(cid:285)na u(cid:285)y(cid:202) tej sztuczki? .........................................................................121 Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kalendarzem .....................................................121 Kolumna DataPrzysz(cid:239)a ......................................................................................122 Kolumna Dzie(cid:241)Tygodnia ..................................................................................123 Kolumna RokMiesi(cid:200)c ........................................................................................123 Kolumna Dzie(cid:241) roboczy/weekend ....................................................................123 Kolumna RokKwarta(cid:239)Sortowanie ......................................................................124 Kup książkęPoleć książkę 8 Power Pivot dla Excela. Zaawansowane mo(cid:285)liwo(cid:258)ci Wyzwania zwi(cid:200)zane z niestandardowym kalendarzem ..........................................124 Okre(cid:258)lenie numeru dnia w danym okresie ........................................................125 Okre(cid:258)lenie numeru tygodnia w przedziale czasu ..............................................126 Stale rosn(cid:200)cy i „g(cid:239)adki” numer tygodnia ..........................................................126 Rozdzia(cid:239) 4. Modelowanie danych i formu(cid:239)y przeno(cid:258)ne ................................ 127 Nowa, lepsza rzeczywisto(cid:258)(cid:202) .............................................................................128 Do czego s(cid:239)u(cid:285)(cid:200) „formu(cid:239)y przeno(cid:258)ne”? ..............................................................130 Prosty przyk(cid:239)ad przeno(cid:258)no(cid:258)ci .................................................................................130 Integracja danych o ró(cid:285)nej „granulacji” .................................................................133 Czy nie mo(cid:285)na by(cid:239)o doda(cid:202) do tabeli Sprzeda(cid:285) kolumny OkresID i na tym poprzesta(cid:202)? .....................................................................................136 Rozszerzenie regu(cid:239)y na inne pola ni(cid:285) OkresID ...................................................138 Upierz, wyp(cid:239)ucz, powtórz .................................................................................139 Nadrz(cid:218)dne tabele filtruj(cid:200)ce w przypadku pojedynczej tabeli ............................140 Zadziwiaj(cid:200)ce i rewelacyjne rozwi(cid:200)zanie problemu relacji wiele-do-wielu ...............140 Na czym polega straszny problem z relacjami wiele-do-wielu? .........................141 Pozdrawiam Ci(cid:218), Gerhardzie Bruecklu! .............................................................141 Rozwi(cid:200)zanie Gerharda problemu relacji wiele-do-wielu ...................................142 Obliczanie w Power Pivot sprzeda(cid:285)y w tym samym sklepie ....................................143 Utworzenie tabeli Sklepy .................................................................................144 „Surowe” formu(cid:239)y ............................................................................................144 Obliczenie liczby transakcji ...............................................................................144 Filtrowanie danych sprzeda(cid:285)y ..........................................................................145 Implementacja ostatniego pola obliczeniowego ...............................................145 Ci(cid:200)g dalszy tematu sprzeda(cid:285)y w tych samych sklepach: zastosowanie dat otwarcia i zamkni(cid:218)cia sklepów ...............................................146 Utworzenie pól obliczeniowych .......................................................................147 Obliczenie daty zamkni(cid:218)cia sklepu ...................................................................149 Test ca(cid:239)o(cid:258)ci ......................................................................................................149 Ale to pole ma d(cid:239)ug(cid:200) nazw(cid:218)! ...........................................................................150 Jedna zaleta sposobu „czy by(cid:239)a wtedy sprzeda(cid:285)?” ............................................151 Analiza kampanii reklamowych: okresowo dopasowywane pola obliczeniowe ......151 Tworzenie tabeli przestawnej z profilem sprzeda(cid:285)y ..........................................152 Obliczenie tygodniowego wspó(cid:239)czynnika koryguj(cid:200)cego ...................................152 Import wspó(cid:239)czynników koryguj(cid:200)cych do modelu danych Power Pivot .............153 Utworzenie relacji z pozosta(cid:239)ymi tabelami w modelu danych ...........................154 Tworzenie pola obliczeniowego z okresowym wspó(cid:239)czynnikiem koryguj(cid:200)cym .....155 Pola obliczeniowe uwzgl(cid:218)dniaj(cid:200)ce okresowo(cid:258)(cid:202) sprzeda(cid:285)y ................................157 Inne zastosowania pól obliczeniowych uwzgl(cid:218)dniaj(cid:200)cych okresowo(cid:258)(cid:202) sprzeda(cid:285)y ......................................................158 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 9 Analiza kampanii A/B z u(cid:285)yciem fragmentatorów z datami pocz(cid:200)tkow(cid:200) i ko(cid:241)cow(cid:200) .........................................................................159 Utworzenie fragmentatorów i pól obliczeniowych z datami .............................160 Utworzenie pola obliczeniowego z danymi sprzeda(cid:285)y przefiltrowanymi wed(cid:239)ug pól z datami ..........................................................162 Utworzenie pól z dzienn(cid:200) sprzeda(cid:285)(cid:200) ................................................................163 Inny sposób: u(cid:285)ycie tabeli Kampanie ...............................................................164 Inne ciekawe tematy ........................................................................................166 Okre(cid:258)lenie odsetka powracaj(cid:200)cych klientów i go(cid:258)ci strony WWW ..........................166 Dodanie do tabeli Klienci kolumny „Rok pierwszego zakupu” ..........................167 Utworzenie pola obliczeniowego „Liczba klientów” .........................................168 Utworzenie pola obliczeniowego „Aktywni klienci” ..........................................168 Utworzenie pola obliczeniowego z odsetkiem klientów ...................................169 Uwaga: unikaj „nak(cid:239)adania si(cid:218)” lat ..................................................................169 Zliczanie nowych klientów ...............................................................................170 Pole obliczeniowe oparte na polach po(cid:258)rednich ...............................................171 Wyliczenie (cid:258)redniego „wieku” klienta ....................................................................171 Wyszukiwanie „najlepszych rzeczy” .......................................................................172 (cid:165)rednia wa(cid:285)ona: inne zastosowanie funkcji SUMX() ..............................................176 Nadanie wag odpowiednich do populacji ........................................................177 Ruchoma (cid:258)rednia, suma itp. ..................................................................................178 Suma ruchoma .................................................................................................180 (cid:165)rednia ruchoma: pierwsze podej(cid:258)cie ..............................................................180 (cid:165)rednia ruchoma: korekta ................................................................................181 Inne odmiany metody ......................................................................................181 (cid:165)rednia ruchoma sterowana za pomoc(cid:200) fragmentatora .........................................181 Utworzenie selektywnego pola obliczeniowego ...............................................185 Korekta b(cid:239)(cid:218)du ..................................................................................................186 Tytu(cid:239) wykresu ..................................................................................................186 Zliczanie rzeczy, które nie mia(cid:239)y miejsca .................................................................187 Kiedy ten sposób nie dzia(cid:239)a? ............................................................................188 Uwaga 1.: uwa(cid:285)aj na etykiety i wiersze! ..........................................................189 Uwaga 2.: ten przyk(cid:239)ad dotyczy tylko produktów .............................................190 Rozdzia(cid:239) 5. Power Query .............................................................................. 191 (cid:146)(cid:200)czenie kilku arkuszy lub skoroszytów w jedn(cid:200) tabel(cid:218) Power Pivot ......................191 Usuni(cid:218)cie wiersza nag(cid:239)ówka ............................................................................192 Zapisanie ka(cid:285)dego arkusza w pliku CSV ...........................................................193 Otwarcie okna wiersza polece(cid:241) ........................................................................193 Przej(cid:258)cie do folderu zawieraj(cid:200)cego pliki CSV ....................................................194 Po(cid:239)(cid:200)czenie wszystkich plików w jeden plik .......................................................194 Import z(cid:239)(cid:200)czonego pliku CSV do Power Pivot ...................................................195 Bonus: makro do zapisywania wszystkich skoroszytów w folderze do pliku CSV ...196 Kup książkęPoleć książkę 10 Power Pivot dla Excela. Zaawansowane mo(cid:285)liwo(cid:258)ci Z(cid:239)(cid:200)czenie plików CSV w Power Query ....................................................................196 Odczytanie pierwszego pliku CSV ....................................................................197 Dodanie niestandardowej kolumny z „oznaczeniem” pliku ...............................197 Odczytanie drugiego pliku CSV ........................................................................201 Odczytanie trzeciego pliku CSV ........................................................................201 Czas po(cid:239)(cid:200)czy(cid:202) dane! .........................................................................................202 Zachowanie tylko zapytania (cid:239)(cid:200)cz(cid:200)cego tabele ..................................................204 Testowanie od(cid:258)wie(cid:285)ania danych ......................................................................206 Dlaczego jest to takie wyj(cid:200)tkowe? ...................................................................206 Zastosowanie Power Query do anulowania przestawienia tabeli ...........................207 Wykorzystanie wiersza nag(cid:239)ówka ....................................................................208 Anulowanie przestawienia kolumn ..................................................................209 Dlaczego jest to takie wyj(cid:200)tkowe .....................................................................211 Tworzenie tabeli przeszukiwanej z tabeli danych za pomoc(cid:200) Power Query ............212 Metody tworzenia tabel przeszukiwanych ........................................................212 Wyniki operacji ................................................................................................214 Zaawansowane zastosowanie Power Query: tworzenie tabeli kalendarza ..............216 Zaraz, nie widz(cid:218) przycisku „Utwórz kalendarz”! ...............................................216 W skrócie .........................................................................................................217 Jak wpisywa(cid:202) formu(cid:239)y ......................................................................................219 Wyniki .............................................................................................................219 Usuwanie duplikatów ......................................................................................221 Rozdzia(cid:239) 6. Power View ................................................................................ 223 Jak korzysta(cid:202) z Power View ...................................................................................223 Wstawienie raportu Power View ......................................................................224 Domy(cid:258)lna pierwsza tabela Power View ............................................................224 Tworzenie nowego elementu panelu ...............................................................226 Ukryte kontrolki elementu ................................................................................226 Tworzenie nowego elementu przez przeci(cid:200)gni(cid:218)cie pola ...................................227 Lista Pola programu Power View .....................................................................227 Zmiana tabeli w wykres ...................................................................................227 Opcje formatowania ........................................................................................228 Hierarchia danych ............................................................................................229 Nowe fragmentatory jawne i niejawne ............................................................230 Dwa rodzaje filtrów .........................................................................................234 Kafelki .............................................................................................................236 Zastosowanie zwielokrotnienia pionowego do tworzenia wielu wykresów ......239 Tworzenie map ................................................................................................240 Tworzenie animowanych wykresów XY ...........................................................242 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 11 Rozdzia(cid:239) 7. Power Map ................................................................................ 243 Kodowanie geograficzne .................................................................................243 Importowanie danych zakodowanych geograficznie ........................................244 Power Map i precyzyjne dane lokalne ..............................................................246 Poruszanie si(cid:218) po mapach Power Map .............................................................246 Wy(cid:258)wietlanie mapy terenu i zdj(cid:218)(cid:202) satelitarnych ...............................................247 Zmiana etykiety czasu na mapie ......................................................................247 Trzy metody wy(cid:258)wietlania czasu ......................................................................248 Rysowanie linii pomi(cid:218)dzy dwoma punktami ....................................................248 Wskazówki dotycz(cid:200)ce tworzenia przewodnika .................................................250 Porada dotycz(cid:200)ca powi(cid:218)kszania widoku ..........................................................252 Porada dotycz(cid:200)ca pola tekstowego ..................................................................252 Przej(cid:258)cia i efekty ..............................................................................................252 Skorowidz ................................................................................. 255 Kup książkęPoleć książkę 12 Power Pivot dla Excela. Zaawansowane mo(cid:285)liwo(cid:258)ci Kup książkęPoleć książkę Rozdzia(cid:239) 3 Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kolumnami obliczeniowymi Od lat powtarzamy, (cid:285)e kolumny obliczeniowe nie stanowi(cid:200) o przewadze dodatku Power Pivot nad zwyk(cid:239)ymi funkcjami Excela. Z pewno(cid:258)ci(cid:200) jednak mo(cid:285)liwo(cid:258)(cid:202) tworzenia kolumn obliczeniowych w tabelach zawieraj(cid:200)cych ponad milion wierszy jest istotna. Definiowali(cid:258)my kolumny obliczeniowe w tabelach o ponad 100 milionach wierszy. A to ju(cid:285) jest co(cid:258). Ale je(cid:285)eli pominie si(cid:218) t(cid:218) jedn(cid:200) now(cid:200) cech(cid:218), wtedy oka(cid:285)e si(cid:218), (cid:285)e kolumny obliczeniowe w dodatku Power Pivot nie pozwalaj(cid:200) na zrobienie niczego wi(cid:218)cej ni(cid:285) to, co mo(cid:285)na osi(cid:200)gn(cid:200)(cid:202) w zwyk(cid:239)ym Excelu. W ko(cid:241)cu ta funkcjonalno(cid:258)(cid:202) dodatku Power Pivot umo(cid:285)liwia utworzenie nowej kolumny zape(cid:239)nionej jakimi(cid:258) warto(cid:258)ciami — tak samo jak w Excelu. Pola obliczeniowe natomiast z ca(cid:239)(cid:200) pewno(cid:258)ci(cid:200) wyposa(cid:285)(cid:200) Ci(cid:218) w narz(cid:218)dzie pozwalaj(cid:200)ce uzyska(cid:202) zdecydowanie bardziej elastyczne, przejrzyste i u(cid:285)yteczne rezultaty ni(cid:285) te uzyskane za pomoc(cid:200) zwyk(cid:239)ego Excela. Je(cid:258)li chodzi o formu(cid:239)y Power Pivot, to pola obliczeniowe s(cid:200) ich g(cid:239)ówn(cid:200) atrakcj(cid:200), a kolumny obliczeniowe jeszcze bardziej zwi(cid:218)kszaj(cid:200) ich znaczenie. Kolumny obliczeniowe w dodatku Power Pivot w wi(cid:218)kszym stopniu ni(cid:285) pola obliczeniowe wymagaj(cid:200) od do(cid:258)wiadczonych u(cid:285)ytkowników Excela zmiany przyzwyczaje(cid:241). Brak adresacji typu „A1” w formu(cid:239)ach DAX jest bardziej widoczny w kolumnach ni(cid:285) w polach obliczeniowych, co cz(cid:218)sto irytuje nowicjuszy. („W Excelu to jest takie proste, a nie mo(cid:285)na tego zrobi(cid:202) w Power Pivot”). UWAGA Opisane k(cid:228)opoty pojawiaj(cid:241) si(cid:246) w chwili, gdy pierwszy raz trzeba w formule odwo(cid:228)a(cid:232) si(cid:246) do jednej lub kilku warto(cid:264)ci znajduj(cid:241)cych si(cid:246) w innym ni(cid:276) bie(cid:276)(cid:241)cy wierszu tabeli. W praktyce w ka(cid:276)dym innym przypadku kolumny obliczeniowe Power Pivot s(cid:241) w prostsze w obs(cid:228)udze ni(cid:276) zwyk(cid:228)e kolumny z funkcjami w Excelu, poniewa(cid:276) sk(cid:228)adnia formu(cid:228) wykorzystuje nazwy kolumn. Na przyk(cid:228)ad obliczenia w ramach bie(cid:276)(cid:241)cego wiersza s(cid:241) dziecinnie proste, ale co(cid:264), co my nazywamy „obliczeniami krzy(cid:276)owymi”, wymaga ju(cid:276) pewnej gimnastyki umys(cid:228)owej. Ale ja (Rob) odwiedzi(cid:239)em ju(cid:285) „krain(cid:218) problemów z obliczeniami krzy(cid:285)owymi”. Moja mi(cid:239)o(cid:258)(cid:202) do kolumn obliczeniowych Power Pivot ros(cid:239)a w miar(cid:218) up(cid:239)ywu czasu nawet w przypadku oblicze(cid:241) krzy(cid:285)owych. Dlatego celem tego rozdzia(cid:239)u jest pomóc Ci w szybkim dotarciu do szcz(cid:218)(cid:258)liwego ko(cid:241)ca tej drogi. Kup książkęPoleć książkę 100 Rozdzia(cid:239) 3. Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kolumnami obliczeniowymi Podr(cid:218)cznik do kolumn obliczeniowych dla specjalisty od Excela Je(cid:285)eli jeste(cid:258) specjalist(cid:200) od Excela usi(cid:239)uj(cid:200)cym opanowa(cid:202) kolumny obliczeniowe w dodatku Power Pivot, napotkasz na swej drodze kilka przeszkód, o które mo(cid:285)esz si(cid:218) potkn(cid:200)(cid:202). W Excelu dost(cid:218)pnych jest oko(cid:239)o 400 ró(cid:285)nych funkcji. Tylko jedn(cid:200) pi(cid:200)t(cid:200) tych funkcji znajdziesz w Power Pivot, ale za to jest to grupa zdecydowanie najlepszych funkcji. Je(cid:285)eli chcesz u(cid:285)y(cid:202) MID(), LEFT(), RIGHT(), IF() lub innej popularnej funkcji, nic nie stoi na przeszkodzie… B(cid:218)d(cid:200) dzia(cid:239)a(cid:202) zgodnie z oczekiwaniami. Osobliwo(cid:258)ci funkcji TEXT() i FORMAT() Niektóre funkcje dzia(cid:239)aj(cid:200) tak samo w dodatku Power Pivot, jak i w Excelu, jednak jest kilka wyj(cid:200)tków. Funkcja TEXT() (w wersji polskiej TEKST()) w Excelu przydaje si(cid:218) do konwersji dat na nazwy miesi(cid:218)cy lub dni tygodnia i na pewno b(cid:218)dziesz chcia(cid:239) z niej korzysta(cid:202). Jednak z jakiego(cid:258) powodu zespó(cid:239) rozwijaj(cid:200)cy dodatek Power Pivot postanowi(cid:239) do powy(cid:285)szych celów przeznaczy(cid:202) funkcj(cid:218) VBA FORMAT(), a nie TEXT(). Lubimy (cid:285)artowa(cid:202), (cid:285)e jest to zwyk(cid:239)a literówka — zamiast T-E-X-T wysz(cid:239)o F-O-R-M-A-T, ale w rzeczywisto(cid:258)ci te dwie funkcje istotnie ró(cid:285)ni(cid:200) si(cid:218) mi(cid:218)dzy sob(cid:200). Je(cid:285)eli zazwyczaj w Excelu u(cid:285)ywasz funkcji =TEKST(A2, MMMM ), to w Power Pivot przek(cid:239)ada si(cid:218) ona na =FORMAT([Data]; MMMM ). Obie funkcje jako argument przyjmuj(cid:200) pole z dat(cid:200) i zwracaj(cid:200) nazw(cid:218) miesi(cid:200)ca, na przyk(cid:239)ad „stycze(cid:241)”. Funkcja FORMAT() dopuszcza dwa kody formatu, których nie obs(cid:239)uguje funkcja TEXT(). Na przyk(cid:239)ad warto(cid:258)(cid:202) Q powoduje zwrócenie numeru kwarta(cid:239)u (od 1 do 4), a WW numeru tygodnia (od 1 do 52). Te ró(cid:285)nice stanowi(cid:200) o przewadze funkcji FORMAT()nad TEXT(), ale osoba niewtajemniczona mo(cid:285)e o tym nie wiedzie(cid:202). Gdzie jest funkcja WYSZUKAJ.PIONOWO()? Funkcj(cid:200) numer jeden dla specjalistów od Excela jest WYSZUKAJ.PIONOWO(). Nie jest ona dost(cid:218)pna w Power Pivot z wa(cid:285)nego powodu: w wi(cid:218)kszo(cid:258)ci przypadków nie jest potrzebna! Relacje umo(cid:285)liwiaj(cid:200) po(cid:239)(cid:200)czenie pól tabeli A z polami tabeli B bez konieczno(cid:258)ci „scalania” obu tabel. Jednak w przypadku, gdy w kolumnie obliczeniowej naprawd(cid:218) potrzebne jest umieszczenie odwo(cid:239)ania do innej tabeli, Power Pivot oferuje kilka doskona(cid:239)ych funkcji, na przyk(cid:239)ad RELATED() (opisan(cid:200) w ksi(cid:200)(cid:285)ce DAX Formula for Power Pivot) i LOOKUPVALUE() (opisan(cid:200) w tym rozdziale). Nie mo(cid:285)na wskaza(cid:202) kolumny za pomoc(cid:200) klawiszy strza(cid:239)ek Nie ma na to sposobu. Specjali(cid:258)ci od Excela powinni by(cid:202) wdzi(cid:218)czni Robowi Colliemu za to, (cid:285)e pracowa(cid:239) w zespole rozwijaj(cid:200)cym dodatek Power Pivot. Ale Rob jest m(cid:239)ody. M(cid:239)odsi specjali(cid:258)ci od Excela tworz(cid:200) formu(cid:239)y, klikaj(cid:200)c kolumny mysz(cid:200), inni w ca(cid:239)o(cid:258)ci je wpisuj(cid:200). Starsi specjali(cid:258)ci cz(cid:218)sto wskazuj(cid:200) kolumn(cid:218) za pomoc(cid:200) klawiszy strza(cid:239)ek. Ta technika pochodzi jeszcze z czasów programu Lotus 1-2-3. Na przyk(cid:239)ad chc(cid:200)c wpisa(cid:202) w komórce E2 formu(cid:239)(cid:218) =B2*C2/D2, mo(cid:285)esz u(cid:285)y(cid:202) tej techniki Kup książkęPoleć książkę Sumy po(cid:258)rednie w kolumnach obliczeniowych i funkcja EARLIER() 101 w nast(cid:218)puj(cid:200)cy sposób: naci(cid:258)nij klawisz =, nast(cid:218)pnie strza(cid:239)k(cid:218) w lewo, strza(cid:239)k(cid:218) w lewo, strza(cid:239)k(cid:218) w lewo, *, strza(cid:239)k(cid:218) w lewo, strza(cid:239)k(cid:218) w lewo, /, strza(cid:239)k(cid:218) w lewo, Enter. Opis brzmi strasznie, ale gdy ju(cid:285) si(cid:218) opanuje t(cid:218) technik(cid:218), okazuje si(cid:218) ona bardzo szybka. Na naszych seminariach 70 uczestników u(cid:285)ywa myszy, 10 wpisuje formu(cid:239)y w ca(cid:239)o(cid:258)ci, a 20 korzysta z klawiszy strza(cid:239)ek. Siatka w oknie Power Pivot pozwala korzysta(cid:202) z myszy lub wpisywa(cid:202) formu(cid:239)y r(cid:218)cznie, ale nie umo(cid:285)liwia u(cid:285)ycia sposobu z klawiszami strza(cid:239)ek. Sumy po(cid:258)rednie w kolumnach obliczeniowych i funkcja EARLIER() Za(cid:239)ó(cid:285)my, (cid:285)e masz bardzo prost(cid:200) tabel(cid:218), na przyk(cid:239)ad tak(cid:200): Rysunek 3.1. Chcesz do niej doda(cid:202) trzeci(cid:200) kolumn(cid:218) zawieraj(cid:200)c(cid:200) sum(cid:218) warto(cid:258)ci dla ka(cid:285)dego klienta: Rysunek 3.2. Tak wygl(cid:200)da formu(cid:239)a w trzeciej kolumnie obliczeniowej: =CALCULATE(SUM(Tabela[Liczba]); FILTER(Tabela; Tabela[Klient]=EARLIER(Tabela[Klient])) ) Je(cid:285)eli nie znasz dok(cid:239)adnie kontekstu wiersza (opisanego dwa akapity dalej), post(cid:218)puj po prostu wed(cid:239)ug przedstawionego schematu i dodaj trzeci(cid:200) kolumn(cid:218). Proponujemy, aby pocz(cid:200)tkuj(cid:200)cy u(cid:285)ytkownicy wykorzystali powy(cid:285)sz(cid:200) formu(cid:239)(cid:218) jako wzorzec, podstawiaj(cid:200)c w nim nazwy w(cid:239)asnych tabel i kolumn. Pó(cid:283)niej mo(cid:285)na przej(cid:258)(cid:202) dalej, nie przejmuj(cid:200)c si(cid:218) niewiedz(cid:200) o tym, co naprawd(cid:218) zosta(cid:239)o zrobione. Nie szkodzi. Masz na to nasze pozwolenie i zach(cid:218)t(cid:218), szczególnie na pocz(cid:200)tku. A powa(cid:285)nie, mo(cid:285)esz przej(cid:258)(cid:202) do nast(cid:218)pnej sztuczki opisanej w tym rozdziale. Musisz tylko przeczyta(cid:202) pozosta(cid:239)(cid:200) cz(cid:218)(cid:258)(cid:202) tego podrozdzia(cid:239)u, je(cid:285)eli zdecydujesz si(cid:218) osi(cid:200)gn(cid:200)(cid:202) wy(cid:285)szy stopie(cid:241) wtajemniczenia. Kup książkęPoleć książkę 102 Rozdzia(cid:239) 3. Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kolumnami obliczeniowymi O, jednak tu jeste(cid:258)? Zatem dobrze, oto wyja(cid:258)nienie, o co chodzi w kolumnie obliczeniowej z sumami po(cid:258)rednimi. Poniewa(cid:285) tabela ma cztery wiersze, formu(cid:239)a w kolumnie obliczeniowej musi by(cid:202) „uruchomiona” cztery razy — po jednym razie dla ka(cid:285)dego wiersza, w którym b(cid:218)dzie umieszczony wynik (w tym przypadku b(cid:218)d(cid:200) to liczby 3, 3, 7 i 7, jak na rysunku 3.2). W ka(cid:285)dym z tych czterech kroków odwo(cid:239)anie do kolumny zostanie przekszta(cid:239)cone na warto(cid:258)(cid:202) zapisan(cid:200) we wskazanej kolumnie i w „bie(cid:285)(cid:200)cym” wierszu. Tak wi(cid:218)c na przyk(cid:239)ad w drugim wierszu tabeli odwo(cid:239)anie Tabela[Liczba] zwróci warto(cid:258)(cid:202) 2, zgodnie z oczekiwaniami. Je(cid:285)eli opis wydaje si(cid:218) skomplikowany, chcieliby(cid:258)my pokaza(cid:202), (cid:285)e nie ma tu nic skomplikowanego, poniewa(cid:285) przedstawiony proces przebiega dok(cid:239)adnie tak, jak si(cid:218) tego oczekuje. Za(cid:239)ó(cid:285)my teraz, (cid:285)e tworzysz kolejn(cid:200) kolumn(cid:218) obliczeniow(cid:200), tym razem zawieraj(cid:200)c(cid:200) nast(cid:218)puj(cid:200)c(cid:200) formu(cid:239)(cid:218): =CONCATENATE(Tabela[Klient]; Tabela[Liczba]) Otrzymasz oczywi(cid:258)cie dok(cid:239)adnie to, czego oczekujesz: Rysunek 3.3. Jest tak dlatego, (cid:285)e w ka(cid:285)dym z czterech „kroków” wykonywanych w kolumnie obliczeniowej (po jednym kroku na ka(cid:285)dy wiersz) odwo(cid:239)anie do kolumny jest z zasady ograniczone do bie(cid:285)(cid:200)cego wiersza. By(cid:239)oby do(cid:258)(cid:202) dziwne, gdyby w pierwszym wierszu odwo(cid:239)anie do kolumny [Liczba] zwróci(cid:239)o warto(cid:258)(cid:202) 2. Oczywi(cid:258)cie oczekujemy, (cid:285)e zwrócona zostanie warto(cid:258)(cid:202) 1. Poniewa(cid:285) formu(cid:239)a w kolumnie obliczeniowej wyliczana jest jeden raz dla ka(cid:285)dego wiersza, istnieje wymy(cid:258)lny termin na okre(cid:258)lenie koncepcji „bie(cid:285)(cid:200)cego wiersza w ka(cid:285)dym kroku”. Jest to kontekst wiersza. Gdyby(cid:258)my u(cid:285)yli tego terminu w opisie przedstawionego wcze(cid:258)niej prostego procesu, brzmia(cid:239)oby to tak: „podczas wyliczania kolumny obliczeniowej w czterowierszowej tabeli mechanizm DAX analizuje cztery ró(cid:285)ne konteksty wiersza i wylicza formu(cid:239)(cid:218) jeden raz dla ka(cid:285)dego kontekstu”. Jak na razie wygl(cid:200)da to nie(cid:283)le, prawda? Teraz we(cid:283) g(cid:239)(cid:218)boki wdech i powoli wypu(cid:258)(cid:202) powietrze… Problem polega na tym, (cid:285)e formu(cid:239)a w kolumnie Suma dla klienta zawiera funkcj(cid:218) FILTER(), która jest do(cid:258)(cid:202) podst(cid:218)pna. Formu(cid:239)a w kolumnie obliczeniowej jest wyliczana jeden raz w ka(cid:285)dym kontek(cid:258)cie wiersza, a funkcja FILTER( Tabela , ...) dodatkowo za ka(cid:285)dym razem przegl(cid:200)da wszystkie wiersze w tabeli, zupe(cid:239)nie tak samo jak formu(cid:239)a! Jedna z kluczowych, charakterystycznych cech funkcji FILTER() polega na pomijaniu kontekstu wiersza w kolumnie obliczeniowej i operowaniu na ca(cid:239)ej tabeli. Mo(cid:285)e to by(cid:202) myl(cid:200)ce (na pocz(cid:200)tku), ale te(cid:285) wspania(cid:239)e (gdy zrozumiesz jej dzia(cid:239)anie). Poniewa(cid:285) tabela ma cztery wiersze, za ka(cid:285)dym razem, gdy wyliczana jest funkcja FILTER( Tabela , ...), wykonywane s(cid:200) cztery osobne kroki. W ka(cid:285)dym kroku funkcja sprawdza wiersz i pyta: „Hej, mam uwzgl(cid:218)dni(cid:202) ten wiersz czy go odrzuci(cid:202)?”. Kup książkęPoleć książkę W sumie podczas tworzenia kolumny obliczeniowej jest wi(cid:218)c wykonywanych 16 kroków: Sumy po(cid:258)rednie w kolumnach obliczeniowych i funkcja EARLIER() 103 Rysunek 3.4. Na powy(cid:285)szym rysunku symbol KO1 oznacza „kontekst pierwszego wiersza, w którym wykonywana jest formu(cid:239)a kolumny obliczeniowej”, F1 natomiast oznacza „kontekst pierwszego wiersza, w którym wykonywana jest funkcja FILTER()”. Mo(cid:285)esz sobie wyobrazi(cid:202) „nazwy” wszystkich 16 kontekstów, w których wykonywana jest formu(cid:239)a z kolumny obliczeniowej. Nazwy maj(cid:200) posta(cid:202) KO1/F1, KO1/F2 itd. a(cid:285) do KO4/F3 i KO4/F4. (Te nazwy s(cid:200) zupe(cid:239)nie nieoficjalne. Konteksty w formu(cid:239)ach DAX nie maj(cid:200) swoich nazw. U(cid:285)ywamy ich tylko na potrzeby niniejszego opisu). S(cid:200) zatem cztery „konteksty wierszy dla kolumn obliczeniowych”, a wewn(cid:200)trz ka(cid:285)dego z nich s(cid:200) schowane cztery „konteksty wierszy dla funkcji FILTER()” — jest to zewn(cid:218)trzna i wewn(cid:218)trzna p(cid:218)tla z czterema kontekstami wierszy ka(cid:285)da. Teraz wewn(cid:200)trz funkcji FILTER() wykonywane jest „podstawowe” odwo(cid:239)anie do kolumny zgodnie z kontekstem wiersza z funkcj(cid:200), a nie z kolumn(cid:200) obliczeniow(cid:200). Czy to jest zrozumia(cid:239)e? Wewn(cid:200)trz funkcji FILTER() odwo(cid:239)anie do kolumny Tabela [Klient] jest realizowane zgodnie z „wewn(cid:218)trzn(cid:200)” p(cid:218)tl(cid:200) odliczaj(cid:200)c(cid:200) konteksty wierszy F1, F2 itd., z ca(cid:239)kowitym pomini(cid:218)ciem „zewn(cid:218)trznej” p(cid:218)tli odliczaj(cid:200)cej konteksty KO1 itd.! (Pami(cid:218)taj, (cid:285)e funkcja FILTER() musi sprawdzi(cid:202) ka(cid:285)dy wiersz w tabeli, aby oceni(cid:202), czy ma go uwzgl(cid:218)dni(cid:202) w obliczeniach, czy odrzuci(cid:202)). Dlatego nawet gdy formu(cid:239)a jest wyliczana w „zewn(cid:218)trznym” kontek(cid:258)cie KO2 (w którym [Klient]= a ), to „podstawowe” odwo(cid:239)anie do kolumny Tabela [Klient] wewn(cid:200)trz funkcji FILTER() niekiedy spowoduje, (cid:285)e zwrócona zostanie warto(cid:258)(cid:202) „b” — w kontekstach KO2/F3 i KO2/F4. W jaki sposób wewn(cid:200)trz funkcji FILTER() mo(cid:285)na „cofn(cid:200)(cid:202) si(cid:218)” do zewn(cid:218)trznej p(cid:218)tli w celu sprawdzenia warto(cid:258)ci pola [Klient] w kontek(cid:258)cie KO2? Korzystaj(cid:200)c z funkcji EARLIER()! W skrócie, funkcja ta dzia(cid:239)a nast(cid:218)puj(cid:200)co: „podczas odczytywania warto(cid:258)ci w okre(cid:258)lonej kolumnie wyjd(cid:283) poza bie(cid:285)(cid:200)cy kontekst wiersza i wejd(cid:283) w kontekst zewn(cid:218)trzny (wcze(cid:258)niejszy, ang. earlier)”. Jak si(cid:218) przekonasz, równie cz(cid:218)sto b(cid:218)dziemy u(cid:285)ywa(cid:202) funkcji EARLIER(), jak i CURRENTROW() (bie(cid:285)(cid:200)cy wiersz). Funkcje te u(cid:285)yte w funkcji FILTER()w kolumnie obliczeniowej umo(cid:285)liwiaj(cid:200) odczytywanie warto(cid:258)ci z ka(cid:285)dego wiersza w tabeli i porównanie ich z warto(cid:258)ciami z bie(cid:285)(cid:200)cego wiersza. W ten sposób mo(cid:285)esz wzi(cid:200)(cid:202) jeden wiersz tabeli, a nast(cid:218)pie przejrze(cid:202) wszystkie pozosta(cid:239)e, pytaj(cid:200)c „Hej, jeste(cid:258)cie podobni do tego wiersza? Je(cid:285)eli tak, chc(cid:218) was policzy(cid:202)”. Poza tym mo(cid:285)e (cho(cid:202) bardzo rzadko) wyst(cid:200)pi(cid:202) sytuacja, w której b(cid:218)d(cid:200) u(cid:285)yte wi(cid:218)cej ni(cid:285) dwie zagnie(cid:285)d(cid:285)one p(cid:218)tle odliczaj(cid:200)ce konteksty wierszy. Dlatego funkcja EARLIER() ma opcjonalny drugi argument Number do okre(cid:258)lenia liczby „zewn(cid:218)trznych” p(cid:218)tli, poza które chcesz wyj(cid:258)(cid:202). Je(cid:285)eli Kup książkęPoleć książkę 104 Rozdzia(cid:239) 3. Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kolumnami obliczeniowymi pominiesz ten argument, zostanie przyj(cid:218)ta domy(cid:258)lna warto(cid:258)(cid:202) 1. Jest to te(cid:285) powód, dla którego istnieje równie(cid:285) funkcja EARLIEST(). Jej przeznaczeniem jest wyj(cid:258)cie do najbardziej zewn(cid:218)trznego kontekstu wiersza, bez wzgl(cid:218)du na to, jak g(cid:239)(cid:218)boko p(cid:218)tle b(cid:218)d(cid:200) zagnie(cid:285)d(cid:285)one. UWAGA Do chwili pisania tej ksi(cid:241)(cid:276)ki Twoi drodzy autorzy nigdy nie musieli wychodzi(cid:232) dalej ni(cid:276) jeden krok na zewn(cid:241)trz p(cid:246)tli i dlatego te(cid:276) nigdy nie u(cid:276)ywali argumentu Number funkcji EARLIER() ani funkcji EARLIEST(). Jak dot(cid:241)d nawet nie odczuli(cid:264)my potrzeby, aby tak robi(cid:232). Dawno temu, gdy u(cid:276)ywa(cid:228)em (ja, Bill) dodatku Power Pivot w firmie Data Analyst, desperacko próbowa(cid:228)em wymy(cid:264)li(cid:232) przyk(cid:228)ad zastosowania funkcji EARLIER() lub EARLIEST(). Dzisiaj, po kilku latach, u(cid:276)ywamy funkcji EARLIER() w zasadzie tylko z funkcj(cid:241) SUMIF(), co jest bardzo proste i przydatne. Odwo(cid:239)ania do poprzedniego wiersza i temu podobne obliczenia Oto bardzo cz(cid:218)sto zadawane pytanie w (cid:258)wiecie kolumn obliczeniowych: „Jak odwo(cid:239)a(cid:202) si(cid:218) do wiersza umieszczonego tu(cid:285) »nad« danym wierszem”? Na przyk(cid:239)ad jak utworzy(cid:202) kolumn(cid:218) obliczeniow(cid:200) tak(cid:200) jak przedstawiona ni(cid:285)ej? Rysunek 3.5. Jak to zwykle bywa, odpowied(cid:283) jest bardzo podobna do tej z omówionego przed chwil(cid:200) przyk(cid:239)adu z sumami po(cid:258)rednimi: =CALCULATE(SUM( Patrz(cid:200)cWstecz [Warto(cid:258)(cid:202)]); FILTER( Patrz(cid:200)cWstecz ; Patrz(cid:200)cWstecz [Data] = EARLIER( Patrz(cid:200)cWstecz [Data])-1 ) ) W rzeczywisto(cid:258)ci jedyna ró(cid:285)nica polega na wykonaniu dzia(cid:239)ania –1 na ko(cid:241)cu trzeciego wiersza formu(cid:239)y! Zwró(cid:202) uwag(cid:218) na nast(cid:218)puj(cid:200)ce kwestie: Kup książkęPoleć książkę Odwo(cid:239)ania do wierszy „z zakresu” bie(cid:285)(cid:200)cego wiersza 105 (cid:132) Kolejno(cid:258)(cid:202) sortowania tabeli nie ma wp(cid:239)ywu na wynik formu(cid:239)y. Przedstawiona formu(cid:239)a wyszukuje wiersz (wiersze), w którym warto(cid:258)(cid:202) w kolumnie Data jest wcze(cid:258)niejsza o jeden dzie(cid:241) ni(cid:285) data w bie(cid:285)(cid:200)cym wierszu, a nast(cid:218)pnie sumuje warto(cid:258)ci z kolumny Warto(cid:258)(cid:202). (cid:132) Je(cid:285)eli chcesz si(cid:218)gn(cid:200)(cid:202) do nast(cid:218)pnego, a nie poprzedniego wiersza (wierszy), zmie(cid:241) dzia(cid:239)anie z –1 na +1. (cid:132) Analogicznie, je(cid:285)eli chcesz cofn(cid:200)(cid:202) si(cid:218) o tydzie(cid:241), zmie(cid:241) –1 na –7. (cid:132) Opisana technika sprawdza si(cid:218) równie(cid:285) w przypadku kolumn zawieraj(cid:200)cych inne dane ni(cid:285) daty. Je(cid:285)eli w tabeli znajduje si(cid:218) na przyk(cid:239)ad kolumna NumerMiesi(cid:200)ca, odj(cid:218)cie od niej warto(cid:258)ci 1 tak(cid:285)e jest mo(cid:285)liwe. (cid:132) Cz(cid:218)sto zamiast kolumny obliczeniowej takiej jak powy(cid:285)sza lepiej jest utworzy(cid:202) pole obliczeniowe. Jednak dok(cid:239)adne omówienie tego zagadnienia wykracza poza zakres niniejszej ksi(cid:200)(cid:285)ki. (Przyk(cid:239)ady u(cid:285)ycia takiego pola znajdziesz w dalszej cz(cid:218)(cid:258)ci tego rozdzia(cid:239)u i w rozdziale 4.). (cid:132) Sytuacje, w których potrzebne s(cid:200) kolumny obliczeniowe, na pewno si(cid:218) zdarzaj(cid:200), dlatego zosta(cid:239)a tu opisana ta technika. Odwo(cid:239)ania do wierszy „z zakresu” bie(cid:285)(cid:200)cego wiersza Czytaj(cid:200)c opis powy(cid:285)szej sztuczki, zapewne dziwi(cid:239)e(cid:258) si(cid:218), dlaczego w formule zosta(cid:239)a u(cid:285)yta funkcja SUM(), skoro trzeba by(cid:239)o si(cid:218)gn(cid:200)(cid:202) tylko do poprzedniego wiersza. Có(cid:285), dodatek Power Pivot „nie dowierza”, (cid:285)e przy u(cid:285)yciu funkcji FILTER() chcesz znale(cid:283)(cid:202) tylko jeden wiersz. Zawsze przyjmuje, (cid:285)e wyszukanych ma by(cid:202) wi(cid:218)cej wierszy. Z tego te(cid:285) powodu zawsze wymagane jest u(cid:285)ycie funkcji agreguj(cid:200)cej, na przyk(cid:239)ad SUM(). Oczywi(cid:258)cie je(cid:285)eli znajdowany jest tylko jeden wiersz, to wybór funkcji agreguj(cid:200)cej cz(cid:218)sto nie ma znaczenia. Wszystkie funkcje takie jak SUM(), AVERAGE(), MAX() itp. zwróc(cid:200) ten sam wynik. Przyjrzyjmy si(cid:218) kilku przyk(cid:239)adom. Zauwa(cid:285), (cid:285)e w tabeli przedstawionej poni(cid:285)ej znajduj(cid:200) si(cid:218) wiersze zawieraj(cid:200)ce t(cid:218) sam(cid:200) dat(cid:218): Rysunek 3.6. Kup książkęPoleć książkę 106 Rozdzia(cid:239) 3. Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kolumnami obliczeniowymi Poni(cid:285)ej wida(cid:202) sumy z poprzedniego dnia: Rysunek 3.7. Formu(cid:239)a u(cid:285)yta w tej tabeli jest dok(cid:239)adnie taka sama jak w poprzedniej sztuczce. Zmieniona zosta(cid:239)a jedynie nazwa tabeli: =CALCULATE(SUM( WieleWarto(cid:258)ci [Warto(cid:258)(cid:202)]); FILTER( WieleWarto(cid:258)ci ; WieleWarto(cid:258)ci [Data]=EARLIER( WieleWarto(cid:258)ci [Data])-1 ) ) A tu jest przyk(cid:239)ad sumy ruchomej uwzgl(cid:218)dniaj(cid:200)cej bie(cid:285)(cid:200)c(cid:200) dat(cid:218): Rysunek 3.8. Formu(cid:239)a wygl(cid:200)da jak ni(cid:285)ej: =CALCULATE(SUM( WieleWarto(cid:258)ci [Warto(cid:258)(cid:202)]); FILTER( WieleWarto(cid:258)ci ; WieleWarto(cid:258)ci [Data] = EARLIER( WieleWarto(cid:258)ci [Data]) ) ) UWAGA Aby wykluczy(cid:232) z oblicze(cid:254) wiersze z bie(cid:276)(cid:241)c(cid:241) dat(cid:241), zmie(cid:254) operator = na . Id(cid:200)c dalej tym tropem, poni(cid:285)ej przedstawiamy trzydniow(cid:200) sum(cid:218) ruchom(cid:200) obejmuj(cid:200)c(cid:200) bie(cid:285)(cid:200)cy, poprzedni i nast(cid:218)pny dzie(cid:241): Kup książkęPoleć książkę Krzy(cid:285)owe przeszukiwanie tabel: funkcja LOOKUPVALUE() i inne techniki 107 Rysunek 3.9. A tak wygl(cid:200)da formu(cid:239)a: =CALCULATE(SUM( WieleWarto(cid:258)ci [Warto(cid:258)(cid:202)]); FILTER( WieleWarto(cid:258)ci ; WieleWarto(cid:258)ci [Data] = EARLIER( WieleWarto(cid:258)ci [Data])-1 WieleWarto(cid:258)ci [Data] = EARLIER( WieleWarto(cid:258)ci [Data])+1 ) ) UWAGA Oczywi(cid:264)cie mo(cid:276)esz zamieni(cid:232) funkcj(cid:246) SUM() na przyk(cid:228)ad na MAX() i wyszuka(cid:232) warto(cid:264)(cid:232) z „najlepszego” spo(cid:264)ród trzech dni. Przypomnijmy jednak jeszcze raz: cz(cid:246)sto, chocia(cid:276) nie zawsze, zamiast tworzy(cid:232) kolumny obliczeniowe takie jak powy(cid:276)sze, lepiej jest utworzy(cid:232) pole obliczeniowe. Krzy(cid:285)owe przeszukiwanie tabel: funkcja LOOKUPVALUE() i inne techniki Wszystkie przyk(cid:239)ady opisane dot(cid:200)d w tym rozdziale dotycz(cid:200) przeszukiwania wierszy tej samej tabeli. Ale co zrobi(cid:202), je(cid:285)eli trzeba pobra(cid:202) warto(cid:258)ci z innych tabel? Przyjrzyjmy si(cid:218) przyk(cid:239)adowemu problemowi. Mamy zatem tabel(cid:218) Sprzeda(cid:285): Rysunek 3.10. Kup książkęPoleć książkę 108 Rozdzia(cid:239) 3. Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kolumnami obliczeniowymi UWAGA Tabela Sprzeda(cid:285) zawiera wiele wierszy z takimi samymi parami warto(cid:264)ci w kolumnach Data i Produkt. Jest równie(cid:285) tabela Ceny: Rysunek 3.11. UWAGA W tabeli Ceny jest tylko jeden wiersz z dan(cid:241) par(cid:241) warto(cid:264)ci w kolumnach Data i Produkt. Teraz chcemy w kolumnie obliczeniowej w tabeli Sprzeda(cid:285) uwzgl(cid:218)dni(cid:202) odpowiedni(cid:200) warto(cid:258)(cid:202) pola Cena jednostkowa z tabeli Ceny. „Najprostszym” rozwi(cid:200)zaniem by(cid:239)oby u(cid:285)ycie funkcji RELATED(). Je(cid:285)eli pomi(cid:218)dzy tymi dwiema tabelami jest utworzona relacja, to sytuacja wygl(cid:200)da ca(cid:239)kiem nie(cid:283)le. Ale niestety, w tym przypadku nie ma relacji. Co wi(cid:218)cej, nie ma kolumny, której mo(cid:285)na by(cid:239)oby u(cid:285)y(cid:202) do jej utworzenia. Aby utworzy(cid:202) relacj(cid:218), trzeba zdefiniowa(cid:202) nowe kolumny w obu tabelach (Sprzeda(cid:285) i Ceny) zawieraj(cid:200)ce z(cid:239)(cid:200)czone warto(cid:258)ci z kolumn Data i Produkt. Potem, u(cid:285)ywaj(cid:200)c tych „hybrydowych” kolumn, b(cid:218)dzie mo(cid:285)na utworzy(cid:202) relacj(cid:218). Ten sposób wymaga mnóstwa pracy. Ponadto utworzenie kolumny obliczeniowej powoduje, (cid:285)e znacznie powi(cid:218)ksza si(cid:218) rozmiar pliku, szczególnie je(cid:285)eli (cid:239)(cid:200)czone tabele s(cid:200) du(cid:285)e. Poni(cid:285)ej natomiast przedstawiona jest formu(cid:239)a umo(cid:285)liwiaj(cid:200)ca odczytanie warto(cid:258)ci z kolumny Cena jednostkowa bez uprzedniego tworzenia relacji: =LOOKUPVALUE(Ceny[Cena jednostkowa]; Ceny[Data]; Sprzeda(cid:285) [Data]; Ceny[Produkt]; Sprzeda(cid:285) [Produkt]) Formu(cid:239)a jest bardzo prosta. Pierwszy argument funkcji LOOKUPVALUE() okre(cid:258)la kolumn(cid:218), z której chcesz odczytywa(cid:202) warto(cid:258)ci. Nast(cid:218)pnie wskazywana jest para kolumn — najpierw z tabeli „(cid:283)ród(cid:239)owej” i odpowiadaj(cid:200)ca jej kolumna z tabeli „docelowej”. Praktycznie mo(cid:285)na wskaza(cid:202) dowoln(cid:200) liczb(cid:218) par kolumn. I to dzia(cid:239)a: Kup książkęPoleć książkę Krzy(cid:285)owe przeszukiwanie tabel: funkcja LOOKUPVALUE() i inne techniki 109 Rysunek 3.12. Co si(cid:218) stanie, je(cid:285)eli funkcja LOOKUPVALUE() znajdzie wi(cid:218)cej ni(cid:285) jedn(cid:200) warto(cid:258)(cid:202)? Tak, to dobre pytanie. Aby sprawdzi(cid:202), jak to wygl(cid:200)da w praktyce, umie(cid:258)(cid:202) w tabeli Ceny jeszcze jeden wiersz z produktem A i dat(cid:200) 1 stycznia. Tym razem wprowad(cid:283) tak(cid:200) sam(cid:200) cen(cid:218) (1,50 z(cid:239)) jak w oryginalnym wierszu: Rysunek 3.13. Nast(cid:218)pnie sprawd(cid:283) zawarto(cid:258)(cid:202) kolumny obliczeniowej z funkcj(cid:200) LOOKUPVALUE(): Rysunek 3.14. Kup książkęPoleć książkę 110 Rozdzia(cid:239) 3. Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kolumnami obliczeniowymi A to dopiero, to i tak dzia(cid:239)a! Fajnie, formu(cid:239)a wykry(cid:239)a, (cid:285)e mimo i(cid:285) znalaz(cid:239)a kilka wierszy, wszystkie zwróci(cid:239)y t(cid:218) sam(cid:200) warto(cid:258)(cid:202) (1,50 z(cid:239)), dzi(cid:218)ki czemu nie wyst(cid:200)pi(cid:239) b(cid:239)(cid:200)d. Wyrazy uznania dla programistów za dobr(cid:200) robot(cid:218)! Je(cid:285)eli cofniesz si(cid:218) i zmienisz warto(cid:258)(cid:202) w „nowym” wierszu na 1,60 z(cid:239), co spowoduje konflikt warto(cid:258)ci, wtedy rzeczywi(cid:258)cie pojawi si(cid:218) b(cid:239)(cid:200)d: Rysunek 3.15. A je(cid:285)eli funkcja LOOKUPVALUE() nie spe(cid:239)ni Twoich oczekiwa(cid:241)? A je(cid:285)eli poprzedni przyk(cid:239)ad z dwoma wierszami w tabeli Ceny z t(cid:200) sam(cid:200) par(cid:200) Data/Produkt, ale ró(cid:285)n(cid:200) cen(cid:200), b(cid:218)dzie jak najbardziej uzasadniony? Co wtedy trzeba zrobi(cid:202)? Có(cid:285), trzeba wróci(cid:202) do naszych starych znajomych, czyli funkcji CALCULATE() i FILTER(): =CALCULATE(AVERAGE(Ceny[Cena jednostkowa]); FILTER(Ceny; Ceny[Data]= Sprzeda(cid:285) [Data] Ceny[Produkt]= Sprzeda(cid:285) [Produkt] ) ) Funkcje dzia(cid:239)aj(cid:200) niezawodnie: Rysunek 3.16. Kup książkęPoleć książkę Krzy(cid:285)owe przeszukiwanie tabel: funkcja LOOKUPVALUE() i inne techniki 111 UWAGA Jako pierwszego argumentu funkcji CALCULATE() nie musisz u(cid:276)ywa(cid:232) funkcji AVERAGE(). Mo(cid:276)esz zastosowa(cid:232) MIN(), MAX(), SUM() lub dowoln(cid:241) inn(cid:241) funkcj(cid:246) agreguj(cid:241)c(cid:241). W przypadkach „wielodopasowa(cid:254)” Twój wybór funkcji agreguj(cid:241)cej oczywi(cid:264)cie ma bardzo istotne znaczenie. Teraz przyjrzyjmy si(cid:218) kilku podobnym, ale bardziej z(cid:239)o(cid:285)onym przypadkom, które spotyka si(cid:218) od czasu do czasu. Przeszukiwanie danych na podstawie daty pocz(cid:200)tkowej i ko(cid:241)cowej Tematem niniejszego rozdzia(cid:239)u s(cid:200) najcz(cid:218)stsze wyzwania, a opisany ni(cid:285)ej problem ca(cid:239)kowicie si(cid:218) do nich kwalifikuje. Poni(cid:285)ej przedstawiona jest tabela zawieraj(cid:200)ca mnóstwo danych: Rysunek 3.17. Oprócz tego jest jeszcze innego rodzaju tabela z cenami. Tabela Ceny2 nie podaje cen z ka(cid:285)dego dnia osobno, ale zawiera kolumny Pocz(cid:200)tek i Koniec okre(cid:258)laj(cid:200)ce przedzia(cid:239)y czasu, w których obowi(cid:200)zywa(cid:239)a podana cena: Rysunek 3.18. Aby w tabeli Planowanie umie(cid:258)ci(cid:202) obowi(cid:200)zuj(cid:200)c(cid:200) w danym dniu cen(cid:218), u(cid:285)yj nast(cid:218)puj(cid:200)cej formu(cid:239)y: =CALCULATE(MAX(Ceny2[Cena]); FILTER(Ceny2; Ceny2[Pocz(cid:200)tek] = Planowanie[Data] Ceny2[Koniec] = Planowanie[Data] ) ) Kup książkęPoleć książkę 112 Rozdzia(cid:239) 3. Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kolumnami obliczeniowymi Wynik wygl(cid:200)da tak: Rysunek 3.19. Zmiana ceny 7 lutego jest poprawna. Zadanie wykonane. Przeszukiwanie tylko na podstawie daty pocz(cid:200)tkowej Za(cid:239)ó(cid:285)my teraz, (cid:285)e mamy ten sam problem, ale tym razem tabela nie zawiera kolumny Koniec, jedynie kolumn(cid:218) Pocz(cid:200)tek. Przyjmijmy, (cid:285)e mamy tabel(cid:218) Ceny3, która jest w rzeczywisto(cid:258)ci tabel(cid:200) Ceny2 z usuni(cid:218)t(cid:200) kolumn(cid:200) Koniec: Rysunek 3.20. I co teraz? W zasadzie musisz znale(cid:283)(cid:202) w tej tabeli „ostatni” wiersz, zawieraj(cid:200)cy dat(cid:218) wcze(cid:258)niejsz(cid:200) lub tak(cid:200) sam(cid:200) jak bie(cid:285)(cid:200)ca. Jest to do(cid:258)(cid:202) trudne. Jeden ze sposobów polega na odtworzeniu w tabeli Ceny3 kolumny obliczeniowej Koniec, jak poni(cid:285)ej: =CALCULATE(MIN([Pocz(cid:200)tek]); FILTER(Ceny3; [Pocz(cid:200)tek] EARLIER([Pocz(cid:200)tek]) ) )-1 Wynik jest nast(cid:218)puj(cid:200)cy: Rysunek 3.21. Kup książkęPoleć książkę Krzy(cid:285)owe przeszukiwanie tabel: funkcja LOOKUPVALUE() i inne techniki 113 Teraz, wyposa(cid:285)ony z powrotem w kolumn(cid:218) Koniec, mo(cid:285)esz zastosowa(cid:202) technik(cid:218) opisan(cid:200) w poprzedniej cz(cid:218)(cid:258)ci niniejszego rozdzia(cid:239)u. Jednak gwoli uzupe(cid:239)nienia poni(cid:285)ej przedstawiamy rozwi(cid:200)zanie problemu niewymagaj(cid:200)ce odtwarzania kolumny Koniec. W tabeli Planowanie utwórz nast(cid:218)puj(cid:200)c(cid:200) kolumn(cid:218) obliczeniow(cid:200): =CALCULATE(MAX(Ceny3[Cena]); TOPN(1; FILTER(Ceny3; Ceny3[Pocz(cid:200)tek] = Planowanie[Data] ); Ceny3[Pocz(cid:200)tek] ) ) Powy(cid:285)sza kolumna obliczeniowa w ogóle nie odwo(cid:239)uje si(cid:218) do kolumny Koniec! Funkcja FILTER() odrzuca wszystkie wiersze z tabeli Ceny3 zawieraj(cid:200)ce daty pó(cid:283)niejsze ni(cid:285) bie(cid:285)(cid:200)ca data Planowanie[Data], po czym funkcja TOPN() pobiera ostatni ze zwróconych wierszy! I oczywi(cid:258)cie zwraca taki sam wynik jak w poprzednim przyk(cid:239)adzie: Rysunek 3.22. UWAGA U(cid:276)ycie funkcji FILTER() wewn(cid:241)trz TOPN() mo(cid:276)e przyprawi(cid:232) Ci(cid:246) o ból g(cid:228)owy, co nam te(cid:276) si(cid:246) zdarzy(cid:228)o! „Normalnie” stosujemy funkcj(cid:246) FILTER() bezpo(cid:264)rednio w argumencie funkcji CALCULATE(), ale tutaj u(cid:276)ywamy jej w przypadku, gdy funkcja TOPN() wymaga podania tabeli. Jest to sytuacja, w której mo(cid:276)esz przekona(cid:232) si(cid:246) o istnieniu dwóch ró(cid:276)nych, ale powi(cid:241)zanych ze sob(cid:241) zastosowa(cid:254) funkcji takich jak FILTER() (czy te(cid:276) TOPN() i DATESYTD()) w formu(cid:228)ach DAX. Ich przeznaczeniem jest filtrowanie danych (gdy zostan(cid:241) u(cid:276)yte bezpo(cid:264)rednio w argumencie funkcji CALCULATE()) lub zwrócenie tabeli (je(cid:276)eli zostan(cid:241) u(cid:276)yte jako argument tablicowy innej funkcji). Gdy ju(cid:276) sobie to u(cid:264)wiadomisz, zalecamy Ci opanowanie chichotu (czy te(cid:276) maniakalnego (cid:264)miechu). Jest to moment, w którym poczujesz niemal nieograniczon(cid:241) si(cid:228)(cid:246), i to nie tylko w kwestii kolumn obliczeniowych. W praktyce funkcje te okazuj(cid:241) si(cid:246) jeszcze bardziej przydatne w polach obliczeniowych! Poczujesz moment, w którym to sobie u(cid:264)wiadomisz, uwierz nam. Nie da si(cid:246) go nie zauwa(cid:276)y(cid:232). Wszyscy w biurze odwróc(cid:241) si(cid:246) i zaczn(cid:241) dziwnie Ci si(cid:246) przygl(cid:241)da(cid:232), ale Tobie b(cid:246)dzie wszystko jedno. W zasadzie, je(cid:285)eli chcesz kojarzy(cid:202) warto(cid:258)ci z ró(cid:285)nych tabel, najlepiej jest zacz(cid:200)(cid:202) od funkcji LOOKUPVALUE() (przy za(cid:239)o(cid:285)eniu, (cid:285)e u(cid:285)ycie funkcji RELATED() nie jest mo(cid:285)liwe ani praktyczne). Je(cid:285)eli to si(cid:218) nie uda, zajmij si(cid:218) funkcjami CALCULATE() i FILTER() czy nawet takimi kombinacjami jak CALCULATE(..., TOPN(..., FILTER(...))). Kup książkęPoleć książkę 114 Rozdzia(cid:239) 3. Najcz(cid:218)stsze wyzwania zwi(cid:200)zane z kolumnami obliczeniowymi UWAGA Jest to temat, w którym „ruchomy obraz” jest wart wi(cid:246)cej ni(cid:276) tysi(cid:241)c obrazów albo milion s(cid:228)ów. Chcemy unikn(cid:241)(cid:232) wypisywania w tym miejscu miliona s(cid:228)ów, wi(cid:246)c id(cid:274)my dalej. Je(cid:276)eli potrzebujesz obszerniejszych informacji na ten temat, we(cid:274) udzia(cid:228) w szkoleniu PowerPivotPro University, na którym znajdziesz ten i wiele innych tematów ilustrowanych i wyja(cid:264)nionych za pomoc(cid:241) animowanych prezentacji. Su
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Power Pivot dla Excela. Zaawansowane możliwości
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: