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 typ danych liczby KtoTo le, co lepiej nadaje się 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 w niektórych przypadkach nie. Jeśli na przykład funkcja języka DAX wymaga typu danych Date , 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 Edytor Power Query, w widoku danych lub w widoku raportu:

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

    Screenshot of the Power Query Editor, showing the Data type dropdown selection.

  • W widoku danych lub widoku raportu wybierz kolumnę, a następnie wybierz strzałkę listy rozwijanej obok pozycji Typ danych na karcie Narzędzia kolumn na wstążce.

    Screenshot of Data View, showing the Data type dropdown selection.

Wybór listy rozwijanej Typ danych w Edytor Power Query zawiera dwa typy danych, których nie ma w widoku danych lub widoku raportu: data/godzina/strefa czasowa i czas trwania. Podczas ładowania kolumny z tymi typami danych do modelu usługi Power BI kolumna Data/godzina/strefa czasowa konwertuje na typ danych Data/godzina , a kolumna Czas trwania konwertuje na typ danych liczba dziesiętna.

Typ danych binarnych nie jest obsługiwany poza Edytor Power Query. W Edytor Power Query można użyć typu danych binarnych 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 danych binarnych istnieje w menu Widok danych i Widok raportu ze starszych powodów, ale jeśli spróbujesz załadować kolumny binarne 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ętna i liczba KtoTo le.

Możesz użyć właściwości Tabelaryczny DataType model obiektów (TOM), aby określić DataType wyliczenia dla typów liczb. Aby uzyskać więcej informacji na temat programowego modyfikowania obiektów w usłudze Power BI, zobacz Program Power BI semantic models with the Tabular Object Model (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 (osiem bajtów) liczby zmiennoprzecinkowe z wartościami ujemnymi od -1,79E +308 do -2,23E -308, wartości dodatnie z 2,23E -308 do 1,79E +308 i 0. Liczby takie jak 34, 34.01 i 34.000367063 są prawidłowymi liczbami dziesiętnych.

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

Stałoprzecinkowa liczba dziesiętna

Typ danych Stałoprzecinkowa liczba dziesiętna ma stałą lokalizację separatora dziesiętnego. Separator dziesiętny zawsze ma cztery cyfry po prawej stronie i pozwala na 19 cyfr istotności. Największa wartość , którą może reprezentować stała liczba dziesiętna, jest dodatnia lub ujemna 922 337 203 685 477,5807.

Typ stałej liczby dziesiętnej jest przydatny w przypadkach, w których zaokrąglanie może powodować błędy. Liczby, które mają małe wartości ułamkowe, czasami mogą gromadzić się i wymuszać nieznacznie niedokładne liczby. Stały typ liczby dziesiętnej może pomóc uniknąć tego rodzaju błędów, obcinając wartości z czterech cyfr po prawej stronie separatora dziesiętnego.

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

Liczba całkowita

KtoTo le liczba reprezentuje 64-bitową (osiem bajtów) wartość całkowitą. Ponieważ jest to liczba całkowita, liczba KtoTo le nie ma cyfr po prawej stronie miejsca dziesiętnego. Ten typ umożliwia używanie 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), więc mogą reprezentować największą liczbę typów danych liczbowych.

Podobnie jak w przypadku typu Stałoprzecinkowa liczba dziesiętna, typ liczby KtoTo le może być przydatny, gdy trzeba kontrolować zaokrąglanie. Funkcja TOM reprezentuje typ danych liczby KtoTo le jako DataType.Int64 wyliczenie.

Uwaga

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 wizualizacji usługi Power BI może 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 typu danych liczba dziesiętna są przechowywane jako przybliżone typy danych zgodnie z 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 niemożliwość może wystąpić, jeśli wartość zmiennoprzecinkowa nie może niezawodnie określić liczby cyfr zmiennoprzecinkowych. Imprecision może być potencjalnie wyświetlany jako nieoczekiwane lub niedokładne wyniki obliczeń w niektórych scenariuszach raportowania.

Obliczenia porównania związane z równością między wartościami typu danych Liczba dziesiętna mogą potencjalnie zwracać nieoczekiwane wyniki. Porównania równości obejmują wartości równe =, większe niż , mniejsze niż <>, większe niż lub równe , i mniejsze niż 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 liczby dziesiętnej na stałą liczbę dziesiętną lub liczbę KtoTo le lub wykonać wymuszone zaokrąglenie przy użyciu funkcji ROUND. Typ danych Stałoprzecinkowa liczba dziesiętna ma większą precyzję, ponieważ separator dziesiętny zawsze ma cztery cyfry po prawej stronie.

