Share via


ALLNOBLANKROW

適用於:匯出數據行匯出數據表量值視覺計算

從關聯性的父資料表傳回空白資料列以外所有資料列,或資料行的所有相異值 (空白資料列除外),並忽略可能存在的任何內容篩選。

語法

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

參數

詞彙 [定義]
table 已移除所有內容篩選的資料表。
column 已移除所有內容篩選的資料行。

只有一個參數必須傳遞,該參數可以是資料表或資料行。

傳回值

當傳遞的參數是資料表,或值的資料行時,即為資料表。

備註

  • 當關聯性中的父資料表在子資料表中具有一或多個資料列,且這些資料列具有與父資料行不相符的值時,則 ALLNOBLANKROW 函式只會篩選父資料表將顯示的空白資料列。 如需完整說明,請參閱下列範例。

  • 下表摘要說明提供於 DAX 中的所有變化,以及這些變化的差異:

    函式和使用方式 描述
    ALL(Column) 從資料表中指定的資料行移除所有篩選條件;資料表中其他資料行的所有其他篩選條件仍適用。
    ALL(Table) 從指定的資料表移除所有篩選條件。
    ALLEXCEPT(Table,Col1,Col2...) 覆寫資料表中的所有內容篩選 (指定的資料行除外)。
    ALLNOBLANK(table|column) 從關聯性的父資料表傳回所有資料列 (空白資料列以外),或傳回資料行的所有相異值 (空白資料列除外),並忽略可能存在的任何內容篩選

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

  • 在計算結果欄或資料列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。

範例

在範例資料中,ResellerSales_USD 資料表包含一個不具任何值的資料列,因此無法與活頁簿內關聯性中的任何父資料表相關聯。 您將在樞紐分析表中使用此資料表,以便查看空白資料列的行為,以及如何處理不相關資料的計數。

步驟 1:驗證不相關的資料

開啟 [Power Pivot] 視窗,然後選取 [ResellerSales_USD] 資料表。 在 ProductKey 資料行中篩選空白值。 會有一個資料列保留下來。 在該資料列中,除了 SalesOrderLineNumber 以外,所有資料行值都應該是空白的。

步驟 2:建立樞紐分析表

建立新的樞紐分析表,然後將 datetime.[日曆年度] 資料行拖曳到 [資料列標籤] 窗格。 下表顯示預期的結果:

資料列標籤
2005
2006
2007
2008
總計

請注意 2008總計之間的空白標籤。 此空白標籤表示未知的成員,這是特殊群組,用於說明與父資料表中值全部不相符的子資料表值,在此範例中為 datetime.[日曆年度] 資料行。

當在樞紐分析表中看到此空白標籤時,您即會知道在與 datetime.[日曆年度] 資料行相關的某些資料表中,存在空白值或不相符的值。 父資料表是顯示空白標籤的資料行,但不符合的資料列會在一或多個子資料表中。

新增至此空白標籤群組的資料列,可能是與父資料表中任何值都不相符的值 (例如,不存在於日期時間資料表中的日期) 或 null 值,其表示沒有任何日期值。 在此範例中,我們已在子銷售資料表內的所有資料行中都放置了一個空白值。 即使父資料表中比子資料工作表中的值還多,也不會造成問題。

步驟 3:使用 ALL 和 ALLNOBLANK 來計算資料列數目

將下列兩個量值加入至日期時間資料表來計算資料表資料列數目:Countrows ALLNOBLANK of datetime, Countrows ALL of datetime。 您可以用來定義這些量值的公式如下:

// 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'))  

在空白的樞紐分析表上將 datetime.[日曆年度] 資料行新增至資料列標籤,然後新增新建立的量值。 結果看起來應該會如下表所示:

資料列標籤 日期時間的 Countrows ALLNOBLANK 日期時間的 Countrows ALL
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
總計 1280 1281

結果會顯示資料表資料列計數中的 1 個資料列差異。 不過,如果您開啟 [Power Pivot] 視窗並選取日期時間資料表,即無法在資料表中找到任何空白資料列,因為此處所述的特殊空白資料列是未知成員。

步驟 4:驗證計數正確

為了證明 ALLNOBLANKROW 不會算入任何真正空白的資料列,並只處理父資料表上的特殊空白資料列,請將下列兩個量值加入到 ResellerSales_USD 資料表:Countrows ALLNOBLANKROW of ResellerSales_USD, Countrows ALL of ResellerSales_USD

建立新的樞紐分析表,然後將 datetime.[日曆年度] 資料行拖曳到 [資料列標籤] 窗格。 現在,新增您剛剛建立的量值。 結果看起來應該會如下所示:

資料列標籤 ResellerSales_USD 的 Countrows ALLNOBLANKROW ResellerSales_USD 的 Countrows ALL
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
總計 60856 60856

現在這兩個量值具有相同的結果。 這是因為 ALLNOBLANKROW 函式不會將資料表中真正空白的資料列納入計數,而是只有當關聯性中一或多個子資料表包含不相符的值或空白值時,才會處理父資料表中在特殊情況下所產生的空白資料列。

篩選函式
ALL 函式
FILTER 函式