Udostępnij za pośrednictwem


Typy danych w programie Power BI Desktop

W tym artykule opisano typy danych obsługiwane przez programy Power BI Desktop i Data Analysis Expressions (DAX).

Gdy usługa Power BI ładuje dane, próbuje przekonwertować typy danych kolumn źródłowych na typy danych, które obsługują bardziej wydajny magazyn, obliczenia i wizualizację danych. Jeśli na przykład kolumna wartości importowanych z programu Excel nie zawiera wartości ułamkowych, program Power BI Desktop konwertuje kolumnę danych na liczba całkowita typ danych, co jest lepiej odpowiednie do przechowywania liczb całkowitych.

Ta koncepcja jest ważna, ponieważ niektóre funkcje języka DAX mają specjalne wymagania dotyczące typów danych. W wielu przypadkach język DAX niejawnie konwertuje typy danych, ale czasami tego nie robi. Jeśli na przykład funkcja języka DAX wymaga typu danych Data, ale typ danych kolumny to Text, funkcja języka DAX nie będzie działać poprawnie. Dlatego ważne i przydatne jest użycie prawidłowych typów danych dla kolumn.

Określanie i określanie typu danych kolumny

W programie Power BI Desktop można określić i określić typ danych kolumny w Edytorze Power Query, w widoku tabeli lub w widoku raportu:

  • W Edytorze Power Query wybierz kolumnę, a następnie w grupie Przekształć na wstążce wybierz pozycję Typ danych.

    Zrzut ekranu edytora Power Query przedstawiający wybór listy rozwijanej Typ danych.

  • W widoku tabeli lub widoku raportów wybierz kolumnę, a następnie wybierz strzałkę listy rozwijanej obok pozycji Typ danych na karcie narzędzia kolumny karcie wstążki.

    Zrzut ekranu widoku tabeli, pokazujący wybór z listy rozwijanej typu danych.

W menu rozwijanym Typ danych w Edytorze Power Query dostępne są dwa typy danych, które nie występują w widoku tabeli ani widoku raportu: data/godzina/strefa czasowa oraz czas trwania. Podczas ładowania kolumny z tymi typami danych do modelu Power BI, kolumna Data/Godzina/Strefa czasowa jest przekształcana na typ danych Data/Godzina, a kolumna Czas trwania przekształca się na typ danych Liczba dziesiętna.

Typ danych binarnych nie jest obsługiwany poza edytorem Power Query. W Edytorze Power Query można użyć typu danych Binary podczas ładowania plików binarnych, jeśli przekonwertujesz je na inne typy danych przed załadowaniem ich do modelu usługi Power BI. Wybór binary istnieje w menu Widok tabeli i Widok raportu ze starszych powodów, ale jeśli spróbujesz załadować kolumny Binary do modelu usługi Power BI, mogą wystąpić błędy.

Typy liczb

Program Power BI Desktop obsługuje trzy typy liczb: liczba dziesiętna, stała liczba dziesiętnai liczba całkowita.

Możesz użyć właściwości Model obiektów tabelarycznych (TOM) Kolumna DataType, aby określić wyliczenia DataType dla typów liczb. Aby uzyskać więcej informacji na temat programowego modyfikowania obiektów w usłudze Power BI, zobacz Program Power BI semantyczne modele z modelem obiektów tabelarycznych.

Liczba dziesiętna

liczba dziesiętna jest najczęstszym typem liczb i może obsługiwać liczby z wartościami ułamkowymi i liczbami całkowitymi. Liczba dziesiętna reprezentuje 64-bitowe (osiembajtowe) liczby zmiennoprzecinkowe z wartościami ujemnymi od -1.79E+308 do -2.23E-308, wartościami dodatnimi od 2.23E-308 do 1.79E+308oraz 0. Liczby takie jak 34, 34.01i 34.000367063 są prawidłowymi liczbami dziesiętowymi.

Największa precyzja reprezentowana przez liczbę dziesiętną to 15 cyfr. Separator dziesiętny może wystąpić w dowolnym miejscu liczby. Ten typ odpowiada temu, jak program Excel przechowuje liczby, a TOM określa ten typ jako enumeracja DataType.Double.

Stała liczba dziesiętna