Rzadko obliczenia sumujące wartości kolumny typu danych Liczba dziesiętna 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 Stałoprzecinkowa liczba dziesiętna lub liczba KtoTo le.

Typy daty/godziny

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

  • Data/godzina reprezentuje zarówno wartość daty, jak i godziny. Podstawowa wartość daty/godziny jest przechowywana jako typ liczby dziesiętnej, dzięki czemu można konwertować między dwoma typami. Część czasowa przechowuje jako ułamek do całych wielokrotności 1/300 sekund (3,33 ms). Typ danych obsługuje daty z zakresu od lat 1900 do 9999.

  • Data reprezentuje tylko datę bez części godziny. Data jest konwertowana na model jako wartość daty/godziny z wartością zero dla wartości ułamkowej.

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

  • Data/godzina/strefa czasowa reprezentuje datę/godzinę UTC z przesunięciem strefy czasowej i konwertuje na datę/godzinę podczas ładowania do modelu. Model usługi Power BI nie dostosowuje strefy czasowej na podstawie lokalizacji użytkownika, ustawień regionalnych itp. 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 konwertuje na typ liczba dziesiętna podczas ładowania do modelu. Jako typ liczba dziesiętna można dodawać lub odejmować wartości z wartości daty/godziny z poprawnymi wynikami i łatwo używać wartości w wizualizacjach, które pokazują wielkość.

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 bazowego aparatu Power Query usługi Power BI i limitów długości typów danych tekstowych . 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ć nieznaczną zmianę wyglądu danych tekstowych między wykonywaniem zapytań dotyczących danych w Edytor Power Query a ładowaniem ich do usługi Power BI.

Uwzględnij wielkość liter

Aparat, który przechowuje dane i wykonuje zapytania w usłudze Power BI, nie uwzględnia wielkości liter i traktuje różne litery jako tę samą wartość. Wartość "A" jest równa "a". Jednak w dodatku Power Query jest rozróżniana wielkość liter, gdzie "A" nie jest taka sama jak "a". Różnica w przypadku, gdy czułość może prowadzić do sytuacji, w których dane tekstowe zmieniają wielkość liter pozornie niewytłumaczalnie po załadowaniu do usługi Power BI.

W poniższym przykładzie przedstawiono dane zamówienia: kolumna OrderNo unikatowa dla każdego zamówienia oraz kolumna Adres, która pokazuje nazwę adresu wprowadzoną ręcznie w momencie zamówienia. Edytor Power Query pokazuje kilka zamówień z tym samym Nazwy adresów wprowadzone w systemie z różną kapitalizacją.

Screenshot of textual data with various capitalizations in Power Query

Po załadowaniu danych przez usługę Power BI wielkie litery zduplikowanych nazw na karcie Dane zmieniają się z oryginalnego wpisu w jeden z wariantów wielkich liter.

Screenshot that shows the textual data with changed capitalization after loading into Power BI.

Ta zmiana ma miejsce, ponieważ w Edytor Power Query jest uwzględniana wielkość liter, dlatego dane są wyświetlane dokładnie tak, jak przechowywane w systemie źródłowym. Aparat, który przechowuje dane w usłudze Power BI, nie uwzględnia wielkości liter, dlatego traktuje małe i wielkie wersje znaku jako identyczne. Dane dodatku Power Query załadowane do aparatu usługi Power BI mogą odpowiednio ulec zmianie.

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 Adres, aparat przechowuje słownik unikatowych wartości, aby poprawić wydajność poprzez kompresję danych. Aparat widzi pierwsze trzy wartości w kolumnie Addressee jako unikatowe i przechowuje je w słowniku. Następnie, ponieważ aparat jest niewrażliwy na wielkość liter, ocenia nazwy jako identyczne.

Aparat widzi nazwę "Taina Hasu" tak samo jak "TAINA HASU" i "Taina HASU", więc nie przechowuje tych odmian, ale odnosi się do pierwszej przechowywanej odmiany. Nazwa "MURALI DAS" pojawia się w wielkich literach, ponieważ nazwa pojawiła się po raz pierwszy podczas obliczania go przez aparat podczas ładowania danych od góry do dołu.

Ten obraz przedstawia proces oceny:

Diagram that shows the data load process and mapping text values to a dictionary of unique values.

W poprzednim przykładzie aparat usługi Power BI ładuje pierwszy wiersz danych, tworzy słownik adresowy i dodaje do niego hasu Taina. Aparat dodaje również odwołanie do tej wartości w kolumnie Adres w ładowanej tabeli. Aparat wykonuje to samo w przypadku drugiego i trzeciego wiersza, ponieważ te nazwy nie są równoważne innym podczas ignorowania wielkości liter.

W czwartym wierszu aparat 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.

Uwaga

