When a column name is given, returns a single column table of unique values. When a table name is given, returns a table with the same columns and all the rows of the table (including duplicates) with the additional blank row if present.
A column name or a table name.
A column of unique values if the parameter is a single column.
If the parameter is a table expression, the result has the same columns and do not remove duplicated rows.
VALUES is similar to DISTINCT, but it can have an additional blank row in case the table has at least one one-to-many relationship with other tables where there is a violation of referential integrity.
Learn more about VALUES in the following articles:
Physical and Virtual Relationships in DAX
DAX calculations can leverage relationships present in the data model, but you can obtain the same result without physical relationships, applying equivalent filters using specific DAX patterns. This article show a more efficient technique to apply virtual relationships in DAX… » Read more
Using ALLEXCEPT versus ALL and VALUES
This article describes the semantic difference between ALLEXCEPT and the joint use of ALL and VALUES, showing practical examples of the different results in Power BI and SSAS 2016. » Read more
Blank row in DAX
There are two functions in DAX that return the list of values of a column: VALUES and DISTINCT. This article describes the difference between the two, explaining the details of the blank row added to tables for invalid relationships. » Read more
Other related functions are:
Contributors: Alberto Ferrari, Marco Russo
MSDN documentation: https://docs.microsoft.com/en-us/dax/values-function-dax