Stała liczba dziesiętna typ danych ma stałą lokalizację separatora dziesiętnego. Separator dziesiętny zawsze ma cztery cyfry po prawej stronie i pozwala na 19 cyfr znaczących. Największa wartość, jaką może reprezentować stała liczba dziesiętna , to dodatnia lub ujemna liczba 922 337 203 685 477,5807.

Typ stała liczba dziesiętna jest przydatny w sytuacjach, gdy zaokrąglanie może powodować błędy. Liczby o małych wartościach ułamkowych czasami mogą się kumulować i powodować, że liczba staje się nieco niedokładna. Typ stałej liczby dziesiętnej może pomóc uniknąć tego rodzaju błędów, obcinając wartości po czterech cyfrach z prawej strony separatora dziesiętnego.

Ten typ danych odpowiada dziesiętnym (19,4)programu SQL Server lub waluta typ danych w usługach Analysis Services i dodatku Power Pivot w programie Excel. TOM określa ten typ jako wyliczenie DataType.Decimal.

Liczba całkowita

liczba całkowita reprezentuje 64-bitową liczbę całkowitą (osiem bajtów). Ponieważ jest to liczba całkowita, liczba całkowita nie ma cyfr po prawej stronie miejsca dziesiętnego. Ten typ umożliwia 19 cyfr dodatnich lub ujemnych liczb całkowitych z zakresu od -9 223 372 036 854 775 807 (-2^63+1) i 9 223 372 036 854 775 806 (2^63-2), dzięki czemu mogą reprezentować największą możliwą liczbę typów danych liczbowych.

Podobnie jak w przypadku typu stałoprzecinkowego dziesiętnego, typ liczba całkowita może być przydatny, gdy trzeba kontrolowania zaokrągleń. TOM reprezentuje typ danych liczba całkowita jako wyliczenie DataType.Int64.

Notatka

Model danych programu Power BI Desktop obsługuje 64-bitowe wartości całkowite, ale ze względu na ograniczenia języka JavaScript największa liczba, którą wizualizacje Power BI mogą bezpiecznie wyrazić, to 9,007,199,254,740,991 (2^53-1). Jeśli model danych ma większe liczby, możesz zmniejszyć ich rozmiar za pomocą obliczeń przed dodaniem ich do wizualizacji.

Dokładność obliczeń typu liczbowego

Wartości kolumn o typie danych liczba dziesiętna są przechowywane jako dane przybliżone typu zgodnie ze standardem IEEE 754 dla liczb zmiennoprzecinkowych. Przybliżone typy danych mają nieodłączne ograniczenia dokładności, ponieważ zamiast przechowywać dokładne wartości liczbowe, mogą przechowywać bardzo bliskie lub zaokrąglone przybliżenia.

Utrata precyzji lub nierecysjnośćmoże wystąpić, jeśli wartość zmiennoprzecinkowa nie może niezawodnie określić liczby cyfr zmiennoprzecinkowych. Imprecizja może być wyświetlana jako nieoczekiwane lub niedokładne wyniki obliczeń w niektórych przypadkach raportowania.

Obliczenia porównań związanych z równością między wartościami typu danych liczby dziesiętnej mogą potencjalnie zwracać nieoczekiwane wyniki. Porównania równości obejmują równe =, większe niż >, mniejsze niż <, większe lub równe >=, i mniejsze lub równe <=.

Ten problem jest najbardziej widoczny, gdy używasz funkcji RANKX w wyrażeniu języka DAX, które oblicza wynik dwa razy, co powoduje nieco inne liczby. Użytkownicy raportów mogą nie zauważyć różnicy między dwiema liczbami, ale wynik klasyfikacji może być zauważalnie niedokładny. Aby uniknąć nieoczekiwanych wyników, możesz zmienić typ danych kolumny z liczba dziesiętna na liczba dziesiętna o stałych miejscach dziesiętnych lub liczba całkowita, albo wykonać wymuszone zaokrąglenie przy użyciu ROUND. Stała liczba dziesiętna typ danych ma większą precyzję, ponieważ separator dziesiętny zawsze ma cztery cyfry po prawej stronie.

Rzadko obliczenia sumujące wartości kolumny liczba dziesiętna typu danych mogą zwracać nieoczekiwane wyniki. Ten wynik jest najbardziej prawdopodobny w przypadku kolumn, które mają duże ilości liczb dodatnich i liczb ujemnych. Wynik sumy ma wpływ na rozkład wartości między wierszami w kolumnie.