Ponieważ aparat, który przechowuje dane i wykonuje zapytania w usłudze Power BI, nie uwzględnia wielkości liter, należy zachować szczególną ostrożność podczas pracy w trybie DirectQuery ze źródłem z uwzględnieniem wielkości 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 duplikatem, 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 Edytor Power Query.

Spacje wiodące i końcowe

Aparat usługi Power BI automatycznie przycina wszystkie końcowe spacje, które są zgodne z danymi tekstowymi, ale nie usuwa spacji wiodących poprzedzających dane. 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 spacji wiodących, utworzenie relacji może zakończyć się niepowodzeniem z powodu zduplikowanych wartości lub wizualizacje mogą zwracać nieoczekiwane wyniki.

Poniższy przykład przedstawia dane dotyczące klientów: kolumnę Nazwa zawierającą nazwę klienta i kolumnę Indeks , która jest unikatowa dla każdego wpisu. Nazwy są wyświetlane w cudzysłowie, aby uzyskać jasność. Nazwa klienta jest powtarzana cztery razy, ale za każdym razem z różnymi kombinacjami wiodących i końcowych spacji. Te odmiany mogą wystąpić w przypadku ręcznego wprowadzania danych w czasie.

Row Odstęp wiodący Spacja końcowa Nazwisko Indeks Text length
1 Nr Nie. "Dylan Williams" 1 14
2 Nie. Tak "Dylan Williams" 10 15
3 Tak Nie. " Dylan Williams" 20 15
100 Tak Tak " Dylan Williams " 40 16

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

Screenshot of textual data with various leading and trailing spaces in Power Query Editor.

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

Screenshot of the same textual data after loading into Power BI returns the same number of rows as before.

Jednak wizualizacja oparta na tych danych zwraca tylko dwa wiersze.

Screenshot of a table visual based on the same data returning just two lines of data.

Na powyższym obrazie pierwszy wiersz ma łączną wartość 60 dla pola Indeks , więc pierwszy wiersz w wizualizacji reprezentuje dwa ostatnie wiersze załadowanych danych. Drugi wiersz z całkowitą wartością indeksu wynoszącą 11 reprezentuje dwa pierwsze wiersze. Różnica w liczbie wierszy między wizualizacją a tabelą danych jest spowodowana automatycznym usunięciem lub przycinaniem spacji końcowych, ale nie spacjami wiodącymi. Aparat oblicza więc pierwsze i drugie wiersze, a trzeci i czwarty wiersz, tak samo, jak i 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:

Screenshot of an error message about duplicate values.

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

Screenshot of the relationship dialog showing a 'the cardinality you selected isn't valid for this relationship' error, which is related to duplicate values being detected.

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

Typ true/false

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 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ługa Power BI kolumna stan rejestracji biuletynu zawiera wartości 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:

Screenshot that shows columns set to Boolean.

Typ danych kolumny Subskrybowany biuletyn jest ustawiony na Dowolne, a w związku z tym usługa Power BI ładuje dane do modelu jako Tekst.

Screenshot showing the data loaded into 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ługa Power BI.

Screenshot of a visual that shows the data appearing as expected.

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

Screenshot of a visual that shows data appearing in an unexpected format after refresh.

Jeśli ponownie opublikujesz raport z programu Power BI Desktop, w kolumnie Subskrypcja biuletynu zostanie ponownie wyświetlona wartość TRUE lub FALSE zgodnie z oczekiwaniami, ale po odświeżeniu w usługa Power BI wartości ponownie zmienią się, aby pokazać wartość -1 i 0.

Rozwiązaniem, które zapobiega takiej sytuacji, jest ustawienie wszystkich kolumn logicznych na typ True/False w programie Power BI Desktop i ponowne opublikowanie raportu.

Screenshot of changing the data type of the column to True/False.

Gdy wprowadzisz zmianę, wizualizacja będzie wyświetlać wartości w kolumnie Subskrybowane biuletyny nieco inaczej. Zamiast tekstu zawierającego wszystkie wielkie litery, które zostały wprowadzone w tabeli, tylko pierwsza litera jest wielkich liter. Ta zmiana jest jednym z wyników zmiany typu danych kolumny.

Screenshot of values appearing differently when you change the data type.

Po zmianie typu danych ponownie opublikuj usługa Power BI i nastąpi odświeżenie, raport wyświetla wartości true lub False zgodnie z oczekiwaniami.

Screenshot that shows true or false values that use the True/false data type appear as expected after refresh.

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

Pusty typ

Pusty jest typem danych języka DAX reprezentującym i zastępującym wartości null SQL. Pustą wartość można utworzyć przy użyciu funkcji BLANK i przetestować pod kątem pustych 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 Edytor 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 binarny istnieje w menu Widok danych i Widok raportu ze starszych powodów, ale jeśli spróbujesz załadować kolumny binarne do modelu usługi Power BI, mogą wystąpić błędy.

