Excel DAX - 篩選函式



DAX擁有強大的篩選函式,這與Excel函式大不相同。查詢函式的工作原理是使用表和關係,就像資料庫一樣。篩選函式允許您操作資料上下文以建立動態計算。

注意 - 返回表的DAX篩選函式不會將表新增到資料模型中。生成的表用作另一個DAX函式中的引數。也就是說,此類DAX函式用作其他DAX函式的巢狀函式。

在下一節中,您將學習可以使用哪些DAX篩選函式。有關這些函式的更多詳細資訊,請參閱本教程庫中的教程 - DAX 函式。

DAX篩選函式

以下是DAX篩選函式 -

序號 DAX函式及其功能?
1

ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>] …, <table>, <groupingColumn>, [<groupingColumn>] …, [filterTable] …)

如果專案組合尚不存在,則將多個列的專案組合新增到表中。新增哪些專案組合的確定是基於引用包含所有列可能值的源列。

要確定要評估的不同列的專案組合 -

  • 對於同一表中的列,應用AutoExist。
  • 跨不同表應用CrossJoin。
2

ALL ( {<table> | <column>, [<column>], [<column>], … })

返回給定表中的所有行或表中指定列中的所有值,忽略可能已應用的任何篩選器。

此函式可用於清除篩選器並在表中的所有行上建立計算。

3

ALLEXCEPT (<table>, <column>, [<column>], …)

刪除表中的所有上下文篩選器,但已應用於作為引數指定的列的篩選器除外。

與ALL相反,當您想要刪除表中許多(但不是全部)列上的篩選器時,可以使用此函式。

4

ALLNOBLANKROW (<table>|<column>)

從關係的父表返回 -

  • 所有行,但空行除外,或
  • 列的所有不同值,但空行除外

該函式會忽略可能存在的任何上下文篩選器。

5

ALLSELECTED ( [<tableName>|<columnName>] )

從當前查詢中的列和行中刪除上下文篩選器,同時保留所有其他上下文篩選器或顯式篩選器。

6

CALCULATE (<expression>, [<filter1>, <filter2> …)]

在由指定篩選器修改的上下文中評估表示式。

返回表示式的結果值。

7

CALCULATETABLE (<expression>, <filter1>, <filter2>, …)

在由給定篩選器修改的上下文中評估表表達式。

返回一個值表。

8

CROSSFILTER (<columnName1>, <columnName2>, <direction>)

指定用於存在於兩列之間的關係的計算中的交叉篩選方向。不返回值。

9

DISTINCT (<column>)

返回一個包含指定列中不同值的單列表。換句話說,重複值將被刪除,並且只返回唯一值。

生成的列用作另一個DAX函式中的引數。

10

EARLIER (<column>, <number>)

返回指定列在提到的列(由數字指定)的外部計算過程中的當前值。

11

EARLIEST (<column>)

返回指定列在指定列的外部計算過程中的當前值。

12

FILTER (<table>, <filter>)

返回一個僅包含已篩選行的表。

FILTER僅用作嵌入在需要表作為引數的其他函式中的函式。

13

FILTERS (<columnName>)

返回直接應用於columnName作為篩選器的值。

FILTERS僅用作嵌入在需要表作為引數的其他函式中的函式。

14

HASONEFILTER (<columnName>)

當columnName上直接篩選的值數量為一時返回TRUE。否則,返回FALSE。

15

HASONEVALUE (<columnName>)

當columnName的上下文僅被篩選到一個唯一值時返回TRUE。否則,返回FALSE。

16

ISCROSSFILTERED (<columnName>)

當columnName或同一表或相關表中的另一列被篩選時返回TRUE。

17

ISFILTERED (<columnName>)

當columnName被直接篩選時返回TRUE。如果列上沒有篩選器,或者由於同一表中或相關表中的不同列被篩選而導致篩選,則該函式返回FALSE。

18

KEEPFILTERS (<expression>)

修改在評估CALCULATE或CALCULATETABLE函式時應用篩選器的方式。

19

RELATED (<column>)

返回來自另一個表的相關值。

20

RELATEDTABLE (<tableName>)

在由給定篩選器修改的上下文中評估表表達式。

21

SUBSTITUTEWITHINDEX (<table>, <indexColumnName>, <indexColumnTable>, <orderBy_expression>, [<order>])

返回一個表示作為引數提供的兩個表的左半連線的表。

半連線是透過使用公共列(由公共列名和公共資料型別確定)執行的。

正在連線的列將被替換為返回表中的單個列,該列的型別為整數,幷包含索引。

索引是給定指定排序順序的右連線表的引用。

22

USERELATIONSHIP ( <columnName1>,<columnName2>)

指定在特定計算中要使用的關係,作為columnName1和columnName2之間存在的關係。

23

VALUES (<TableNameOrColumnName>)

返回一個包含指定表或列中不同值的單列表。

換句話說,重複值將被刪除,並且只返回唯一值。

廣告