Jeśli wymagane obliczenie sumuje większość liczb dodatnich przed sumowaniem większości liczb ujemnych, duża dodatnia suma częściowa na początku może potencjalnie wypaczyć wyniki. Jeśli obliczenie ma na celu dodanie zrównoważonych liczb dodatnich i ujemnych, zapytanie zachowuje większą precyzję i w związku z tym zwraca dokładniejsze wyniki. Aby uniknąć nieoczekiwanych wyników, możesz zmienić typ danych kolumny z liczba dziesiętna na liczba dziesiętna o stałej precyzji lub liczby całkowite.

Typy daty/godziny

Program Power BI Desktop obsługuje pięć typów danych data/godzina w Edytorze Power Query. Zarówno data/godzina/strefa czasowa, jak i czas trwania są konwertowane podczas ładowania do modelu danych programu Power BI Desktop. Model obsługuje datę/godzinęalbo można sformatować wartości jako datę lub godzinę niezależnie.

  • data/godzina reprezentuje zarówno wartość daty, jak i godziny. Podstawowa wartość Data/Czas jest przechowywana jako liczba dziesiętna, co umożliwia konwersję między dwoma typami. Część czasowa jest przechowywana jako ułamek będący wielokrotnością części 1/300 sekundy (3,33 ms). Typ danych obsługuje daty z zakresu od lat 1900 do 9999.

  • Data reprezentuje tylko datę bez części czasowej. Data jest konwertowana do modelu jako wartość Data/Godzina z zerem dla wartości ułamkowej.

  • Time reprezentuje tylko godzinę bez części daty. Godzina konwertuje na model jako wartość data/godzina bez cyfr po lewej stronie przecinka dziesiętnego.

  • Data/Czas/Strefa czasowa odnosi się do daty/czasu UTC z przesunięciem strefy czasowej i zostaje przekształcona w Data/Czas po załadowaniu do modelu. Model usługi Power BI nie dostosowuje strefy czasowej na podstawie lokalizacji użytkownika ani ustawień regionalnych. Wartość 09:00 załadowana do modelu w USA jest wyświetlana jako 09:00 wszędzie tam, gdzie raport jest otwierany lub wyświetlany.

  • Czas trwania reprezentuje długość czasu i jest konwertowany na typ liczba dziesiętna przy załadowaniu do modelu. Jako liczba dziesiętna typu , można dodawać lub odejmować wartości do/z wartości daty/godziny , uzyskując poprawne wyniki, oraz łatwo używać tych wartości w wizualizacjach pokazujących skalę.

Typ tekstu

Typ danych Tekst to ciąg danych znaków Unicode, który może być literami, cyframi lub datami reprezentowanymi w formacie tekstowym. Praktyczny maksymalny limit długości ciągu wynosi około 32 000 znaków Unicode na podstawie silnika Power Query w Power BI oraz jego limitów długości typu danych tekst. Typy danych tekstowych wykraczające poza praktyczny maksymalny limit prawdopodobnie spowodują błędy.

Sposób przechowywania danych tekstowych w usłudze Power BI może spowodować, że dane będą wyświetlane inaczej w niektórych sytuacjach. W następnych sekcjach opisano typowe sytuacje, które mogą spowodować, że dane tekstowe nieznacznie zmieni wygląd podczas wykonywania zapytań w Edytorze Power Query i ładowaniem ich do usługi Power BI.

Ważność wielkości liter

Aparat, który przechowuje dane i wykonuje zapytania w usłudze Power BI, jest przypadku bez uwzględniania wielkości literi traktuje różne litery co ta sama wartość. Wartość "A" jest równa "a". Jednak dodatek Power Query jest wrażliwy na wielkość liter, gdzie "A" nie jest taką samą jak "a". Różnica w czułości na wielkość liter może prowadzić do sytuacji, w których dane tekstowe zmieniają wielkość liter pozornie niewytłumaczalnie po wczytaniu do Power BI.

W poniższym przykładzie przedstawiono dane zamówienia: kolumna OrderNo unikatowa dla każdego zamówienia oraz kolumna Addressee zawierająca nazwę adresu wprowadzoną ręcznie w czasie zamówienia. Edytor Power Query pokazuje kilka zamówień z tymi samymi Adres nazwy wprowadzone w systemie z różną kapitalizacją.