Uwaga

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

Język DAX używa typu danych tabeli w wielu funkcjach, takich jak agregacje i obliczenia analizy 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 dokumentację funkcji języka 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, którą określisz jako argument, są niezgodne z typem danych wymaganym przez funkcję, język 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ć wartość TRUE + 1 i uzyskać wynik 2, ponieważ język DAX niejawnie konwertuje wartość TRUE na liczbę 1 i 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 wartość 44.
  • Jeśli spróbujesz połączyć dwie liczby, język DAX przedstawia je jako ciągi, a następnie łączy. Wyrażenie = 12 i 34 zwraca wartość "1234".

Tabele niejawnych konwersji danych

Operator określa typ konwersji języka DAX wykonywane przez rzutowanie wymaganych wartości przed wykonaniem żądanej operacji. W poniższych tabelach wymieniono operatory, a język DAX konwersji wykonuje na każdym typie danych podczas parowania z typem danych w komórce intersecting.

Uwaga

Te tabele nie zawierają typu danych Tekst . 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 PRAWDZIWE Data/godzina
LICZBA CAŁKOWITA LICZBA CAŁKOWITA WALUTA PRAWDZIWE Data/godzina
WALUTY WALUTA WALUTA PRAWDZIWE Data/godzina
PRAWDZIWE PRAWDZIWE PRAWDZIWE PRAWDZIWE Data/godzina
Data/godzina Data/godzina Data/godzina Data/godzina Data/godzina

Jeśli na przykład operacja dodawania używa liczby rzeczywistej w połączeniu z danymi walutowymi, język DAX konwertuje obie wartości na wartość REAL i zwraca wynik w postaci RZECZYWISTEj.

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 PRAWDZIWE Data/godzina
LICZBA CAŁKOWITA LICZBA CAŁKOWITA WALUTA PRAWDZIWE PRAWDZIWE
WALUTY WALUTA WALUTA PRAWDZIWE PRAWDZIWE
PRAWDZIWE PRAWDZIWE PRAWDZIWE PRAWDZIWE PRAWDZIWE
Data/godzina Data/godzina Data/godzina Data/godzina Data/godzina

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

Uwaga

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

Mnożenie (*)

LICZBA CAŁKOWITA WALUTA PRAWDZIWE Data/godzina
LICZBA CAŁKOWITA LICZBA CAŁKOWITA WALUTA PRAWDZIWE LICZBA CAŁKOWITA
WALUTY WALUTA PRAWDZIWE WALUTA WALUTA
PRAWDZIWE PRAWDZIWE WALUTA PRAWDZIWE PRAWDZIWE

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 PRAWDZIWE Data/godzina
LICZBA CAŁKOWITA PRAWDZIWE WALUTA PRAWDZIWE PRAWDZIWE
WALUTY WALUTA PRAWDZIWE WALUTA PRAWDZIWE
PRAWDZIWE PRAWDZIWE PRAWDZIWE PRAWDZIWE PRAWDZIWE
Data/godzina PRAWDZIWE PRAWDZIWE PRAWDZIWE PRAWDZIWE

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ównania język DAX uwzględnia wartości logiczne większe niż wartości ciągu, a wartości ciągu większe niż wartości liczbowe 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 ciągów. Wartość BLANK lub pusta wartość jest konwertowana na wartość 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 PRAWDZIWE Data/godzina
LICZBA CAŁKOWITA LICZBA CAŁKOWITA WALUTA PRAWDZIWE PRAWDZIWE
WALUTY WALUTA WALUTA PRAWDZIWE PRAWDZIWE
PRAWDZIWE PRAWDZIWE PRAWDZIWE PRAWDZIWE PRAWDZIWE
Data/godzina PRAWDZIWE PRAWDZIWE PRAWDZIWE 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ść według 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.

Sposób obsługi pustych operacji, 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.

Expression DAX Excel
PUSTE + PUSTE BLANK 0 (zero)
PUSTE + 5 5 5
PUSTE * 5 BLANK 0 (zero)
5/PUSTE Infinity Błąd
0/PUSTE NaN Błąd
PUSTE/PUSTE BLANK Błąd
FAŁSZ LUB PUSTY FAŁSZ FAŁSZ
FAŁSZ I PUSTE FAŁSZ FAŁSZ
PRAWDA LUB PUSTA PRAWDA PRAWDA
TRUE I BLANK FAŁSZ PRAWDA
PUSTE LUB PUSTE BLANK Błąd
PUSTE I PUSTE BLANK 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: