Excel DAX - błędy formuł
Podczas pisania mogą pojawiać się błędy DAX formulasze złą składnią. Pola obliczeniowe i kolumny obliczeniowe mogą zawierać funkcje języka DAX, które wymagają określonego typu argumentów. Argumentami funkcji języka DAX mogą być tabele, kolumny lub inne funkcje języka DAX (zagnieżdżone funkcje języka DAX). Ponieważ funkcje języka DAX mogą zwracać tabele i kolumny, należy zwrócić uwagę, aby sprawdzić, czy do funkcji języka DAX przekazywane są argumenty odpowiedniego typu.
Błędy formuł języka DAX mogą być błędami składniowymi lub semantycznymi. Błędy mogą wystąpić w czasie projektowania lub w czasie wykonywania.
W tym rozdziale dowiesz się o niektórych typowych błędach języka DAX, ich przyczynach i sposobach naprawiania tych błędów.
Błąd języka DAX: przerwano obliczenia
Poniższy błąd może wystąpić podczas próby utworzenia (w czasie projektowania) lub użycia (w czasie wykonywania) pola obliczeniowego z funkcją analizy czasowej języka DAX. W każdym przypadku nieciągłe zakresy dat są przekazywane do funkcji analizy czasu.
„Błąd języka DAX: PRZERWANO OBLICZANIE: MdxScript (wystąpienie) (00, 0) Funkcja„ DATEADD ”działa tylko w przypadku ciągłych wyborów dat”.
Przyczyna w czasie wykonywania
Ten błąd może zostać wyświetlony, gdy pole obliczeniowe z funkcją analizy czasowej języka DAX zostanie umieszczone w obszarze WARTOŚCI tabeli przestawnej, a pola dat, takie jak miesiąc lub kwartał, zostaną wybrane jako fragmentatory lub filtry przed wybraniem roku. Na przykład, jeśli masz dane z trzech lat - 2014, 2015 i 2016 i próbujesz użyć tylko miesiąca marzec bez zaznaczania pola Year, wówczas wartości nie są ciągłymi wartościami danych i wystąpi błąd.
Jak naprawić błąd w czasie wykonywania?
W powyższym przykładzie
Najpierw dodaj rok jako fragmentator lub filtr i wybierz rok.
Następnie dodaj miesiąc lub kwartał jako fragmentator lub filtr.
Następnie wybierz jeden lub więcej miesięcy lub kwartałów, aby podzielić lub przefiltrować wybrany rok.
Przyczyna w czasie projektowania
Funkcje analizy czasowej języka DAX wymagają kolumny daty określonej dla argumentu daty. Kolumna dat musi zawierać ciągły zakres dat. Ten błąd może zostać zwrócony, jeśli w co najmniej jednym wierszu kolumny daty znajduje się wartość daty, która nie jest ciągła z wartościami danych w poprzednich i kolejnych wierszach.
Jeśli zaimportowałeś tabelę zawierającą daty ze źródła danych, pamiętaj, że wiele organizacji uruchamia specjalne procesy, które skanują tabele w bazach danych pod kątem nieprawidłowych wartości i zastępują je określoną wartością. Oznacza to, że w przypadku znalezienia nieprawidłowej daty przypisywana jest do niej konkretna wartość daty, która może nie być ciągła z innymi wartościami danych w kolumnie.
Jak naprawić ten błąd w czasie projektowania?
Wykonaj następujące czynności, aby naprawić błąd w czasie projektowania -
Jeśli tabela dat jest importowana ze źródła danych, użyj opcji Odśwież w oknie dodatku Power Pivot, aby ponownie zaimportować wszelkie zmiany znalezione w źródle.
Sprawdź wartości w kolumnie daty, aby upewnić się, że są w ciągłej kolejności. Jeśli okaże się, że jakaś wartość nie istnieje, należy ją poprawić u źródła, a tabela dat będzie musiała zostać odświeżona.
Utwórz oddzielną tabelę dat i kolumnę dat w modelu danych. Określ nową kolumnę daty jako argument daty w formule powodującej błąd. Tabele dat można łatwo tworzyć i dodawać do modelu danych.
Błąd semantyczny języka DAX - przykład
Poniższy błąd języka DAX jest błędem semantycznym -
„Funkcja„ CALCULATE ”została użyta w wyrażeniu prawda-fałsz, które jest używane jako wyrażenie filtru tabeli. To jest niedozwolone ”.
Przyczyna
Ten błąd może wystąpić, gdy nie można użyć co najmniej jednego wyrażenia filtru w kontekście pola obliczeniowego lub wyrażenia kolumny obliczeniowej.
W większości przypadków ten błąd jest spowodowany wyrażeniem filtru określonym jako argument funkcji DAX CALCULATE. Funkcja CALCULATE wymaga filtrów zdefiniowanych jako wyrażenie boolowskie lub wyrażenie tabeli.
Jak naprawić takie błędy?
Możesz naprawić takie błędy, używając funkcji FILTR języka DAX w celu zdefiniowania filtrów jako wyrażenia tabeli, którego można następnie użyć jako argumentu funkcji DAX CALCULATE.