Zrzut ekranu przedstawiający dane tekstowe z różnymi literami w programie Power Query

Po załadowaniu danych przez usługę Power BI kapitalizacja duplikatów nazw w karcie Data zmieniła się z oryginalnego wpisu na jeden z wariantów kapitalizacji.

Zrzut ekranu przedstawiający dane tekstowe ze zmienionymi literami po załadowaniu do usługi Power BI.

Ta zmiana ma miejsce, ponieważ w edytorze Power Query jest rozróżniana wielkość liter, dlatego dane są wyświetlane dokładnie tak, jak przechowywane w systemie źródłowym. Silnik, który przechowuje dane w usłudze Power BI, ignoruje wielkość liter, więc traktuje małe i wielkie litery jako identyczne. Dane Power Query załadowane do silnika Power BI mogą się odpowiednio zmieniać.

Aparat usługi Power BI ocenia poszczególne wiersze indywidualnie podczas ładowania danych, począwszy od góry. Dla każdej kolumny tekstowej, takiej jak Addressee, aparat przechowuje słownik unikatowych wartości w celu poprawy wydajności poprzez kompresję danych. Silnik widzi pierwsze trzy wartości w kolumnie Adresat jako unikatowe i zapisuje je w słowniku. Następnie, ponieważ aparat jest niewrażliwy na wielkość liter, ocenia nazwy jako identyczne.

Program widzi nazwę "Taina Hasu" tak samo jak "TAINA HASU" i "Taina HASU", więc nie zapisuje tych odmian, lecz odnosi się do pierwszej zapisanej odmiany. Nazwa "MURALI DAS" pojawia się w wielkich literach, ponieważ tak została oceniona przez silnik przy pierwszym ładowaniu danych od góry.

Ten obraz przedstawia proces oceny:

Diagram przedstawiający proces ładowania danych i mapowanie wartości tekstowych do słownika unikatowych wartości.

W poprzednim przykładzie aparat usługi Power BI ładuje pierwszy wiersz danych, tworzy słownik adresatów i dodaje do niego Taina Hasu. Silnik dodaje również odwołanie do tej wartości w kolumnie "Addressee" w tabeli, którą ładuje. Silnik wykonuje to samo w przypadku drugiego i trzeciego wiersza, ponieważ te nazwy nie są równoważne innym, ignorując wielkość liter.

W czwartym wierszu silnik porównuje wartość z nazwami w słowniku i znajduje nazwę. Ponieważ silnik jest niewrażliwy na wielkość liter, "TAINA HASU" i "Taina Hasu" są takie same. Aparat nie dodaje nowej nazwy do słownika, ale odwołuje się do istniejącej nazwy. Ten sam proces występuje w przypadku pozostałych wierszy.

Notatka

Ponieważ silnik, który przechowuje dane i wykonuje zapytania w usłudze Power BI, nie uwzględnia wielkości liter, należy zachować szczególną uwagę podczas pracy w trybie DirectQuery ze źródłem uwzględniającym wielkość liter. Usługa Power BI zakłada, że źródło wyeliminowało zduplikowane wiersze. Ponieważ usługa Power BI nie uwzględnia wielkości liter, traktuje dwie wartości, które różnią się tylko wielkością liter, jako duplikaty, natomiast źródło może nie traktować ich jako takich. W takich przypadkach ostateczny wynik jest niezdefiniowany.

Aby uniknąć tej sytuacji, jeśli używasz trybu DirectQuery ze źródłem danych uwzględniającym wielkość liter, normalizuj wielkość liter w zapytaniu źródłowym lub w Edytorze Power Query.

Spacje wiodące i końcowe

Silnik Power BI automatycznie przycina wszystkie końcowe spacje, które znajdują się po danych tekstowych, ale nie usuwa spacji początkowych przed danymi. Aby uniknąć nieporozumień, podczas pracy z danymi zawierającymi spacje wiodące lub końcowe należy użyć funkcji Text.Trim, aby usunąć spacje na początku lub na końcu tekstu. Jeśli nie usuniesz początkowych spacji, relacja może nie zostać utworzona z powodu zduplikowanych wartości, a wizualizacje mogą zwracać nieoczekiwane wyniki.

