KajoData / Tableau
Data blending w Tableau: sprzedaż i plan bez mnożenia kwot
Pokazuję, skąd biorą się zawyżone kwoty po joinie i jak zestawić dwa źródła na wspólnym poziomie. Wyjaśniam też, kiedy wybrać relacje zamiast blendingu.

Masz sprzedaż z poszczególnych dni i plan zapisany raz na miesiąc. Łączysz tabele, dodajesz dwie miary do wykresu i nagle firma ma plan kilka razy większy niż w arkuszu źródłowym. Nikt nie podniósł ambicji zarządu. Powieliłeś kwotę podczas łączenia danych.
Ja zaczynam taki problem od kartki: zapisuję, co oznacza jeden wiersz każdej tabeli. Dopiero potem wybieram sposób połączenia. W Tableau data blending pozwala zestawić wyniki z osobnych źródeł, ale wymaga świadomego wyboru poziomu porównania. Poniżej przechodzę przez niewielki przykład syntetyczny. Wszystkie kwoty są umowne i mają tę samą jednostkę.
Najpierw ustal, co właściwie porównujesz
Sprzedaż może oznaczać pozycję zamówienia, całe zamówienie albo dzienną sumę. Plan może dotyczyć miesiąca, regionu i kanału. Sama wspólna kolumna z datą nie rozstrzyga, czy obserwacje do siebie pasują. Potrzebuję zdania: „porównuję miesięczną sprzedaż regionu z miesięcznym planem tego samego regionu”.
To zdanie określa minimalny klucz: miesiąc wraz z rokiem oraz region. Jeśli plan rozróżnia również kanały, trzeba uwzględnić kanał albo wcześniej ustalić plan łączny. Bez tego dwie liczby mogą wyglądać rozsądnie, choć każda opisuje inny fragment firmy. Kolor wykresu tego nie naprawi.
Przed porównaniem sprawdzam także definicję miar. Sprzedaż netto i plan brutto wymagają uzgodnienia. Tak samo wykonanie po zwrotach i plan przed zwrotami. W tym przykładzie zakładam porównywalną definicję obu wartości, jeden region i zwykłe miesiące kalendarzowe. Dzięki temu można skupić się na agregacji zamiast równocześnie rozwiązywać pięć problemów biznesowych.
Mały przykład pokazuje błąd joina
Tabela sprzedaży zawiera trzy rekordy:
| Data | Region | Sprzedaż |
|---|---|---|
| 2026-01-05 | Północ | 40 |
| 2026-01-20 | Północ | 60 |
| 2026-02-10 | Północ | 90 |
W drugim źródle mam plan:
| Miesiąc | Region | Plan |
|---|---|---|
| 2026-01-01 | Północ | 80 |
| 2026-02-01 | Północ | 100 |
| 2026-03-01 | Północ | 120 |
Jeśli fizycznie połączę sprzedaż z planem po miesiącu i regionie, styczniowy plan 80 pojawi się przy obu styczniowych rekordach sprzedaży. Suma tej kolumny wyniesie 160. Faktyczny plan nadal wynosi 80. Sprzedaż 40 i 60 daje 100, więc poprawna realizacja to 125%, a nie 62,5% otrzymane po podzieleniu przez powielony plan.
To wynika z samych wierszy tabeli. Żaden komunikat błędu nie musi się pojawić: relacja jeden do wielu jest technicznie dopuszczalna. Problemem jest zastosowanie sumy do wartości powtórzonej przy łączeniu. Gdy transakcji są tysiące, zawyżenie może być ogromne. Gdy są dwie, potrafi wyglądać jak zwykła różnica między systemami.
Jaką rolę ma tu data blending
W blendingu Tableau odpytuje źródła osobno, agreguje ich wyniki i zestawia je w arkuszu. Nie powstaje wspólna tabela transakcji. To podstawowa różnica opisana w instrukcji Blend Your Data. Blending konfiguruję dla konkretnego arkusza, a nie jako uniwersalny model wszystkich przyszłych analiz.
Dla naszego widoku miesięcznego chcę uzyskać sprzedaż 100 i plan 80 w styczniu oraz sprzedaż 90 i plan 100 w lutym. Agregacja sprzedaży musi nastąpić na poziomie miesiąca i regionu, zanim zestawię ją z planem. Zachowuję przy tym świadomość, że źródło główne określa zakres widocznych wartości.
Blending przydaje się zwłaszcza w istniejących skoroszytach korzystających z oddzielnych źródeł i potrzebujących powiązań innych na poszczególnych arkuszach. Nie traktuję go jako obowiązkowego rozwiązania każdego problemu agregacji. Jeśli dopiero projektujesz model, najpierw rozważ relacje. Wrócę do nich niżej, bo starszy poradnik bez tego kontekstu prowadziłby do niepotrzebnego komplikowania projektu.
Przygotuj wspólny miesiąc
W źródle sprzedaży tworzę pole [Month]:
DATETRUNC('month', [Date])
Nazwę [Date] zastępujesz nazwą swojej kolumny. DATETRUNC obcina datę do wskazanej części; składnię potwierdza dokumentacja funkcji daty. Dla styczniowych rekordów otrzymuję początek stycznia 2026. W planie pole [Month] jest już datą pierwszego dnia miesiąca.
W obu źródłach sprawdzam typ i rzeczywistą wartość. Tekst „styczeń 2026”, data oraz liczba 202601 mogą wyglądać jak ten sam okres, ale wymagają uzgodnienia. Samo sformatowanie daty tak, żeby pokazywała nazwę miesiąca, nie zmienia wartości klucza. Nie łączę też wyłącznie po nazwie miesiąca, bo wtedy styczeń z różnych lat staje się kandydatem do tego samego dopasowania.
Przy danych firmowych dochodzi jeszcze kalendarz. Plan w miesiącach obrachunkowych wymaga odpowiadającego mu klucza. Dla transakcji z czasem trzeba określić strefę i regułę przypisania do dnia. W ćwiczeniu świadomie używam prostych dat bez godzin, więc granica miesiąca nie zależy od konwersji czasu. Własny raport powinien mieć tę decyzję zapisaną.
Zbuduj prostą tabelę kontrolną
Dodaję sprzedaż i plan jako dwa niezależne źródła przez Data > New Data Source. Dodanie kolejnego połączenia wewnątrz jednego źródła prowadzi do innego sposobu modelowania. Zaczynam od pustego arkusza i umieszczam miesiąc oraz region ze sprzedaży w wierszach. Sprzedaż staje się przez to źródłem głównym tego arkusza.
Następnie wybieram źródło planu i sprawdzam pola łączące. Gdy nazwy się różnią, korzystam z Data > Edit Blend Relationships i jawnie przyporządkowuję miesiąc oraz region. W panelu źródła pomocniczego kontroluję aktywne ikony połączenia. Do widoku dokładam zagregowaną miarę planu. Kolejność i znaczenie źródeł opisuje ta sama instrukcja Tableau.
Na tym etapie nie buduję jeszcze dashboardu. Chcę widzieć miesiąc, region, sprzedaż i plan w zwykłej tabeli. W styczniu oczekuję 100 obok 80, w lutym 90 obok 100. Jeśli te liczby nie pasują, szukam problemu w źródłach i powiązaniach. Dodawanie kolejnych pól obliczeniowych tylko utrudni znalezienie przyczyny.

Źródło główne decyduje, czego nie zobaczysz
W przykładzie marzec występuje tylko w planie. Widok zbudowany ze sprzedaży może go nie pokazać. Dlatego samo sprawdzenie poprawności stycznia i lutego nie wystarcza. Muszę też zapytać, czy raport ma pokazywać miesiące z planem, w których jeszcze nie było sprzedaży. To odrębna decyzja o zakresie raportu.
Jeśli podstawą raportu mają być wszystkie zaplanowane okresy, mogę zacząć nowy arkusz od planu i dopiero dołączyć wykonanie jako źródło pomocnicze. Wówczas analizuję inny zakres: kwoty planowane wyznaczają dostępne okresy. Dla raportu obejmującego pełny kalendarz rozważam osobną tabelę okresów i model dopasowany do tego celu. Zamiana źródła głównego nie gwarantuje pełnej listy wszystkich możliwych kategorii.
Brak sprzedaży w takim zestawieniu wymaga interpretacji. Może oznaczać zero transakcji, brak załadowanego pliku albo okres, który jeszcze się nie skończył. Nie zastępuję automatycznie każdej pustej wartości zerem. Zero jest twierdzeniem o działalności, a brak wartości może być informacją o stanie danych. Odbiorca powinien rozumieć tę różnicę przed oceną realizacji planu.
Realizacja planu i zmiana szczegółowości
Gdy obie kwoty są poprawne, dzielę miesięczną sprzedaż przez miesięczny plan. Dla stycznia 100 podzielone przez 80 daje 1,25, czyli 125%. Dla lutego 90 podzielone przez 100 daje 90%. Zerowy albo brakujący plan wymaga osobnej reguły: w tym poradniku nie wyliczam wtedy wskaźnika realizacji i pokazuję powód braku.
W polu obliczeniowym odwołującym się do źródła pomocniczego używam agregacji. Tableau wymaga zagregowanych miar z takiego źródła. Zamiast podawać pozornie uniwersalną formułę z wymyśloną nazwą połączenia, wstawiam pole planu z własnego panelu danych i sprawdzam źródło wskazane przez edytor. Najpierw kontroluję licznik i mianownik osobno, potem iloraz.
Teraz pułapka: dodajesz dzień albo produkt do wierszy. Miesięczny plan nie staje się od tego dziennym ani produktowym. Może pojawiać się przy wielu pozycjach, ale jego znaczenie pozostaje miesięczne. Jeśli chcesz badać dzienną realizację, potrzebujesz planu dziennego albo uzgodnionej alokacji. Podział przez liczbę dni też jest założeniem biznesowym, szczególnie gdy weekendy mają inny profil sprzedaży.
Gwiazdka i brak dopasowania wymagają różnych napraw
Gwiazdka przy wymiarze pomocniczym może oznaczać, że jednej pozycji widoku odpowiada kilka wartości tego wymiaru. Wyobraź sobie miesięczny plan podzielony na kanały, podczas gdy łączysz tylko po regionie i miesiącu. Kwoty można zsumować, ale nazwy kilku kanałów nie tworzą jednej jednoznacznej etykiety. Nie usuwam gwiazdki przez przypadkowy wybór wartości.
Najpierw ustalam, czy kanał należy do poziomu analizy. Jeśli tak, potrzebuję odpowiadającego mu pola i danych w obu źródłach. Jeśli nie, raport powinien mówić o planie łącznym bez pojedynczej etykiety kanału. Rozwiązywanie problemów blendingu opisuje także ograniczenia agregacji nieaddytywnych, takich jak COUNTD czy MEDIAN. Nie przenoszę na nie automatycznie wniosków z prostego sumowania.
Pusta miara wymaga innego tropu. Sprawdzam po kolei aktywność powiązania, wartości regionów, daty i filtry. „Północ” i „North” nie stanowią wspólnego klucza tylko dlatego, że ja rozumiem oba słowa. Przy większym modelu wolę identyfikator regionu i kontrolowany słownik nazw. Usuwanie spacji może pomóc, ale nie zastępuje uzgodnienia znaczeń.
Relacje, join i blending: wybierz zakres odpowiedzialności
W aktualnym Tableau relacje pozwalają zachować osobne tabele i ich poziomy szczegółowości w modelu źródła. Tableau zaleca je jako pierwsze podejście do łączenia tabel, co opisuje Relate Your Data. Dzienna sprzedaż i miesięczny plan są więc również kandydatem do poprawnie zaprojektowanego modelu relacyjnego.
Fizyczny join ma sens, gdy świadomie potrzebuję wspólnej struktury wierszy i rozumiem wynikającą z niego liczność. Blending wybieram, gdy chcę zestawić zagregowane wyniki osobnych źródeł na konkretnym arkuszu. O wyborze decydują dostępne źródła, ograniczenia i sposób użycia raportu. Sama różna szczegółowość danych nie jest wystarczającym argumentem za jednym mechanizmem.
Nie obiecuję też większej szybkości bez pomiaru konkretnego skoroszytu. Wielkość źródeł, zapytania i układ widoku mają znaczenie. Najpierw potrzebuję poprawnego wyniku i zrozumiałego modelu, potem oceniam czas działania. Jeśli dopiero poznajesz narzędzie, zacznij od wprowadzenia do Tableau, a zmiany między okresami rozwiń w poradniku MoM i YoY.
Sprawdź filtr i wersję planu
Wróćmy do stycznia. Załóżmy, że raport ma pokazywać tylko wybrany kanał sprzedaży, a plan nadal jest wspólny dla wszystkich kanałów. Po przefiltrowaniu sprzedaży licznik obejmuje fragment wykonania, natomiast mianownik może pozostać pełnym planem regionu. Taki iloraz da się policzyć, ale trzeba go odpowiednio nazwać. Bez dodatkowych danych nie określa realizacji planu tego kanału.
Ja pytam wtedy właściciela raportu, czy istnieje podział planu na kanały. Jeśli go nie ma, pokazuję udział kanału w wykonaniu albo porównuję pełną sprzedaż z pełnym planem. Nie dopisuję brakującej struktury przez arbitralne dzielenie kwoty. Równy podział między kanały mógłby być scenariuszem planistycznym, jednak wymagałby jawnego oznaczenia i uzgodnienia przed publikacją.
Druga kontrola dotyczy wersji planu. W arkuszu mogą być jednocześnie plan pierwotny, rewizja i prognoza. Trzy rekordy miesiąca nie muszą oznaczać trzech części jednej kwoty. Jeśli zsumujesz je razem, dostaniesz liczbę bez sensownej definicji. Ustal, który wariant jest bazą raportu, i dopilnuj, żeby w porównaniu uczestniczył dokładnie ten wariant.
Podobnie postępuję z walutą i jednostką. Sam wybór wspólnego miesiąca i regionu nie rozwiązuje różnicy między kwotą w jednostkach a kwotą w tysiącach. W małej tabeli warto dopisać obok miary jej jednostkę. Gdy plan 80 oznacza osiemdziesiąt tysięcy, a sprzedaż 100 oznacza sto jednostek, wizualnie podobne liczby opowiadają całkowicie inną historię. To błąd definicji, którego blending nie wykryje.
Na koniec sprawdzam, czy daty odświeżenia są porównywalne. Wykonanie za dziesięć dni zestawione z planem całego miesiąca może być celowym widokiem postępu. Musi jednak mieć opis okresu i nie powinno być interpretowane jak wynik zamkniętego miesiąca. Kiedy raport ma służyć ocenie końcowej, czekam na komplet danych albo wyraźnie oznaczam częściowy zakres wykonania.
Co zostawić osobie przejmującej skoroszyt
Przygotowuję dwa małe widoki kontrolne: sprzedaż bez blendingu oraz plan bez blendingu. Dzięki nim następna osoba może porównać kwoty źródłowe z wynikiem zestawienia. Nie musi od razu rozumieć wszystkich pól dashboardu, żeby sprawdzić, czy przy okazji przebudowy wykresu nie zmieniła się suma. Takie widoki mogą pozostać technicznym zapleczem skoroszytu zamiast zajmować miejsce w głównym raporcie.
Obok zapisuję wybrane pola łączące i oczekiwaną liczność planu: jedna wartość na miesiąc, region i ustalony wariant. Jeśli plik planu zostanie rozszerzony o produkt, ktoś powinien świadomie wrócić do tej definicji. Nowa kolumna nie jest kosmetyczną zmianą, gdy zmienia znaczenie rekordu. Ta sama kontrola przydaje się przy migracji źródła albo zastąpieniu ręcznego arkusza tabelą z bazy.
Dobrze przekazany raport ma również właściciela braków. Gdy region nie ma planu, analityk może wykryć problem i pokazać jego zakres, ale sam nie powinien wymyślać zobowiązania biznesowego. Warto uzgodnić, kto poprawia źródło i jak odbiorcy dowiedzą się o korekcie. Wtedy kolejny brak nie kończy się chaotycznym dopisywaniem stałych wartości w polu obliczeniowym.
Ćwiczenie przed oddaniem raportu
Przepisz małe tabele z tego tekstu i przygotuj miesięczny widok. Potem dodaj drugą styczniową transakcję, zmień nazwę regionu w planie i usuń sprzedaż z lutego. Przed każdą zmianą zapisz oczekiwaną sprzedaż, plan oraz listę okresów. Celem jest wyjaśnienie zachowania raportu, a nie uzyskanie wykresu podobnego do ilustracji.
Sprawdź także widok zaczynający się od planu. Zastanów się, dlaczego pojawia się marzec i jak opisać brak wykonania. Następnie dodaj dzień do arkusza i odpowiedz, czy wolno sumować widoczny tam plan po wszystkich dniach. Jeśli potrafisz wyjaśnić, skąd bierze się każda kwota i każdy brak, rozumiesz główną trudność blendingu.
Przy przekazaniu raportu zostaw krótką definicję poziomu: jeden wiersz wyniku oznacza miesiąc i region, plan nie jest alokowany na dni, a zakres okresów wynika z wybranego źródła. Taka notatka pomaga bardziej niż informacja, że „Tableau łączy dane inteligentnie”. Odbiorca wie wtedy, na jakie pytanie może odpowiedzieć dashboard i gdzie kończy się jego interpretacja.
Film o data blendingu
Poniżej zachowuję film przypisany do oryginalnego wpisu. Tekst przedstawia samodzielne wyjaśnienie na małych danych; film jest dodatkowym materiałem po polsku.
Najważniejsze w pigułce
Czy data blending jest zwykłym left joinem?
Zachowuje się podobnie pod względem zakresu wartości źródła głównego, ale działa na osobno zagregowanych wynikach źródeł w arkuszu. Nie tworzy jednej tabeli rekordów ani nowego wspólnego źródła.
Dlaczego plan znika dla części miesięcy?
Sprawdź zakres źródła głównego, aktywne pola łączące, typy i wartości kluczy oraz filtry. Miesiąc istniejący tylko w źródle pomocniczym nie musi pojawić się w widoku zbudowanym ze sprzedaży.
Czy blending rozdzieli miesięczny plan na dni lub produkty?
Nie wyznaczy reguły podziału. Plan miesięczny pozostaje miesięczny; do dziennej realizacji albo planu produktu potrzebujesz jawnej reguły alokacji lub danych o takiej szczegółowości.
Przy pracy nad artykułem użyto w zautomatyzowany sposób sztucznej inteligencji. Jeśli też chcesz tak umieć, sprawdź ten projekt.
