ALLNOBLANKROW

適用於:導出數據行計算數據表Measure視覺計算

從關聯性的父數據表,傳回 all 個數據列,但 blank 數據列,orall 數據行的不同 values,但 blank 數據列,and 忽略可能存在的任何內容 filters。

語法

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

參數

術語 定義
table 拿掉 all 內容 filters 的數據表。
column 拿掉 all 內容 filters 的數據行。

只有一個參數必須傳遞;參數是數據行 or 數據表。

傳回 value

當傳遞的參數是數據表時,當傳遞的參數是數據行時,orvalues的數據行。

言論

  • ALLNOBLANKROW 函式只會 filters 父數據表在關聯性中父數據表 blank 數據列時,子數據表中有一 or 個數據列與父數據行沒有相符 values。 如需完整說明,請參閱下列範例。

  • 下表摘要說明 DAX中提供的 ALL 變化,and 差異:

    函式 and 使用方式 描述
    ALL(Column) 從數據表中指定的數據行中移除 allfilters;all 數據表中的其他 filters,其他數據行仍適用。
    ALL(Table) 從指定的數據表中移除 allfilters。
    ALLEXCEPT(Table,Col1,Col2...) 覆寫數據表中 all 內容 filters,except 指定的數據行。
    ALLNOBLANK(table|column) 從關聯性的父數據表,傳回 all 數據列,但 blank 數據列,orall 數據行的不同 values,但 blank 數據列,and 會忽略可能存在的任何內容 filters

    如需 ALL 函式運作方式的一般描述,以及使用 ALL(Table) andALL(Column) 的逐步範例,請參閱 ALL 函式

  • 在匯出數據行中使用 or 數據列層級安全性 (RLS) 規則時,支援此函式 not 用於 DirectQuery 模式。

在 sample 數據中,ResellerSales_USD數據表 contains 一個沒有 valuesand 的數據列,因此無法 related 活頁簿內關聯性中的任何父數據表。 您會在數據透視表中使用此數據表,以便查看 blank 數據列行為,and 如何處理不相關的數據計數。

步驟 1:驗證不相關的數據

開啟 Power Pivot window,然後選取ResellerSales_USD數據表。 在 ProductKey 資料行中,filterblankvalues。 一個數據列會保留下來。 在該數據列中,SalesOrderLineNumber 應該 blankexceptall 數據行 values。

步驟 2:建立數據透視表

建立新的數據透視表,然後拖曳數據行 datetime。[CalendarYear],移至 [數據列卷標] 窗格。 下表顯示預期的結果:

數據列標籤
2005
2006
2007
2008
總計

請注意 2008 2008and總計之間的 blank 標籤。 這個 blank 卷標代表未知的成員,這是一個特殊群組,用來考慮子數據表中沒有任何相符 value 之子數據表中的任何 values,在此範例中為 datetime。[CalendarYear] 資料行。

當您在資料透視表中看到此 blank 標籤時,您知道在資料行日期時間 related 的某些數據表中。[CalendarYear],blankvaluesor 非相符 values。 父數據表是顯示 blank 標籤的數據列,但 not 相符的數據列位於一 or 多個子數據表中。

新增至此 blank 標籤群組的數據列 valuesnot 符合父數據表中任何 value,例如,not 存在於 datetime 數據表中的 date,or null values,表示在 alldate 沒有 value。 在此範例中,我們已將 blankvalue 放在子銷售數據表 all 數據行中。 父數據表中的 values 比子數據表中的 not 會造成問題。

步驟 3:使用 ALLNOBLANK ALLandCount 數據列

將下列兩個量值新增至 datetime 資料表,以 count 資料表數據列:Countrows datetime的 ALLNOBLANK,CountrowsALL datetime。 您可以用來 define 這些量值的公式如下:

DAX
// Countrows ALLNOBLANK of datetime  
= COUNTROWS(ALLNOBLANKROW('DateTime'))  
  
// Countrows ALL of datetime  
= COUNTROWS(ALL('DateTime'))  
  
// Countrows ALLNOBLANKROW of ResellerSales_USD  
= COUNTROWS(ALLNOBLANKROW('ResellerSales_USD'))  
  
// Countrows ALL of ResellerSales_USD  
= COUNTROWS(ALL('ResellerSales_USD'))  

在 blank 數據透視表上新增日期時間。[CalendarYear] 資料行至數據列標籤,and 然後新增新建立的量值。 結果看起來應該如下表:

數據列標籤 datetime 的 Countrows ALLNOBLANK datetime 的 CountrowsALL
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
總計 1280 1281

結果會顯示資料表資料列中 1 個資料列的差異,count。 不過,if 開啟 Power Pivot windowand 選取 datetime 數據表,您無法 find 數據表中任何 blank 數據列,因為這裡提到的特殊 blank 數據列是未知的成員。

步驟 4:確認 count 正確

為了證明 確實 任何真正 的數據列, 只處理父數據表上的特殊 數據列,請將下列兩個量值新增至ResellerSales_USD數據表:ResellerSales_USD的 ,ResellerSales_USD

建立新的數據透視表,and 拖曳數據行 datetime。[CalendarYear],移至 [數據列卷標] 窗格。 Now 新增您剛才建立的量值。 結果看起來應該如下所示:

數據列標籤 ResellerSales_USD的 CountrowsALLNOBLANKROW ResellerSales_USD的 CountrowsALL
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
總計 60856 60856

Now 兩個量值的結果相同。 這是因為 ALLNOBLANKROW 函式確實 notcount 數據表中的數據列 blank,但只會處理父數據表中產生的特殊案例 blank 數據列,而當關聯性中一 or 多個子數據表包含不相符 valuesorblankvalues時。

Filter 函式
ALL 函式
FILTER 函式