W poniższym przykładzie przedstawiono dane dotyczące klientów: kolumna Name zawierająca nazwę klienta i kolumnę Index, która jest unikatowa dla każdego wpisu. Nazwy są wyświetlane w cudzysłowie, aby uzyskać jasność. Nazwa klienta powtarza się cztery razy, ale za każdym razem z różnymi kombinacjami spacji na początku i końcu. Te odmiany mogą wystąpić w przypadku ręcznego wprowadzania danych w czasie.

Szereg Odstęp wiodący Spacja końcowa Nazwa Indeks Długość tekstu
1 Nie Nie "Dylan Williams" 1 14
2 Nie Tak "Dylan Williams" 10 15
3 Tak Nie " Dylan Williams" 20 15
4 Tak Tak " Dylan Williams " 40 16

W Edytorze Power Query wynikowe dane są wyświetlane w następujący sposób.

Zrzut ekranu przedstawiający dane tekstowe z różnymi wiodącymi i końcowymi spacjami w Edytorze Power Query.

Gdy przejdziesz do karty Tabela w usłudze Power BI po załadowaniu danych, ta sama tabela będzie wyglądać podobnie jak na poniższej ilustracji z taką samą liczbą wierszy, jak poprzednio.

Zrzut ekranu przedstawiający te same dane tekstowe po załadowaniu do usługi Power BI zwraca taką samą liczbę wierszy, jak poprzednio.

Jednak wizualizacja oparta na tych danych zwraca tylko dwa wiersze.

Zrzut ekranu przedstawiający wizualizację tabeli na podstawie tych samych danych, które zwracają tylko dwa wiersze danych.

Na poprzedniej ilustracji pierwszy wiersz ma całkowitą wartość 60 dla pola Index, więc pierwszy wiersz w wizualizacji reprezentuje dwa ostatnie wiersze załadowanych danych. Drugi wiersz o łącznej wartości indeksu Index11 reprezentuje dwa pierwsze wiersze. Różnica w liczbie wierszy między wizualem a tabelą danych jest spowodowana automatycznym usunięciem lub przycinaniem spacji końcowych, ale nie usunięciem spacji początkowych. Silnik ocenia więc wiersze pierwsze i drugie oraz trzeci i czwarty jako jednakowe, a wizualizacja zwraca te wyniki.

To zachowanie może również powodować komunikaty o błędach związane z relacjami, ponieważ wykryto zduplikowane wartości. Na przykład w zależności od konfiguracji relacji może zostać wyświetlony błąd podobny do poniższego obrazu:

zrzut ekranu przedstawiający komunikat o błędzie dotyczący zduplikowanych wartości.

W innych sytuacjach może nie być możliwe utworzenie relacji wiele do jednego lub jeden do jednego, ponieważ wykryto zduplikowane wartości.

Zrzut ekranu przedstawiający okno dialogowe relacji z błędem

Te błędy można prześledzić z powrotem do spacji wiodących lub końcowych i rozwiązać je przy użyciu Text.Trimlub Format>Trim w obszarze Przekształć, aby usunąć spacje w Edytorze Power Query.

Typ prawda/fałsz

Typ danych True/False jest wartością logiczną True lub False. Aby uzyskać najlepsze i najbardziej spójne wyniki, podczas ładowania kolumny zawierającej informacje logiczne prawda/fałsz do usługi Power BI ustaw typ kolumny na wartość wartość True/False.

Usługa Power BI konwertuje i wyświetla dane w różnych sytuacjach. W tej sekcji opisano typowe przypadki konwertowania wartości logicznych oraz sposób rozwiązywania konwersji, które tworzą nieoczekiwane wyniki w usłudze Power BI.

W tym przykładzie załadujesz dane dotyczące tego, czy klienci zarejestrowali się w biuletynie. Wartość TRUE wskazuje, że klient zarejestrował się w biuletynie, a wartość FALSE wskazuje, że klient nie zarejestrował się.

Jednak podczas publikowania raportu w usłudze Power BI kolumna stan rejestracji biuletynu pokazuje 0 i -1 zamiast oczekiwanych wartości TRUE lub FALSE. W poniższych krokach opisano, jak odbywa się ta konwersja i jak jej zapobiec.

