Funkcja VALUES
Zwraca jednokolumnową tabelę zawierającą unikatowe wartości z określonej tabeli lub kolumny. Innymi słowy, wartości zduplikowane są usuwane, a zwracane są tylko wartości unikatowe.
[!UWAGA]
Tej funkcji nie można używać do zwracania wartości do komórki ani kolumny w skoroszycie; używa się jej natomiast jako funkcji pośredniej, zagnieżdżonej w formule, w celu uzyskania listy odmiennych wartości, które mogą zostać zliczone albo użyte do przefiltrowania lub zsumowania innych wartości.
Składnia
VALUES(<TableNameOrColumnName>)
Parametry
Termin |
Definicja |
---|---|
Tabela lub kolumna |
Kolumna, z której mają zostać zwrócone unikatowe wartości. |
Wartość zwracana
Kolumna unikatowych wartości.
Uwagi
Jeśli funkcja VALUES jest używana w kontekście, który został przefiltrowany, takim jak tabela przestawna, filtr wpływa na wartości zwracane przez funkcję VALUES. Na przykład w przypadku filtrowania danych według regionów i zwracania listy wartości dla miast, na liście są uwzględniane wyłącznie miasta dozwolone przez filtr. Aby zostały zwrócone wszystkie miasta, niezależnie od istniejących filtrów, trzeba użyć funkcji ALL w celu usunięcia filtrów z tabeli. Drugi przykład ilustruje użycie funkcji ALL z funkcją VALUES.
Funkcje pokrewne
W większości scenariuszy wyniki funkcji VALUES są takie same jak wyniki funkcji DISTINCT. Obie funkcje usuwają duplikaty i zwracają listę możliwych wartości w kolumnie. Jednak funkcja VALUES może również zwracać nieznany element członkowski. Ta nieznana wartość jest przydatna w przypadkach, gdy trzeba wyszukać odmienne wartości z tabeli powiązanej, ale w jednej z tabel brakuje wartości używanej w relacji. W terminologii bazodanowej nazywa się to naruszeniem integralności referencyjnej. Niektóre niezgodności w danych mogą się łatwo pojawić, jeśli jedna z tabel zostanie zaktualizowana, a tabela powiązana nie.
W poniższej tabeli podsumowano niezgodności między danymi, które mogą wystąpić w dwóch powiązanych tabelach w przypadku niezachowania integralności referencyjnej.
Tabela MojeZamówienia |
Tabela MojaSprzedaż |
---|---|
Czerwiec 1 |
Sprzedaż w czerwcu 1 |
Czerwiec 2 |
Sprzedaż w czerwcu 2 |
(nie wprowadzono dat zamówień) |
Sprzedaż w czerwcu 3 |
W przypadku użycia funkcji DISTINCT w celu zwrócenia listy dat z tabeli przestawnej zawierającej te tabele zwracane są tylko dwie daty. Natomiast w przypadku użycia funkcji VALUES zwraca ona te same dwie daty oraz dodatkowy pusty element członkowski. Ponadto każdy wiersz z tabeli MojaSprzedaż, który nie ma pasującej daty w tabeli MojeZamówienia, jest „dopasowywany” do tego nieznanego elementu członkowskiego.
Przykład
Poniższa formuła zlicza unikatowe faktury (zamówienia sprzedaży) i tworzy następujące wyniki, gdy jest używana w raporcie zawierającym nazwy kategorii produktów:
Etykiety wierszy |
Liczba faktur |
---|---|
Accessories |
18,208 |
Bikes |
15,205 |
Clothing |
7,461 |
Suma końcowa |
27,659 |
=COUNTROWS(VALUES('InternetSales_USD'[SalesOrderNumber]))