<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>grupowanie &#8211; SkuteczneRaporty.pl</title>
	<atom:link href="https://skuteczneraporty.pl/tag/grupowanie/feed/" rel="self" type="application/rss+xml" />
	<link>https://skuteczneraporty.pl</link>
	<description>Zautomatyzuj raportowanie w swojej firmie. Praktyczna wiedza dla analityków, kontrolerów i menedżerów.</description>
	<lastBuildDate>Thu, 27 Nov 2025 14:36:30 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://skuteczneraporty.pl/wp-content/uploads/2025/09/cropped-skuteczneraporty-FAVICONA-1-32x32.png</url>
	<title>grupowanie &#8211; SkuteczneRaporty.pl</title>
	<link>https://skuteczneraporty.pl</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Jak wykonać mnożenie macierzy w Power Query?</title>
		<link>https://skuteczneraporty.pl/jak-wykonac-mnozenie-macierzy-w-power-query/</link>
					<comments>https://skuteczneraporty.pl/jak-wykonac-mnozenie-macierzy-w-power-query/#respond</comments>
		
		<dc:creator><![CDATA[Bartosz Czapiewski]]></dc:creator>
		<pubDate>Tue, 14 May 2019 15:05:29 +0000</pubDate>
				<category><![CDATA[Power Query]]></category>
		<category><![CDATA[edytor zaawansowany]]></category>
		<category><![CDATA[edytor zapytań]]></category>
		<category><![CDATA[funkcje Power Query]]></category>
		<category><![CDATA[grupowanie]]></category>
		<category><![CDATA[język M]]></category>
		<category><![CDATA[kolumna indeksu]]></category>
		<category><![CDATA[kolumna niestandardowa]]></category>
		<category><![CDATA[kolumna przestawna]]></category>
		<category><![CDATA[parametr Power Query]]></category>
		<category><![CDATA[zapytanie Power Query]]></category>
		<guid isPermaLink="false">https://excelbi.pl/?p=9354</guid>

					<description><![CDATA[Macierz… Brzmi jak powrót do czasów liceum i przywołuje w pamięci naukę do matury. W artykule jednak (pomimo że to maj 2019) będzie dużo praktyczniej o macierzach oraz ich zastosowaniach, a także dlaczego warto przenieść się z mnożeniem macierzy do Power Query zamiast pozostać w Excelu. Oraz najważniejsze: jak wymnożyć macierze w Power Query. Jednak [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Macierz… Brzmi jak powrót do czasów liceum i przywołuje w pamięci naukę do matury. W artykule jednak (pomimo że to maj 2019) będzie dużo praktyczniej o macierzach oraz ich zastosowaniach, a także dlaczego warto przenieść się z mnożeniem macierzy do Power Query zamiast pozostać w Excelu. Oraz najważniejsze: jak wymnożyć macierze w Power Query.<span id="more-9354"></span></p>
<h1>Jednak najpierw odrobina teorii … o macierzach</h1>
<p>Macierz to prostokątna tablica zawierająca liczby, symbole i wyrażenia, które ułożone są w wiersze oraz kolumny. Służą do zapisywania dużych zbiorów danych, które są we wzajemnej relacji. Szczególnie ważną rolę pełnią macierze w informatyce oraz statystyce, gdzie często występują ogromne zbiory danych.</p>
<h1>Gdzie można wykorzystać macierze?</h1>
<p>Są wykorzystywane do rozwiązywania skomplikowanych układów równań liniowych. Bardzo ciekawym jest wykorzystanie do modelowania ekranu komputera, który składa się z pikseli ułożonych w wiersze oraz kolumny.</p>
<p>Macierze wykorzystuje oprogramowanie graficzne takie jak Adobe Photoshop, do przetwarzania transformacji linowych w celu renderowania obrazów.</p>
<p>W fizyce macierze znajdują zastosowanie w badaniach obwodów elektrycznych, mechanice kwantowej i optyce. Macierze wykorzystywane są do dokonywania dokładanych obliczeń pogrzebnych w pracy mechaniki kwantowej.</p>
<p>Macierze wykorzystywane są również do kodowania i szyfrowania wiadomości.</p>
<p>W robotyce i automatyce macierze tworzą podstawowe ruchy robota.</p>
<p>Macierze to również struktury do przechowywania danych śledzenia informacji o użytkownikach, służą do kompresji informacji elektronicznych, czy przechowywania danych biometrycznych, ale także informacji o populacji.</p>
<p>Transformacje macierzy, które dają doskonale skalibrowane obliczenia, wykorzystuje się w sieciach elektronicznych, samolotach, statkach kosmicznych oraz inżynierii chemicznej.</p>
<p>Dla mnie osobiście najbardziej interesującym zastosowaniem macierzy są wyszukiwarki internetowe np. Google. W tym konkretnym przypadku zastosowany jest algorytm PageRank (PR), który wykorzystuje macierze oraz ich wartości i wektory własne. Wyszukiwarka przyporządkowuje stronom internetowym pewien wskaźnik, którego początkiem był PageRank. Im jest o wyższy tym strona wyżej pojawia się w wyszukiwarce. Wartość PR powstaje w oparciu o jakość i ilość linków prowadzących do danej strony www.</p>
<p>Oczywiście nie są to wszystkie zastosowania, ponieważ macierze dotykają wielu dziedzin, a wymienione tu to tylko przykłady.</p>
<h1>Na czym polega mnożenie macierzy?</h1>
<p>Na mnożeniu wierszy pierwszej macierzy przez kolumny drugiej macierzy. By wymnożyć macierze musi być spełniony warunek : pierwsza macierz ma tyle kolumn ile druga wierszy.</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter wp-image-9355 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query1.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 19" width="765" height="218"></p>
<h1><strong>Dlaczego mno</strong><strong>żenie macierzy w Power Query?</strong></h1>
<p>W Excelu do mnożenia macierzy można wykorzystać wbudowaną funkcję MACIERZ.ILOCZYN, czyli podać zakresy dwóch tablic, które między siebie miałyby być wymnożone. Niestety jeżeli zmienią się wymiary tablic, wówczas formułę należy zaktualizować oraz ponownie przeliczyć przy pomocy Ctrl + Shift + Enter (ponieważ jest to formuła tablicowa).</p>
<p>Jednak operowanie na Power Query pozwala zapomnieć o konieczności aktualizacji działania procedury, gdy zmieni się zakres poszczególnych macierzy.</p>
<h1>Mnożenie macierzy w Power Query</h1>
<p>Potrzebuję dwóch macierzy A i B jako zdefiniowane zakresy w Excel. Zacznę od pobrania i modyfikacji pierwszej macierzy do Power Query: <em>Dane &gt; Pobieranie i przekszta</em><em>łcanie &gt; Z tabeli</em></p>
<p><img decoding="async" class="aligncenter wp-image-9356 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query2.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 20" width="620" height="150"></p>
<p>Kolejne transformacje tabeli doprowadzą ją do postaci trzykolumnowej: <em>wiersz, kolumna oraz warto</em><em>ść.</em></p>
<p>Wybieram <em>Dodaj kolumn</em><em>ę &gt; Dodaj kolumn</em><em>ę indeksu &gt; od 1. </em></p>
<p><img decoding="async" class="aligncenter wp-image-9357 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query3.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 21" width="614" height="232"></p>
<p>Zostanie dodana nowa kolumna z numerem wiersza. Wybieram ją i prawym przyciskiem myszy rozwijam menu podręczne z którego wybieram <em>Anuluj przestawienie innych kolumn.</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9358 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query4.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 22" width="615" height="294"></p>
<p>Operacja ta powoduje przekształcenie macierzy w wyglądu zbliżony do oczekiwanego. Należ jeszcze oczyścić kolumnę <em>Atrybut</em> do form liczbowej.</p>
<p>Kolejne kroki do wykonania to :</p>
<ol>
<li>Zamiana w drugiej kolumnie słowa <em>ColumnX </em>na <em>X </em>: <em>PP myszy &gt;</em> <em>zamie</em><em>ń warto</em><em>ści &gt; </em>w polu <em>Warto</em><em>ść do znalezienia</em> wpisuję <em>Column, Zamie</em><em>ń na </em>pozostawiam puste<img loading="lazy" decoding="async" class="aligncenter wp-image-9359 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query5.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 23" width="615" height="271"></li>
<li>Po powyższej operacji kolumna ma format tekstowy, więc zmieniam go na liczbowy : <em>PP myszy &gt; Zmie</em><em>ń typ &gt; Liczba ca</em><em>łkowita <img loading="lazy" decoding="async" class="aligncenter wp-image-9360 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query6.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 24" width="615" height="212"></em></li>
<li>Zmieniam nazw dwóch pierwszych kolumn na<em>: Wiersz, Kolumna</em> co też kończy całą operację zmian na tej tablicy.</li>
</ol>
<h2>Tworzenie funkcji</h2>
<p>Na początku zmieniam nazwę zapytania na <em>PrzygotowanieMacierzy. </em>Następnie zmieniam ciąg wykonanych operacji na funkcję. Wchodzę do <em>Edytora zaawansowanego </em>i dodaję w pierwszej linii wyrażenie <em>(TableName) =&gt;</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9361 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query7.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 25" width="157" height="47"></p>
<p>Usuwam cały wiersz „<em>Zmieniono typ</em><em>”</em> , który jest zbędny (pozostawienie go spowoduje, że funkcja nie będzie uniwersalna, ponieważ zawiera odwołania do nazw poszczególnych kolumn). W kolejnym wierszu <em>#</em><em>”Zmieniono typ</em><em>” </em>zmieniam na <em>#</em><em>”Źr</em><em>ód</em><em>ło</em>”(ponieważ wcześniej usunąłem krok <em>Zmieniono ty</em>p)<em>.</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9362 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query8.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 26" width="612" height="298"></p>
<p>W miejscu deklaracji źródła danych (<em>Excel.CurrentWorkbook</em>) zmieniam nazwę „MacierzA” na <em>TableName &gt; Gotowe. </em>Poniżej widok finalnego polecenia.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9363 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query9.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 27" width="607" height="304"></p>
<p>Dzięki wykonanym zmianom po prawej stronie, w oknie nawigatora jest widoczna funkcja. Po wybraniu jej z listy pojawia się okno do wprowadzenia parametru dla funkcji (wcześniej wprowadzonego <em>TableName)</em>. Wprowadzam nazwę zakresu, który ma być przekształcony w wyniku działania funkcji : <em>MacierzA &gt; Wywo</em><em>łaj.</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9364 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query10.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 28" width="505" height="219"></p>
<p>Dzięki funkcji powstaje nowe zapytanie, zmieniam jego nazwę na <em>MacierzA. </em>Takie same kroki wykonuję dla drugiej macierzy, zmieniam nazwę zapytania na <em>MacierzB. </em></p>
<h2>Tworzenie tabeli połączonej</h2>
<p>W następnej kolejności utworzę tabelę połączoną gdzie dla kolejnych kolumn Macierzy A dopasuję wiersze z Macierzy B. Zaznaczam na liście zapytań <em>MacierzA &gt; Narz</em><em>ędzia g</em><em>łówne &gt;Po</em><em>łącz &gt; Scal zapytania &gt; Scal zapytania jako nowe.  </em>Z <em>Macierzy A </em>zaznaczam <em>Kolumn</em><em>ę </em>zaś z <em>MacierzyB </em>zaznaczam <em>Wiersz. </em>Jako rodzaj połączenia tabel wybieram <em>Lewe zewn</em><em>ętrze &gt; OK.</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9365 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query11.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 29" width="640" height="499"></p>
<p>W wyniku operacji pojawia się nowa kolumna, której nazwę zmieniam na <em>B</em>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9366 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query12.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 30" width="500" height="197"></p>
<p>Klikam a podwójną strzałkę w kolumnie B i z listy wyboru oznaczam <em>Wiersz, </em> pozostawiam zaznaczoną opcję <em>U</em><em>żyj oryginalnej nazwy kolumny jako prefiksu (co pozwoli mi p</em><em>óźniej odnale</em><em>źć si</em><em>ę  w danych).</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9367 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query13.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 31" width="487" height="288"></p>
<p>Powstaje tablica zawierająca wszystkie kombinacje <em>Macierzy A</em> oraz <em>B</em>, które niezbędne są do wymnożenie między siebie macierzy. Znajdują się one w kolumnie <em>Warto</em><em>ść</em> oraz <em>B.Warto</em><em>ść. </em>By wymnożyć macierze musimy wymnożyć między siebie kolumny <em>Warto</em><em>ść</em> oraz <em>B.Warto</em><em>ść. </em> W tym celu stawiam nową kolumnę <em>Dodaj kolumn</em><em>ę &gt; Kolumna niestandardowa. </em></p>
<p>Nazywam ją <em>AB </em>oraz wprowadzam formułę wymnożenia kolumn między siebie.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9368 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query14.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 32" width="601" height="343"></p>
<p>Wynikiem mnożenia macierzy jest macierz o ilości wiersz z Macierz A oraz ilości kolumn z Macierzy B. Zaznaczam kolumnę Wiersz oraz B.Kolumna <em>Przekszta</em><em>łć &gt; Grupowanie wed</em><em>ług</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9369 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query15.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 33" width="604" height="402"></p>
<p>W okna wprowadzam wybory jak powyżej, grupuję dane według numery wierszy oraz kolumn, w nowej kolumnie. Cała operacja powoduje ogromne zmniejszenie się wielkości tabeli.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9370 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query16.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 34" width="352" height="291"></p>
<p>Dane nie są jednak jeszcze w ostatecznej, oczekiwanej formie. Zaznaczam kolumnę B.Kolumna <em>Przekszta</em><em>łć &gt; Dowolna kolumna &gt; Kolumna przestawna</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9371 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query17.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 35" width="622" height="225"></p>
<p>Wskazuję która kolumna jest kolumną z wartościami oraz jaka operacja ma być wykonana na danych,  tym przypadku <em>Suma.</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9372 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query18.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 36" width="602" height="256"></p>
<p>Na koniec powstaje mała macierz o spodziewanych rozmiarach.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-9373 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query19.jpg" alt="Jak wykonać mnożenie macierzy w Power Query? 37" width="381" height="127"></p>
<h1>Pobierz plik</h1>
<p>Jeżeli chcesz sam przejść wszystkie kroki samodzielnie, pobierz plik <a href="https://skuteczneraporty.pl/wp-content/uploads/2019/05/Mno%C5%BCenie-macierzy-w-Power-Query.xlsx">Mnożenie macierzy w Power Query</a>.</p>
<h1>Źródło pomysłu na artykuł</h1>
<p>Autor pomysłu: Bill Szysz</p>
<p>https://datachant.com/2016/06/07/faster-matrix-mulitplication/</p>
]]></content:encoded>
					
					<wfw:commentRss>https://skuteczneraporty.pl/jak-wykonac-mnozenie-macierzy-w-power-query/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>#18 Data Visualization &#038; BI Meetup &#8211; podsumowanie i materiały po spotkaniu</title>
		<link>https://skuteczneraporty.pl/18-data-visualization-bi-meetup-podsumowanie-i-materialy-po-spotkaniu/</link>
					<comments>https://skuteczneraporty.pl/18-data-visualization-bi-meetup-podsumowanie-i-materialy-po-spotkaniu/#respond</comments>
		
		<dc:creator><![CDATA[Bartosz Czapiewski]]></dc:creator>
		<pubDate>Thu, 21 Dec 2017 07:06:30 +0000</pubDate>
				<category><![CDATA[Data Visualization & BI Meetup]]></category>
		<category><![CDATA[automatyzacja raportowania]]></category>
		<category><![CDATA[edytor zapytań]]></category>
		<category><![CDATA[grupowanie]]></category>
		<category><![CDATA[Power BI]]></category>
		<category><![CDATA[Power BI Desktop]]></category>
		<category><![CDATA[Power Query]]></category>
		<category><![CDATA[scalanie plików Excel]]></category>
		<category><![CDATA[scalanie zapytań]]></category>
		<category><![CDATA[transformacja danych]]></category>
		<category><![CDATA[Unpivot]]></category>
		<guid isPermaLink="false">http://excelbi.pl/?p=2875</guid>

					<description><![CDATA[12 grudnia 2017 r. prowadziłem w Warszawie #18 spotkanie entuzjastów analizy i wizualizacji danych w ramach grupy Data Visualization &#38; BI Meetup. Tematem spotkania była automatyzacja procesu przygotowania danych w Power Query &#8211; edytorze zapytań, który znaleźć można zarówno w programie Excel, jak i w Power BI. Tytuł spotkania brzmiał: &#8222;3 transformacje w Power Query &#38; [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>12 grudnia 2017 r. prowadziłem w Warszawie #18 spotkanie entuzjastów analizy i wizualizacji danych w ramach grupy <a href="https://www.meetup.com/Data-Visualization-and-BI/" target="_blank" rel="noopener">Data Visualization &amp; BI Meetup</a>. Tematem spotkania była automatyzacja procesu przygotowania danych w Power Query &#8211; edytorze zapytań, który znaleźć można zarówno w programie Excel, jak i w Power BI. Tytuł spotkania brzmiał: &#8222;3 transformacje w Power Query &amp; Power BI&#8221;. W poniższym wpisie znajdziesz krótkie podsumowanie oraz materiały do pobrania.<span id="more-69042"></span></p>
<h1>Transformacja 1: Unpivot</h1>
<p>Operacja Unpivot, przetłumaczona w polskim interfejsie jako Anuluj przestawienie kolumn (?!), pozwala &#8222;odkręcić&#8221; dane, pozostawione w układzie przestawnym. Omawiane w czasie spotkania scenariusze obejmowały zarówno jednopoziomowy, jak i wielopoziomowy unpivot.</p>
<h2>Unpivot prosty</h2>
<p>PRZED</p>
<p><a class="dt-pswp-item" href="https://skuteczneraporty.pl/wp-content/uploads/2017/12/unpivot-power-query-power-bi-1.png" data-dt-img-description="" data-large_image_width="1248" data-large_image_height="529"><img loading="lazy" decoding="async" class="wp-image-2877 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/12/unpivot-power-query-power-bi-1.png" alt="#18 Data Visualization &amp; BI Meetup - podsumowanie i materiały po spotkaniu 47" width="748" height="317"></a></p>
<p>PO</p>
<p><img loading="lazy" decoding="async" class=" wp-image-2878 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/12/unpivot-power-query-power-bi-2.png" alt="#18 Data Visualization &amp; BI Meetup - podsumowanie i materiały po spotkaniu 48" width="537" height="353"></p>
<h2>Unpivot złożony</h2>
<p>PRZED</p>
<p><img loading="lazy" decoding="async" class="wp-image-2879 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/12/unpivot-power-query-power-bi-3.png" alt="#18 Data Visualization &amp; BI Meetup - podsumowanie i materiały po spotkaniu 49" width="752" height="382"></p>
<p>PO</p>
<p><img loading="lazy" decoding="async" class="wp-image-2876 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/12/unpivot-power-query-power-bi-4.png" alt="#18 Data Visualization &amp; BI Meetup - podsumowanie i materiały po spotkaniu 50" width="724" height="393"></p>
<h1>Transformacja 2: Grupowanie</h1>
<p>Grupowanie może być wykorzystywane w wielu celach, m.in.:</p>
<ul>
<li>sprawdzenie słowników danych lub podsumowań</li>
<li>wstępna agregacja danych, zmniejszającą ich ilość</li>
<li>dalsze wykorzystanie danych zgrupowanych (np. jako filtr)</li>
</ul>
<p>PRZED</p>
<p><img loading="lazy" decoding="async" class="wp-image-2880 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-1.png" alt="#18 Data Visualization &amp; BI Meetup - podsumowanie i materiały po spotkaniu 51" width="657" height="348" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-1.png 778w, https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-1-300x159.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-1-768x407.png 768w" sizes="(max-width: 657px) 100vw, 657px" /></p>
<p>PO</p>
<p><img loading="lazy" decoding="async" class="wp-image-2881 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-2.png" alt="#18 Data Visualization &amp; BI Meetup - podsumowanie i materiały po spotkaniu 52" width="359" height="170" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-2.png 395w, https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-2-300x142.png 300w" sizes="(max-width: 359px) 100vw, 359px" /></p>
<p><a class="dt-pswp-item" href="https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-3.png" data-dt-img-description="" data-large_image_width="1345" data-large_image_height="321"><img loading="lazy" decoding="async" class="wp-image-2882 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-3.png" alt="#18 Data Visualization &amp; BI Meetup - podsumowanie i materiały po spotkaniu 53" width="749" height="179" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-3.png 1345w, https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-3-300x72.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-3-1024x244.png 1024w, https://skuteczneraporty.pl/wp-content/uploads/2017/12/grupowanie-power-query-power-bi-edytor-zapytan-3-768x183.png 768w" sizes="(max-width: 749px) 100vw, 749px" /></a></p>
<h1>Transformacja 3: Scalanie</h1>
<p>Scalanie jest kluczową operacją w Power Query, gdyż potrafi zastąpić WYSZUKAJ.PIONOWO, dając znaczenie więcej możliwości. Operacja ta jest odpowiednikiem operacji JOIN w języku SQL. Na spotkaniu przeszliśmy przez 6 typów scalania.</p>
<p><img loading="lazy" decoding="async" class="wp-image-2883 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/12/typy-scalania.png" alt="#18 Data Visualization &amp; BI Meetup - podsumowanie i materiały po spotkaniu 54" width="564" height="540" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/12/typy-scalania.png 673w, https://skuteczneraporty.pl/wp-content/uploads/2017/12/typy-scalania-300x287.png 300w" sizes="(max-width: 564px) 100vw, 564px" /></p>
<h1>Bonus</h1>
<p>Przygotowałem też zadanie bonusowe pokazujące, że w Power Query można procesować dane różnymi ścieżkami, a później łączyć je w jeden zbiór. Przykład bonusowy polegał na oddzielnym procesowaniu danych, które generowały błędy.</p>
<h1><img loading="lazy" decoding="async" class="wp-image-2884 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/12/power-query-power-bi-edytor-zapytan-procesowanie-blednych-danych.png" alt="#18 Data Visualization &amp; BI Meetup - podsumowanie i materiały po spotkaniu 55" width="724" height="633" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/12/power-query-power-bi-edytor-zapytan-procesowanie-blednych-danych.png 999w, https://skuteczneraporty.pl/wp-content/uploads/2017/12/power-query-power-bi-edytor-zapytan-procesowanie-blednych-danych-300x262.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2017/12/power-query-power-bi-edytor-zapytan-procesowanie-blednych-danych-768x672.png 768w" sizes="(max-width: 724px) 100vw, 724px" />Materiały do pobrania</h1>
<p>Wszystkie przykłady omówione na spotkaniu oraz towarzyszące im dane źródłowe możesz pobrać tutaj: <a href="https://skuteczneraporty.pl/wp-content/uploads/2017/12/18-Data-Visualization-BI-Meetup.zip">Materiały po #18 Meetup</a>.</p>
<p>W przykładach podmień ścieżkę plików źródłowych.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://skuteczneraporty.pl/18-data-visualization-bi-meetup-podsumowanie-i-materialy-po-spotkaniu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>3 transformacje w Power Query &#038; Power BI &#8211; #18 Data Visualization &#038; BI Meetup</title>
		<link>https://skuteczneraporty.pl/3-transformacje-w-power-query-power-bi-18-data-visualization-bi-meetup/</link>
					<comments>https://skuteczneraporty.pl/3-transformacje-w-power-query-power-bi-18-data-visualization-bi-meetup/#respond</comments>
		
		<dc:creator><![CDATA[Bartosz Czapiewski]]></dc:creator>
		<pubDate>Wed, 06 Dec 2017 23:09:41 +0000</pubDate>
				<category><![CDATA[Data Visualization & BI Meetup]]></category>
		<category><![CDATA[grupowanie]]></category>
		<category><![CDATA[Power BI]]></category>
		<category><![CDATA[Power BI Desktop]]></category>
		<category><![CDATA[Power Query]]></category>
		<category><![CDATA[scal]]></category>
		<category><![CDATA[scalanie]]></category>
		<category><![CDATA[scalanie plików Excel]]></category>
		<category><![CDATA[Unpivot]]></category>
		<guid isPermaLink="false">http://excelbi.pl/?p=2652</guid>

					<description><![CDATA[12 grudnia 2017 o 18:00 odbędzie się #18 spotkanie Data Visualization &#38; BI Meetup. Będzie ono poświęcone najważniejszym transformacjom danych w edytorze zapytań Power Query, który znajduje się zarówno w programie Excel, jak i w Power BI. Są to operacje niezbędne do zautomatyzowanego przygotowania danych do raportu, które powinien znać każdy analityk, pracujący w Excelu [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>12 grudnia 2017 o 18:00 odbędzie się #18 spotkanie Data Visualization &amp; BI Meetup. Będzie ono poświęcone<b> najważniejszym transformacjom danych w edytorze zapytań Power Query</b>, który znajduje się zarówno w programie Excel, jak i w Power BI. Są to operacje niezbędne do zautomatyzowanego przygotowania danych do raportu, które powinien znać każdy analityk, pracujący w Excelu lub Power BI.</p>
<h1><span id="more-69041"></span>Co to jest Data Visualization &amp; BI Meetup?</h1>
<p>To bezpłatne i otwarte spotkania organizowane przeze mnie dla osób zainteresowanych analizą i wizualizacją danych w różnych narzędziach BI. Aktualnie koncentrujemy się na nowych możliwościach Excela oraz aplikacji <a href="https://skuteczneraporty.pl/raporty-power-bi/">Power BI</a>.</p>
<h1>Co będzie prezentowane na spotkaniu?</h1>
<p>W programie spotkania:</p>
<ol>
<li>Unpivot &#8211; prosty i zaawansowany</li>
<li>Grupowanie proste i zaawansowane</li>
<li>Scalanie na kilka różnych sposobów</li>
</ol>
<h1>Gdzie odbędzie się spotkanie?</h1>
<p>W Warszawie, w siedzibie SGH: sala A117 w budynku A (1. piętro)</p>
<h1>Jak mogę się zapisać?</h1>
<p>Dołącz do grupy na stronie spotkania: <a href="https://www.meetup.com/Data-Visualization-and-BI/events/245691476/" target="_blank" rel="noopener">https://www.meetup.com/Data-Visualization-and-BI/events/245691476/</a></p>
<h1>Kto organizuje spotkanie?</h1>
<p>Organizatorami spotkania są SkuteczneRaporty.pl i SKN Statystyki SGH.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://skuteczneraporty.pl/3-transformacje-w-power-query-power-bi-18-data-visualization-bi-meetup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Scal wiersze w kolumnie w Power Query</title>
		<link>https://skuteczneraporty.pl/scal-wiersze-w-kolumnie-w-power-query/</link>
					<comments>https://skuteczneraporty.pl/scal-wiersze-w-kolumnie-w-power-query/#respond</comments>
		
		<dc:creator><![CDATA[Bartosz Czapiewski]]></dc:creator>
		<pubDate>Fri, 24 Nov 2017 07:14:40 +0000</pubDate>
				<category><![CDATA[Power Query]]></category>
		<category><![CDATA[edytor zapytań]]></category>
		<category><![CDATA[funkcje Power Query]]></category>
		<category><![CDATA[grupowanie]]></category>
		<category><![CDATA[kolumna niestandardowa]]></category>
		<category><![CDATA[lista w Power Query]]></category>
		<category><![CDATA[tabela w Power Query]]></category>
		<category><![CDATA[tips & trick]]></category>
		<guid isPermaLink="false">http://excelbi.pl/?p=2300</guid>

					<description><![CDATA[W niedawnym artykule pokazałem jak podzielić kolumny na wiersze w dodatku Excel Power Query (nazywanego w Excelu 2016 Pobieranie i przekształcanie). Czasami potrzebujemy jednak wykonać operację przeciwną do tej, tzn. mając dane w różnych wierszach chcielibyśmy uzyskać łączenie tekstowe. Operacja ta przypomina trochę opcję Grupowanie według, ale po tekście. Jak ją wykonać w Power Query? [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>W niedawnym artykule pokazałem <a href="https://skuteczneraporty.pl/podziel-kolumny-jako-wiersze-w-power-query/">jak podzielić kolumny na wiersze w dodatku Excel Power Query</a> (nazywanego w Excelu 2016 Pobieranie i przekształcanie). Czasami potrzebujemy jednak wykonać operację przeciwną do tej, tzn. mając dane w różnych wierszach chcielibyśmy uzyskać łączenie tekstowe. Operacja ta przypomina trochę opcję Grupowanie według, ale po tekście. Jak ją wykonać w Power Query? Artykuł dla zaawansowanych.<span id="more-2300"></span></p>
<h1>Dane do zapytania Power Query</h1>
<p>Zaczynamy od tabeli transakcji, która powstała na końcu artykułu o dzieleniu kolumn na wiersze.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2304 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-1.png" alt="Scal wiersze w kolumnie w Power Query 65" width="262" height="249"></p>
<h1>Krok 1: Utwórz zapytanie</h1>
<p>Tworzę tabelę (Ctrl + T) i ładuję ją jako zapytanie do edytora zapytań Power Query.</p>
<p><img loading="lazy" decoding="async" class=" wp-image-2305 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-2.png" alt="Scal wiersze w kolumnie w Power Query 66" width="747" height="340" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-2.png 1024w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-2-300x137.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-2-768x350.png 768w" sizes="(max-width: 747px) 100vw, 747px" /></p>
<h1>Krok 2: Grupowanie według</h1>
<p>Ponieważ szukanej przez nas operacji nie da się wykonać jednym kliknięciem, szukamy najprostszego sposobu do osiągnięcia celu. Zaczynamy od operacji Grupowanie według.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2306 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-3.png" alt="Scal wiersze w kolumnie w Power Query 67" width="321" height="296"></p>
<p>Otrzymamy obiekty typu Table.</p>
<h1>Krok 3: Odfiltruj kolumny tabeli</h1>
<p>Gdy wejdę do środka pojedynczej tabeli, mogę wykonać operację filtrowania kolumn, a następnie zastosować ją do wszystkich tabel, które były w kroku wcześniej.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2307 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-4.png" alt="Scal wiersze w kolumnie w Power Query 68" width="614" height="119" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-4.png 614w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-4-300x58.png 300w" sizes="(max-width: 614px) 100vw, 614px" /></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2308 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-5.png" alt="Scal wiersze w kolumnie w Power Query 69" width="684" height="288" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-5.png 684w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-5-300x126.png 300w" sizes="(max-width: 684px) 100vw, 684px" /></p>
<p>W moim przykładzie otrzymałem polecenie:</p>
<pre>= Table.SelectColumns(#"PL-2012-007335",{"Produkty"})</pre>
<p>Korzystam z tego polecenia, aby odfiltrować kolumny we wszystkich tabelach, a wykonuje się to, tworząc nową kolumnę niestandardową.</p>
<p><img loading="lazy" decoding="async" class="wp-image-2309 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-6.png" alt="Scal wiersze w kolumnie w Power Query 70" width="751" height="372" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-6.png 1148w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-6-300x149.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-6-1024x508.png 1024w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-6-768x381.png 768w" sizes="(max-width: 751px) 100vw, 751px" /></p>
<h1>Krok 4: Skonwertuj na listę</h1>
<p>Łączenie tekstowe w pionie to operacja zarezerwowana dla obiektów w postaci list. Zamieńmy więc tabelę na listę.</p>
<p><img loading="lazy" decoding="async" class="wp-image-2310 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-7.png" alt="Scal wiersze w kolumnie w Power Query 71" width="751" height="320" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-7.png 1079w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-7-300x128.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-7-1024x437.png 1024w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-7-768x327.png 768w" sizes="(max-width: 751px) 100vw, 751px" /></p>
<h1>Krok 5: Połącz teksty</h1>
<p>Do tego kroku zmierzaliśmy. Listy mają wbudowaną operację łączenia tekstów, którą ponownie można wydobyć nową kolumną niestandardową.</p>
<p><a class="dt-pswp-item" href="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-8.png" data-dt-img-description="" data-large_image_width="827" data-large_image_height="312"><img loading="lazy" decoding="async" class="size-full wp-image-2311 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-8.png" alt="Scal wiersze w kolumnie w Power Query 72" width="827" height="312" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-8.png 827w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-8-300x113.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-8-768x290.png 768w" sizes="(max-width: 827px) 100vw, 827px" /></a></p>
<h1>Krok 6: Zamknij i załaduj</h1>
<p>Zwracam dane w postaci tabeli do programu Excel.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2315 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-10.png" alt="Scal wiersze w kolumnie w Power Query 73" width="464" height="421" srcset="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-10.png 464w, https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumny-w-Excel-Power-Query-Edytor-zapytan-10-300x272.png 300w" sizes="(max-width: 464px) 100vw, 464px" /></p>
<p>Przykład ten nie jest może najłatwiejszy, ale pokazuje, że te rzeczy, których nie będziemy w stanie wyklikać, prawdopodobnie także można stworzyć w Power Query, studiując formuły języka M.</p>
<p>Jeśli znasz prostszy sposób na wykonanie tej operacji, podziel się w komentarzu.</p>
<h1>Pobierz plik Excel z zapytaniem w Power Query</h1>
<p><a href="https://skuteczneraporty.pl/wp-content/uploads/2017/11/Scal-wiersze-w-kolumne-w-Excel-Power-Query.xlsx">Tutaj możesz pobrać plik Excel</a> i zerknąć na całe zapytanie, a nawet skopiować je i wkleić do swojego pliku (zmieniając nazwy tabel i kolumn).</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://skuteczneraporty.pl/scal-wiersze-w-kolumnie-w-power-query/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Power Query (cz. 3) &#8211; Grupowanie danych</title>
		<link>https://skuteczneraporty.pl/power-query-cz-3-grupowanie-danych/</link>
					<comments>https://skuteczneraporty.pl/power-query-cz-3-grupowanie-danych/#respond</comments>
		
		<dc:creator><![CDATA[Bartosz Czapiewski]]></dc:creator>
		<pubDate>Thu, 12 Nov 2015 13:29:50 +0000</pubDate>
				<category><![CDATA[Power Query]]></category>
		<category><![CDATA[binarny]]></category>
		<category><![CDATA[dzielenie]]></category>
		<category><![CDATA[group on]]></category>
		<category><![CDATA[grupowanie]]></category>
		<category><![CDATA[kwerenda]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Typ danych]]></category>
		<category><![CDATA[zamień wartości]]></category>
		<category><![CDATA[zapytanie]]></category>
		<guid isPermaLink="false">http://powerview.pl/?p=1037</guid>

					<description><![CDATA[Kiedy już zaimportowaliśmy odpowiednie dane do Power Query i przy pomocy funkcji Scal oraz Dołącz otrzymaliśmy tabele zawierające potrzebne nam dane, możemy zacząć je przekształcać. Jednym z podstawowych działań pozwalających na uzyskanie nowej informacji jest grupowanie wierszy tabeli.]]></description>
										<content:encoded><![CDATA[<p><a href="https://skuteczneraporty.pl/power-query-cz-3-grupowanie-danych/"><img loading="lazy" decoding="async" class="alignleft wp-image-1035 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_1.png" alt="PQ3_1" width="127" height="88" /></a>Kiedy już zaimportowaliśmy odpowiednie dane do Power Query i <a href="https://skuteczneraporty.pl/powerquery-cz-2-scalanie-oraz-dolaczanie/">przy pomocy funkcji <em>Scal </em>oraz <em>Dołącz</em> otrzymaliśmy tabele</a> zawierające potrzebne nam dane, możemy zacząć je przekształcać. Jednym z podstawowych działań pozwalających na uzyskanie nowej informacji jest grupowanie wierszy tabeli. Dodatkowo możemy zmieniać dane np. poprzez dzielenie kolumny.</p>
<p><span id="more-1037"></span></p>
<h1>Grupowanie</h1>
<p>Należy nadmienić, iż w Excelu termin grupowanie nie jest niestety jednoznaczny. Oprócz obróbki danych, która jest przedmiotem tego artykułu, pod tą samą nazwą kryje się sposób zarządzania widocznością kolumn oraz wierszy. Mowa tutaj o opcjach dostępnych w obszarze <em>Konspekt:</em></p>
<p><img loading="lazy" decoding="async" class="wp-image-1005 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_2.png" alt="PQ3_2" width="750" height="184" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_2.png 835w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_2-300x74.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_2-768x189.png 768w" sizes="(max-width: 750px) 100vw, 750px" /></p>
<p>Te przyciski służą do nadawania kolumnom bądź wierszom struktury rozwijanego drzewa, nieco podobnej do tej jaką możemy przy odpowiednich ustawieniach uzyskać w tabeli przestawnej. Wystarczy zaznaczyć kilka wierszy bądź kolumn i nacisnąć <em>Grupuj</em>, aby pojawiły się przyciski pozwalające chować i rozwijać zaznaczony obszar. Warto zaznaczyć, iż można tworzyć „grupę w grupie”:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1006 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_3.gif" alt="PQ3_3" width="750" height="382" /></p>
<p>Nieco inna funkcjonalność pod tą samą nazwą kryje się w Power Query w zakładce <em>Narzędzia główne </em>w obszarze <em>Przekształć: </em></p>
<p><img loading="lazy" decoding="async" class="wp-image-1007 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_4.png" alt="PQ3_4" width="750" height="156" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_4.png 801w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_4-300x63.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_4-768x160.png 768w" sizes="(max-width: 750px) 100vw, 750px" /></p>
<p>Opcja <em>Grupowanie według</em> pełni funkcję analogiczną do komendy GROUP ON w języku SQL – pozwala na agregację wierszy poprzez wykonanie odpowiedniej operacji. W efekcie grupowania otrzymujemy mniejszą od pierwotnej tabelę zawierającą przetworzone dane, w wyniku czego możemy otrzymać nową informację.</p>
<p>Najłatwiej działanie grupowania wyjaśnić na przykładzie. Załóżmy, iż nasza firma zajmuje się sprzedażą dóbr, a my mamy dostęp do danych dotyczących każdej transakcji – między nimi do tego, który sprzedawca ją przeprowadził.</p>
<p><img loading="lazy" decoding="async" class="wp-image-1008 size-full aligncenter" style="margin-left: 1px; margin-right: 1px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_5.png" alt="PQ3_5" width="747" height="426" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_5.png 747w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_5-300x171.png 300w" sizes="(max-width: 747px) 100vw, 747px" /></p>
<p>Mając takie dane, możemy przeprowadzić grupowanie po sprzedawcy – ilość wierszy przypadająca na danego handlarza w prosty sposób przekłada się na ilość wykonanych transakcji.</p>
<p>W celu przeprowadzenia operacji grupowania musimy załadować tabelę do edytora zapytań (o imporcie danych do edytora pisaliśmy w <a href="https://skuteczneraporty.pl/power-query-cz-1-instalacja-i-pobieranie-danych/">części 1</a>), po czym naturalnie klikamy <em>Grupuj według.</em> Otworzy nam się okno <em>Grupowanie według</em>:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1009 size-full aligncenter" style="margin-left: 25px; margin-right: 25px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_6.png" alt="PQ3_6" width="701" height="311" /></p>
<p>Wybieramy grupowanie po kolumnie <em>Sprzedawca</em> oraz operację zliczenia wierszy aby otrzymać interesujący nas wynik:</p>
<p><a href="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_7.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1010 size-full" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_7.png" alt="PQ3_7" width="277" height="366" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_7.png 277w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_7-227x300.png 227w" sizes="(max-width: 277px) 100vw, 277px" /></a></p>
<p>Warto zauważyć, iż grupowanie możemy przeprowadzać na więcej niż jednej kolumnie; klikniecie w symbol plusa znajdujący się obok napisu <em>Grupuj według</em> doda okno w którym możemy wskazać jeszcze jedną kolumnę; analogicznie kliknięcie minusa obok okienka z kolumną grupowania powoduje jej usunięcie.</p>
<p><img loading="lazy" decoding="async" class="wp-image-1011 size-full aligncenter" style="margin-left: 21px; margin-right: 21px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_8.gif" alt="PQ3_8" width="708" height="376" /></p>
<p>W ten sposób możemy na przykład sprawdzić ile produktów danego typu sprzedał konkretny sprzedawca – wystarczy pogrupować wg ich nazwiska oraz kategorii sprzedanego dobra.</p>
<p><img loading="lazy" decoding="async" class="wp-image-1012 size-full aligncenter" style="margin-left: 24px; margin-right: 24px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_9.png" alt="PQ3_9" width="701" height="340" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_9.png 701w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_9-300x146.png 300w" sizes="(max-width: 701px) 100vw, 701px" /></p>
<p>W efekcie otrzymamy następującą tabelę:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1013 size-full aligncenter" style="margin-left: 177px; margin-right: 177px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_10.png" alt="PQ3_10" width="396" height="433" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_10.png 396w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_10-274x300.png 274w" sizes="(max-width: 396px) 100vw, 396px" /></p>
<p>Oprócz zliczania kolumn możemy wykonywać także inne działania: możemy na przykład sumować cenę produktów, w wyniku czego otrzymamy informację jaki przychód wygenerował konkretny sprzedawca. W takim przypadku musimy wskazać, na jakiej kolumnie wykonujemy naszą operację (w tym przypadku – sumowanie):</p>
<p><img loading="lazy" decoding="async" class="wp-image-1014 size-full aligncenter" style="margin-left: 24px; margin-right: 24px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_11.png" alt="PQ3_11" width="701" height="311" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_11.png 701w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_11-300x133.png 300w" sizes="(max-width: 701px) 100vw, 701px" /></p>
<p>W efekcie otrzymujemy listę sprzedawców wraz z wygenerowanym przez nich przychodem:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1015 size-full aligncenter" style="margin-left: 218px; margin-right: 218px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_12.png" alt="PQ3_12" width="314" height="410" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_12.png 314w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_12-230x300.png 230w" sizes="(max-width: 314px) 100vw, 314px" /></p>
<p>Istnieje także możliwość przeprowadzenia większej ilości operacji grupowania – zarówno na jednej, jak i na wielu kolumnach. Oznacza to, iż np. możemy zsumować cenę wszystkich sprzedanych produktów przez danego sprzedawcę, a także obliczyć średnią cenę sprzedaży – wykonujemy dwa działania na jednej kolumnie. Można także zsumować liczbę sprzedanych urządzeń oraz wyliczyć średnią cenę sprzedaży – w takim wypadku wykonujemy dwa działania na dwóch różnych kolumnach.</p>
<p>Aby wykonać działanie na więcej niż jednej kolumnie należy kliknąć w symbol plusa znajdujący się obok napisu:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1016 size-full aligncenter" style="margin-left: 21px; margin-right: 21px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_13.gif" alt="PQ3_13" width="708" height="372" /></p>
<p>Na podstawie podejmowanych przez nas działań możemy podzielić tabelę wejściową (przed grupowaniem) na sekcję grupowania oraz sekcję danych surowych (ang. <em>raw data)</em>. Sekcja grupowania jest zakresem komórek wyznaczonych przez kolumny według których przeprowadzane jest grupowanie oraz składająca się z wierszy które w obszarze tych kolumn mają takie same wartości. Sekcja danych surowych zaś to pozostałe kolumny przypadające na sekcję grupowania.</p>
<p>Najłatwiej wyjaśnić to na przykładzie – załóżmy, iż przeprowadzamy grupowanie po nazwisku sprzedawcy oraz kategorii produktu jaki sprzedał, ale poza tymi dwoma informacjami w tabeli mamy także inne dane – cena produktu, id klienta i tak dalej. W takim przypadku sekcje będą wyglądać w następujący sposób:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1017 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_14.png" alt="PQ3_14" width="750" height="376" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_14.png 852w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_14-300x150.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_14-768x385.png 768w" sizes="(max-width: 750px) 100vw, 750px" /></p>
<p>Jeżeli chcemy wiedzieć jakie linijki kodu kryją się za poszczególnymi funkcjami Power Query, możemy użyć funkcji <em>Edytor zaawansowany</em> (o którym pisaliśmy już w <a href="https://skuteczneraporty.pl/powerquery-cz-2-scalanie-oraz-dolaczanie/">drugiej części</a>). Kod który tam znajdziemy możemy poddać analizie, porównując ją z wykonanymi przez nas krokami, które znajdziemy we wstążce <em>Ustawienia zapytania.</em> Na tej podstawie możemy wywnioskować, iż komenda odpowiedzialna za grupowanie to <em>Table.Group</em>. Przykładowa kwerenda wygląda w następujący sposób:</p>
<p><em>#&#8221;Pogrupowano wiersze&#8221; = Table.Group(Źródło,{&#8222;Sprzedawca&#8221;, &#8222;Producent&#8221;}, {{&#8222;Liczność&#8221;, each Table.RowCount(_), type number}, {&#8222;srednia&#8221;, each List.Average([Cena]), type number}})</em></p>
<p>Pierwszym argumentem komendy <em>Table.Group</em> jest tabela którą przekształcamy – w tym wypadku oznaczona tekstem <em>Źródło</em> (jest to domyślna nazwa po imporcie tabeli z dowolnego źródła). Następnie mamy nazwy kolumn należących do sekcji grupującej, czyli takich na podstawie których wykonujemy grupowanie (<em>Sprzedawca</em> oraz <em>Producent</em>), po czym występuje nawias w którym określone są parametry nowopowstałych w wyniku grupowania kolumn:</p>
<p><em>{{&#8222;Liczność&#8221;, each Table.RowCount(_), type number}, {&#8222;srednia&#8221;, each List.Average([Cena]), type number}}</em></p>
<p>Powstanie kolumna <em>Liczność</em> w której będzie zliczana ilość wierszy przypadająca na dany zestaw wartości w sekcji grupującej (funkcja <em>Table.RowCount</em> ze stałym argumentem (_)) oraz kolumna <em>srednia</em> w której będzie można znaleźć średnią wyciągniętą z kolumny <em>Cena</em> tabeli wejściowej(funkcja <em>List.Average</em> z kolumną <em>[Cena]</em> jako argumentem). Obie te kolumny będą zawierały liczbowy typ danych, o czym informuje komenda <em>type number</em>.</p>
<p>&nbsp;</p>
<p>Grupowanie można wykonać też w inny sposób, w skoroszycie Excela – można wykorzystać stare dobre <a href="http://skuteczneraporty.pl/blog/tabele-i-wykresy-przestawne-excel-2013-1z4-jak-wstawic-tabele-przestawna-oparta-o-kilka-roznych-tabel/">tabele przestawne</a>, które wciąż pozostają jednym z najbardziej uniwersalnych narzędzi.</p>
<h1><strong>Dzielenie kolumn</strong></h1>
<p>Oprócz funkcji grupowania w obszarze <em>Przekształć</em> możemy znaleźć funkcję <em>Podziel kolumny</em>. Po kliknięciu w nią okazuje się, iż kolumny możemy dzielić na dwa sposoby – według ogranicznika (dowolny znak – np. średnik) lub też według liczby znaków.</p>
<p><img loading="lazy" decoding="async" class="wp-image-1018 size-full aligncenter" style="margin-left: 19px; margin-right: 19px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_15.png" alt="PQ3_15" width="712" height="204" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_15.png 712w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_15-300x86.png 300w" sizes="(max-width: 712px) 100vw, 712px" /></p>
<p>Jeżeli zdecydujemy się na podział kolumny <em>według ogranicznika</em>, to otworzy nam się następujące okienko:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1019 size-full aligncenter" style="margin-left: 24px; margin-right: 24px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_16.png" alt="PQ3_16" width="701" height="333" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_16.png 701w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_16-300x143.png 300w" sizes="(max-width: 701px) 100vw, 701px" /></p>
<p>Możemy w nim wskazać jaki znak ma oznaczać miejsce podziału kolumny oraz sposób podziału.</p>
<p>Opcja dzielenia <em>Przy ograniczniku najdalej z lewej strony</em> oznacza, iż program będzie brał pod uwagę pierwszy symbol ogranicznika. Przykładowo, jeżeli w kolumnie będziemy mieli tekst:</p>
<p><em>Jan Kowalski, Sprzedawca, Wrocław</em></p>
<p>To po podzieleniu przy zaznaczonej omawianej opcji otrzymamy dwie kolumny: w jednej z nich będzie znajdował się tekst &lt;<em>Jan Kowalski&gt;</em>, natomiast w drugiej będzie znajdować się pozostała część: &lt;<em>Sprzedawca, Wrocław&gt;</em>. Warto zwrócić uwagę, iż ogranicznik w miejscu podziału kolumny znika – w przytoczonym przykładzie znika przecinek po nazwisku.</p>
<p>Analogicznie sprawa się ma z opcją „Przy ograniczaniu najdalej z prawej strony” – wtedy otrzymalibyśmy kolumny &lt;<em>Jan Kowalski, Sprzedawca&gt;</em> oraz &lt;<em>Wrocław</em>&gt;. Trzeba przyznać, iż konstrukcja stylistyczna tych opcji nie jest najszczęśliwsza – można by to było zastąpić na przykład wyrażeniami <em>Przy pierwszym ograniczniku</em> oraz <em>przy ostatnim ograniczniku</em>. Nie dla wszystkich może być jasne co oznacza <em>najdalej z lewej strony</em> – można to interpretować jako ogranicznik najbliższy lewemu końcowi tekstu, jak i jako ogranicznik najdalszy lewej stronie, czyli ostatni.</p>
<p>Po zaznaczeniu opcji dzielenia <em>Przy każdym wystąpieniu ogranicznika</em> pojawia się opcja wyświetlenia opcji zaawansowanych:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1020 size-full aligncenter" style="margin-left: 24px; margin-right: 24px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_17.png" alt="PQ3_17" width="701" height="420" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_17.png 701w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_17-300x180.png 300w" sizes="(max-width: 701px) 100vw, 701px" /></p>
<p>Wartość <em>Liczba kolumn na którą zostanie podzielona kolumna </em>zmienia się automatycznie w zależności od zawartości kolumny – domyślna jest wartość która jest liczbą ograniczników w komórce gdzie jest ich najwięcej. W kolumnach gdzie jest mniej ograniczników niż kolumn będących wynikiem podziału komórki zostaną wypełnione wartością <em>null.</em> Poniżej przykład podziału na 4 kolumny:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1021 size-full aligncenter" style="margin-left: 67px; margin-right: 67px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_18.png" alt="PQ3_18" width="615" height="335" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_18.png 615w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_18-300x163.png 300w" sizes="(max-width: 615px) 100vw, 615px" /></p>
<p>Oprócz dzielenia przy pomocy ograniczników istnieje także możliwość podziału kolumn na podstawie liczby znaków. Po wyborze opcji <em>Podziel kolumny &gt; Według liczby znaków </em>otworzy nam się okno, w którym możemy zdefiniować po którym znaku ma nastąpić podział kolumny i od której strony będzie następowało liczenie:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1022 size-full aligncenter" style="margin-left: 24px; margin-right: 24px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_19.png" alt="PQ3_19" width="701" height="294" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_19.png 701w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_19-300x126.png 300w" sizes="(max-width: 701px) 100vw, 701px" /></p>
<p>Wynikiem operacji przy zaznaczonej opcji pierwszej lub drugiej będą dwie kolumny z podzielonym na dwie części ciągiem tekstowym. W przypadku wybrania opcji <em>Powtarzalne </em>mamy do wyboru opcje zaawansowane:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1023 size-full aligncenter" style="margin-left: 24px; margin-right: 24px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_20.png" alt="PQ3_20" width="701" height="374" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_20.png 701w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_20-300x160.png 300w" sizes="(max-width: 701px) 100vw, 701px" /></p>
<p>Skutkiem wybrania tej opcji będzie utworzenie podzielenie kolumny na wiele kolumn (w przeciwieństwie do poprzednich wariantów jest możliwość utworzenia więcej niż dwie kolumny). Program podzieli ciąg znaków w kolumnie co określoną liczbę znaków i utworzy zadaną ilość kolumn. Domyślnie wartość pojawiająca się w polu <em>Liczba kolumn, na którą zostanie podzielona kolumna</em> będzie wystarczająco wysoka aby nie pominąć żadnego znaku z kolumny początkowej. Oczywiście mamy możliwość ręcznie zmniejszyć ten parametr (w takim wypadku pominięte zostaną znaki z prawej strony ciągu tekstowego, które się nie zmieszczą). Jeżeli komórka zawiera niedostateczną liczbę znaków to po podziale puste komórki otrzymają wartość <em>null</em>.</p>
<p><img loading="lazy" decoding="async" class="wp-image-1024 size-full aligncenter" style="margin-left: 36px; margin-right: 36px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_21.png" alt="PQ3_21" width="677" height="434" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_21.png 677w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_21-300x192.png 300w" sizes="(max-width: 677px) 100vw, 677px" /></p>
<p>Po wypróbowaniu funkcji podziału, podobnie jak w przypadku grupowania, warto zapoznać się z kodem w edytorze zaawansowanym. Możemy w nim zauważyć, że za każdy sposób dzielenia kolumny) odpowiada komenda <em>Table.SplitColumn</em>. Argumentami tej formuły są kolejno tabela w której znajduje się dzielona kolumna, nazwa tej kolumny oraz argument określający sposób podziału:</p>
<ul>
<li>SplitTextByDelimiter(&#8222;_&#8221;, QuoteStyle.Csv),{&#8222;Kod.1&#8221;, &#8222;Kod.2&#8221;}) oznacza podział przy każdym wystąpieniu ogranicznika; w w pierwszym nawiasie zawarty jest ogranicznik (symbol „_”), styl cytatu, w drugim natomiast znajdują się nazwy tworzonych kolumn. Standardowo na taką nazwę składa się tytuł kolumny dzielonej, kropka oraz liczba porządkowa.</li>
<li>SplitTextByEachDelimiter({&#8222;-&#8222;}, QuoteStyle.Csv, true),{&#8222;Kod.1&#8221;, &#8222;Kod.2&#8221;}) oznacza podział przy pomocy pierwszego ogranicznika z lewej strony – określa to trzeci argument w pierwszym nawiasie, czyli wartość <em>true</em>. Dla podziału przy pomocy pierwszego ogranicznika z prawej strony wartość ta będzie wynosiła <em>false.</em> Pozostałe oznaczenia są takie same jak w poprzedniej opcji.</li>
<li>SplitTextByRepeatedLengths(4),{&#8222;Kod.1&#8221;, &#8222;Kod.2&#8221;, &#8222;Kod.3&#8221;}), oznacza podział kolumny dokonujący się co 3 znaki licząc od lewej strony. Drugi akapit definiuje nazwy oraz liczbę nowopowstałych kolumn. W tym wypadku kolumna dzieli się co cztery znaki i zostają utworzone trzy kolumny.</li>
<li>SplitTextByPositions({0, 6}, false),{&#8222;Kod.1&#8221;, &#8222;Kod.2&#8221;}), Oznacza podział kolumny na dwie, z czego pierwsza składa się z 6 liter ciągu znaków kolumny dzielonej licząc od lewej, a druga składa się z pozostałych znaków. O stronie od której się liczbę znaków decyduje wartość logiczna – w przypadku <em>false</em> liczymy od lewej, <em>true</em> – od prawej.</li>
</ul>
<p>Przykładowa komenda podziału może wyglądać w następujący sposób:</p>
<p>#&#8221;Podzielono kolumnę według położenia&#8221; = Table.SplitColumn(#&#8221;Zmieniono typ&#8221;,&#8221;Kod&#8221;,Splitter.SplitTextByPositions({0, 6}, false),{&#8222;Kod.1&#8221;, &#8222;Kod.2&#8221;}),</p>
<p>Napis <em>#”Zmieniono typ”</em> oznacza tabelę będącą wynikiem poprzedniej akcji. Bezpośrednio przed wykonaniem podziału kolumny program zmienia jej typ na tekstowy. <em>„Kod”</em> jest nazwą dzielonej kolumny, <em>Splitter.SplitTextByPositions({0,6}, false)</em> oznacza podział kolumny po 6 znaku licząc od lewej, a nawias <em>{„Kod.1”, „Kod.2”}</em> zawiera w sobie nazwy nowych kolumn.</p>
<p>Analogiczny efekt podziału można uzyskać w skoroszycie Excela przy pomocy funkcji LEWY lub PRAWY bądź też w dodatku PowerPivot przy pomocy formuł języka Data Analysis Expressions LEFT lub RIGHT. Inną drogą do do podziału komórek jest zastosowanie opcji <em>Tekst jako kolumny</em> z obszaru <em>Narzędzia danych</em> w zakładce <em>DANE</em>:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1025 size-full aligncenter" style="margin-left: 166px; margin-right: 166px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_22.png" alt="PQ3_22" width="418" height="194" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_22.png 418w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_22-300x139.png 300w" sizes="(max-width: 418px) 100vw, 418px" /></p>
<p>Po wybraniu tej opcji pojawi się okno dialogowe dobrze nam znane choćby z importu tekstu, gdzie w podobny sposób musimy wskazać jak podzielić wiersz tekstu na poszczególne komórki.</p>
<p><img loading="lazy" decoding="async" class="wp-image-1026 size-full aligncenter" style="margin-left: 114px; margin-right: 114px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_23.png" alt="PQ3_23" width="521" height="419" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_23.png 521w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_23-300x241.png 300w" sizes="(max-width: 521px) 100vw, 521px" /></p>
<p>Widzimy więc, iż efekt funkcji <em>Podziel kolumnę</em> z PowerQuery możemy uzyskać także innymi sposobami.</p>
<h1>Typy danych oraz zamienianie wartości</h1>
<p>Oprócz funkcji dzielenia kolumn oraz grupowania wierszy, w obszarze <em>Przekształć </em>zakładki <em>Narzędzia główne</em> możemy znaleźć opcje <em>Użyj pierwszego wiersza jako nagłówków </em>(o niej pisaliśmy w <a href="https://skuteczneraporty.pl/power-query-cz-1-instalacja-i-pobieranie-danych/">pierwszym artykule na temat PowerQuery</a>), <em>Zamienianie wartości </em>oraz <em>Typ danych</em>:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1028 size-full aligncenter" style="margin-left: 187px; margin-right: 187px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_25.png" alt="PQ3_25" width="375" height="370" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_25.png 375w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_25-300x296.png 300w" sizes="(max-width: 375px) 100vw, 375px" /></p>
<p>Oprócz standardowych typów danych dostępnych także w Excelu czy też w dodatku PowerPivot, mamy do dyspozycji 3 typy których nie spotkamy w innym miejscu: Typ daty z uwzględnieniem strefy czasowej, czas trwania oraz typ binarny.</p>
<p>Format daty i godziny, podobnie jak w skoroszycie Excel, program rozumie format jako ilość dni od określonej daty. W skoroszycie jest to liczba dni od 1 stycznia 1900 roku, a właściwie od… 0 stycznia 1900 roku – to nie pomyłka – oznacza to, iż jeżeli wpiszemy liczbę 3 i zmienimy format danych na datę, to pojawi się 3 stycznia 1900 roku, ale jeżeli wpiszemy 0 to otrzymamy datę 0 stycznia 1900 roku. Niestety nie ma możliwości zapisywania dat dawniejszych – w przypadku użycia licz ujemnych i zmiany formatowania na datę w komórce pojawia się ciąg znaków hash &#8211; #.</p>
<p>W przypadku gdy użyjemy liczby niecałkowitej – np. 3,5 – oprócz daty zmienimy także godzinę, bowiem program interpretuje część ułamkową jako część doby która zdążyła minąć – tak więc 3,5 oznacza 3 stycznia 1900 roku, godzinę 12.00</p>
<p><img loading="lazy" decoding="async" class="wp-image-1029 size-full aligncenter" style="margin-left: 85px; margin-right: 85px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_26.png" alt="PQ3_26" width="580" height="287" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_26.png 580w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_26-300x148.png 300w" sizes="(max-width: 580px) 100vw, 580px" /></p>
<p>W Power Query wygląda to nieco inaczej. Po pierwsze, daty są liczone od dnia 30 grudnia 1899 roku. Dodatkowo, istnieje możliwość zapisu daty wcześniejszej – jest ona identyfikowana jako liczba ujemna.</p>
<p><img loading="lazy" decoding="async" class="wp-image-1030 size-full aligncenter" style="margin-left: 58px; margin-right: 58px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_27.png" alt="PQ3_27" width="634" height="293" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_27.png 634w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_27-300x139.png 300w" sizes="(max-width: 634px) 100vw, 634px" /></p>
<p>Niestety, załadowując takie daty do skoroszytu Excela znów otrzymujemy błąd w postaci komórki wypełnionej znakami hash:</p>
<p><img loading="lazy" decoding="async" class="wp-image-1031 size-full aligncenter" style="margin-left: 269px; margin-right: 269px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_28.png" alt="PQ3_28" width="211" height="146" /></p>
<p>Ponadto, w Power Query możemy wyświetlać możemy także oznaczenie strefy czasowej. W przypadku wybrania typu danych <em>Data/godzina/strefa czasowa</em> zostanie dodana informacja ile czasu jest dodanych/odjętych od czasu uniwersalnego (UT) na podstawie ustawień lokalnych. W przypadku Polski będzie to +01:00 bądź też +02:00 – w zależności od tego czy danego dnia obowiązywał czas letni, czy zimowy.</p>
<p><img loading="lazy" decoding="async" class="wp-image-1032 aligncenter" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_29.png" alt="PQ3_29" width="750" height="515" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_29.png 829w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_29-300x206.png 300w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_29-768x527.png 768w" sizes="(max-width: 750px) 100vw, 750px" /></p>
<p>Operując na tak dawnych datach należy pamiętać o tym braku spójności pomiędzy PowerQuery a Excelem – w przeciwnym razie praca na takich danych i późniejsza próba ich eksportu do skoroszytu może kosztować nas wiele zmarnowanego czasu.</p>
<p>Typ danych <em>Czas trwania</em> to typ, w którym nie spotkamy się ani w skoroszycie, ani w PowerPivot – dostępny jest tylko w Power Query. Podobnie jak format daty, program konwertuje liczbę rzeczywistą na liczbę dni, godzin, minut i sekund. W przypadku konwersji liczby całkowitej otrzymujemy całkowita liczbę dni czas trwania (np. 2 to 2 dni czasu trwania). Aby oprócz dni skonkretyzować godziny, minuty i sekundy musimy posłużyć się liczbami rzeczywistymi które nie należą do zbioru liczb całkowitych – przykładowo pół dnia -12 godzin – to liczba 0,5, tak więc 2 dni i 12 godzin czasu trwania będzie oznaczone przez liczbę 2.5</p>
<p><img loading="lazy" decoding="async" class="wp-image-1033 size-full aligncenter" style="margin-left: 27px; margin-right: 27px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_30.png" alt="PQ3_30" width="696" height="332" srcset="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_30.png 696w, https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_30-300x143.png 300w" sizes="(max-width: 696px) 100vw, 696px" /></p>
<p>Mimo iż nie w skoroszytach Excela nie ma takiego formatu jak <em>Czas trwania</em>, to możemy załadować dane które będą wyglądały podobnie jak w Power Query – ich format danych zostanie określony jako niestandardowy. Nie mamy możliwości wczytania ujemnych wartości – podobnie jak w przypadku daty, zamiast tego otrzymamy komórkę wypełnioną znakami hash.</p>
<p><img loading="lazy" decoding="async" class="wp-image-1034 size-full aligncenter" style="margin-left: 267px; margin-right: 267px;" src="https://skuteczneraporty.pl/wp-content/uploads/2015/11/PQ3_31.png" alt="PQ3_31" width="216" height="143" /></p>
<p>Dane binarne to między innymi obrazy czy też filmy. Możemy je zaimportować ze źródeł danych obsługujących ten typ danych (np. SQL Serwer) czy też zaimportować z określonego folderu. Takie dane możemy załadować do PowerPivot, a następnie do PowerView, gdzie możemy użyć obrazów w tabelach.</p>
<p><strong> </strong></p>
<h1><strong>Zamiana wartości</strong></h1>
<p>W Power Query znajdziemy także tak klasyczną funkcję jak za<em>miana wartości</em>, czyli odpowiednik opcji <em>Znajdź i zamień </em>(wywoływaną także skrótem CTRL + H) z wstążki <em>Narzędzia główne</em> skoroszytu Excela. Warto zwrócić uwagę, iż niestety nie mamy możliwości samego znalezienia interesującej nas wartości. Prawdopodobnie uznano, iż w tym dodatku taka funkcjonalność nie jest potrzebna – wszak dodatek ten służy raczej do importu danych, ich grupowego przetwarzania i wczytywania do skoroszytów, a zmiana pojedynczej wartości jest utrudniona, ponieważ dostępna tylko przez omawianą opcję <em>zamiana wartości</em>.</p>
<p>Trzeba zwrócić uwagę, iż wartości zamieniane są tylko w zaznaczonych kolumnach lub w zaznaczonej komórce – jeżeli chcemy, aby program zamienił wartości w całej tabeli, należy w pierwszej kolejności zaznaczyć wszystkie kolumny.</p>
<p>&nbsp;</p>
<h1><strong>Wtórność?</strong></h1>
<p>Na podstawie powyższego omówienia metod przekształcania można by dojść do wniosku, iż Power Query nie oferuje nam zbyt wielu nowych możliwości w dziedzinie przekształcania danych. Wprowadza jednak możliwość działania na datach przed 1900 rokiem, a po za tym pozwala na wstępną obróbkę danych przed dodaniem ich do skoroszytu bądź też modelu danych. Dzięki temu możemy zmniejszyć wagę pliku oraz ograniczyć natłok danych (w przypadku, gdy dysponujemy zbyt dużą ich ilością) których bardziej dogłębną analizą możemy zająć się już korzystając z innych narzędzi.</p>
<p>Jakie jest Wasze zdanie na ten temat?</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://skuteczneraporty.pl/power-query-cz-3-grupowanie-danych/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