Uproszczone zapytanie dla tej tabeli zostanie wyświetlone na poniższej ilustracji:

Zrzut ekranu przedstawiający kolumny ustawione na Boolean.

Typ danych kolumny Subskrybowane do biuletynu jest ustawiony na wartość Any, a w związku z tym usługa Power BI ładuje dane do modelu jako Text.

Zrzut ekranu przedstawiający dane załadowane do usługi Power BI.

Po dodaniu prostej wizualizacji, która pokazuje szczegółowe informacje dla poszczególnych klientów, dane są wyświetlane w wizualizacji zgodnie z oczekiwaniami, zarówno w programie Power BI Desktop, jak i po opublikowaniu w usłudze Power BI.

Zrzut ekranu przedstawiający wizualizację, która pokazuje dane wyświetlane zgodnie z oczekiwaniami.

Jednak podczas odświeżania modelu semantycznego w usłudze Power BI kolumna Subscribed To Newsletter w wizualizacjach wyświetla wartości jako -1 i 0, zamiast wyświetlać je jako PRAWDA lub FAŁSZ:

Zrzut ekranu przedstawiający wizualizację, która pokazuje dane wyświetlane w nieoczekiwanym formacie po odświeżeniu.

Jeśli ponownie opublikujesz raport z programu Power BI Desktop, kolumna Subscribed To Newsletter ponownie pokaże TRUE lub FALSE zgodnie z oczekiwaniami, ale po odświeżeniu w usłudze Power BI wartości zmienią się ponownie, aby pokazać -1 i 0.

Rozwiązaniem, które zapobiega tej sytuacji, jest ustawienie wszystkich kolumn logicznych w celu wpisania true/false w programie Power BI Desktop i ponowne opublikowanie raportu.

Zrzut ekranu przedstawiający zmianę typu danych kolumny na True/False.

Po zmianie wizualizacja wyświetla wartości w kolumnie Subskrybowany biuletyn nieco inaczej. Zamiast tekstu składającego się ze wszystkich wielkich liter, jak wprowadzono w tabeli, tylko pierwsza litera jest wielka. Ta zmiana jest jednym z wyników zmiany typu danych kolumny.

Zrzut ekranu przedstawiający różne wartości podczas zmiany typu danych.

Po zmianie typu danych ponownie opublikujesz do usługi Power BI i nastąpi odświeżenie, raport wyświetli wartości True lub Falsezgodnie z oczekiwaniami.

Zrzut ekranu pokazujący wartości True lub False, które używają typu danych Prawda/Fałsz, są wyświetlane zgodnie z oczekiwaniami po odświeżeniu.

Podsumowując, podczas pracy z danymi logicznymi w usłudze Power BI upewnij się, że kolumny są ustawione na typ danych True/False w programie Power BI Desktop.

Pusty typ

Pusty to typ danych języka DAX reprezentujący i zastępujący wartości null SQL. Pustą wartość można utworzyć przy użyciu funkcji BLANK, a następnie sprawdzić puste wartości przy użyciu funkcji logicznej ISBLANK.

Typ binarny

Możesz użyć typu danych binarnych , aby reprezentować dowolne dane w formacie binarnym. W Edytorze Power Query można użyć tego typu danych podczas ładowania plików binarnych, jeśli przekonwertujesz je na inne typy danych przed załadowaniem ich do modelu usługi Power BI.

Kolumny binarne nie są obsługiwane w modelu danych usługi Power BI. Wybór binarnych istnieje w menu Widok tabeli i Widok raportu ze względów zgodności z poprzednimi wersjami, ale jeśli spróbujesz załadować kolumny binarne do modelu Power BI, mogą wystąpić błędy.

Notatka

Jeśli kolumna binarna znajduje się w danych wyjściowych kroków zapytania, próba odświeżenia danych za pośrednictwem bramy może spowodować błędy. Zaleca się jawne usunięcie wszystkich kolumn binarnych jako ostatniego kroku zapytań.

Typ tabeli

DAX używa typu danych tabela w wielu funkcjach, takich jak agregacje i obliczenia inteligencji czasowej. Niektóre funkcje wymagają odwołania do tabeli. Inne funkcje zwracają tabelę, której można następnie użyć jako danych wejściowych do innych funkcji.

W niektórych funkcjach, które wymagają tabeli jako danych wejściowych, można określić wyrażenie, które daje w wyniku tabelę. Niektóre funkcje wymagają odwołania do tabeli podstawowej. Aby uzyskać informacje na temat wymagań określonych funkcji, zobacz odwołanie do funkcji DAX.

Niejawna i jawna konwersja typu danych

Każda funkcja języka DAX ma określone wymagania dotyczące typów danych, które mają być używane jako dane wejściowe i wyjściowe. Na przykład niektóre funkcje wymagają liczb całkowitych dla niektórych argumentów i dat dla innych. Inne funkcje wymagają tekstu lub tabel.

Jeśli dane w kolumnie określonej jako argument są niezgodne z typem danych, którego wymaga funkcja, DAX może zwrócić błąd. Jednak w miarę możliwości język DAX próbuje niejawnie przekonwertować dane na wymagany typ danych.

Na przykład:

  • Jeśli wpiszesz datę jako ciąg, język DAX analizuje ciąg i próbuje rzutować go jako jeden z formatów daty i godziny systemu Windows.
  • Możesz dodać true + 1 i uzyskać wynik 2, ponieważ język DAX niejawnie konwertuje true na liczbę 1i wykonuje operację 1+1.
  • Jeśli dodasz wartości w dwóch kolumnach z jedną wartością reprezentowaną jako tekst ("12") i drugą jako liczbę (12), język DAX niejawnie konwertuje ciąg na liczbę, a następnie wykonuje dodanie wyniku liczbowego. Wyrażenie = "22" + 22 zwraca 44.
  • Jeśli spróbujesz połączyć dwie liczby, język DAX traktuje je jako ciągi znaków, a potem je łączy. Wyrażenie = 12 & 34 zwraca "1234".

Tabele niejawnych konwersji danych

Operator określa typ konwersji wykonywanej przez DAX, rzutując wartości wymagane do wykonania żądanej operacji. W poniższych tabelach wymieniono operatory, a język DAX wykonuje konwersję na każdym typie danych podczas parowania z typem danych w przecinającej się komórce.

Notatka

Te tabele nie zawierają typu danych Text. Gdy liczba jest reprezentowana w formacie tekstowym, w niektórych przypadkach usługa Power BI próbuje określić typ liczbowy i reprezentować dane jako liczbę.

Dodawanie (+)

LICZBA CAŁKOWITA WALUTA PRAWDZIWY Data/godzina
INTEGER LICZBA CAŁKOWITA WALUTA PRAWDZIWY Data/godzina
waluty WALUTA WALUTA PRAWDZIWY Data/godzina
REAL PRAWDZIWY PRAWDZIWY PRAWDZIWY Data/godzina
data i godzina Data/godzina Data/godzina Data/godzina Data/godzina

Na przykład, jeśli operacja dodawania wykorzystuje liczbę rzeczywistą w połączeniu z danymi walutowymi, język DAX konwertuje obie wartości na rzeczywiste i zwraca wynik jako liczba rzeczywista.

Odejmowanie (-)

W poniższej tabeli nagłówek wiersza to minuend (lewa strona), a nagłówek kolumny jest odejmowany (po prawej stronie).

LICZBA CAŁKOWITA WALUTA PRAWDZIWY Data/godzina
INTEGER LICZBA CAŁKOWITA WALUTA PRAWDZIWY PRAWDZIWY
waluty WALUTA WALUTA PRAWDZIWY PRAWDZIWY
REAL PRAWDZIWY PRAWDZIWY PRAWDZIWY PRAWDZIWY
data/godzina Data/godzina Data/godzina Data i godzina Data i czas

Jeśli na przykład operacja odejmowania używa daty z dowolnym innym typem danych, DAX konwertuje obie wartości na daty, a zwracana wartość również jest datą.

Notatka

Modele danych obsługują operator jednoargumentowy - (minus), ale ten operator nie zmienia typu danych operandu.

Mnożenie (*)

LICZBA CAŁKOWITA WALUTA PRAWDZIWY Data/godzina
INTEGER LICZBA CAŁKOWITA WALUTA PRAWDZIWY LICZBA CAŁKOWITA
waluty WALUTA PRAWDZIWY WALUTA WALUTA
REAL PRAWDZIWY WALUTA PRAWDZIWY PRAWDZIWY

Jeśli na przykład operacja mnożenia łączy liczbę całkowitą z liczbą rzeczywistą, język DAX konwertuje obie liczby na liczby rzeczywiste, a wartość zwracana również jest rzeczywista.

Dzielenie (/)

W poniższej tabeli nagłówek wiersza jest licznikiem, a nagłówek kolumny jest mianownikiem.

LICZBA CAŁKOWITA WALUTA PRAWDZIWY Data/godzina
INTEGER PRAWDZIWY WALUTA PRAWDZIWY PRAWDZIWY
waluty WALUTA PRAWDZIWY WALUTA PRAWDZIWY
REAL PRAWDZIWY PRAWDZIWY PRAWDZIWY PRAWDZIWY
data/godzina PRAWDZIWY PRAWDZIWY PRAWDZIWY PRAWDZIWY

Jeśli na przykład operacja dzielenia łączy liczbę całkowitą z wartością waluty, język DAX konwertuje obie wartości na liczby rzeczywiste, a wynik jest również liczbą rzeczywistą.

Operatory porównania

W wyrażeniach porównań język DAX traktuje wartości logiczne jako wyższe od wartości tekstowych, a wartości tekstowe jako wyższe od wartości liczbowych lub daty/godziny. Liczby i wartości daty/godziny mają tę samą rangę.

Język DAX nie wykonuje żadnych niejawnych konwersji dla wartości logicznych ani dla ciągów tekstowych. WARTOŚĆ BLANK lub wartość pusta jest konwertowana na 0, ""lub False, w zależności od typu danych innej porównywanej wartości.

Następujące wyrażenia języka DAX ilustrują to zachowanie:

  • =IF(FALSE()>"true","Expression is true", "Expression is false") zwraca wartość "Wyrażenie jest prawdziwe".

  • =IF("12">12,"Expression is true", "Expression is false") zwraca wartość "Wyrażenie jest prawdziwe".

  • =IF("12"=12,"Expression is true", "Expression is false") zwraca wartość "Wyrażenie jest fałszywe".

Język DAX wykonuje niejawne konwersje dla typów liczbowych lub daty/godziny, jak opisano w poniższej tabeli:

Porównanie
Operator
LICZBA CAŁKOWITA WALUTA PRAWDZIWY Data/czas
INTEGER LICZBA CAŁKOWITA WALUTA PRAWDZIWY PRAWDZIWY
waluty WALUTA WALUTA PRAWDZIWY PRAWDZIWY
REAL PRAWDZIWY PRAWDZIWY PRAWDZIWY PRAWDZIWY
data/godzina PRAWDZIWY PRAWDZIWY PRAWDZIWY Data/godzina

Wartości puste, puste ciągi i wartości zerowe

Język DAX reprezentuje wartość null, pustą wartość, pustą komórkę lub brakującą wartość za pomocą tego samego nowego typu wartości, BLANK. Wartości puste można również wygenerować przy użyciu funkcji BLANK lub przetestować pod kątem pustych wartości przy użyciu funkcji ISBLANK.

Obsługa pustych wartości w operacjach, takich jak dodawanie lub łączenie, zależy od poszczególnych funkcji. W poniższej tabeli przedstawiono podsumowanie różnic między sposobem obsługi pustych formuł języka DAX i programu Microsoft Excel.

Wyrażenie DAX Excel
PUSTE + PUSTE PUSTY 0 (zero)
PUSTE + 5 5 5
PUSTE * 5 PUSTY 0 (zero)
5/PUSTE Nieskończoność Błąd
0/PUSTE NaN Błąd
PUSTE/PUSTE PUSTY Błąd
FAŁSZ LUB PUSTE FAŁSZYWY FAŁSZYWY
FAŁSZ I PUSTO FAŁSZYWY FAŁSZYWY
PRAWDA LUB PUSTA PRAWDZIWY PRAWDZIWY
TRUE I BLANK FAŁSZYWY PRAWDZIWY
PUSTE LUB PUSTE PUSTY Błąd
PUSTE I PUSTKA PUSTY Błąd

Za pomocą programu Power BI Desktop i danych możesz wykonywać różne czynności. Aby uzyskać więcej informacji na temat możliwości usługi Power BI, zobacz następujące zasoby: