知識庫

使用屬性 (ATTR) 函數的時機


發佈時間 : 27 May 2014
上次修改日期 : 30 Nov 2023

問題

屬性 (ATTR) 函數的工作原理以及它與 MIN 或 SUM 之類的其他聚合的不同之處。

環境

Tableau Desktop

答案

ATTR() 表示多個值

ATTR() 彙總表示有多個值存在,但需要的值只有一個。

例如,混合兩個或多個資料來源時,次要資料來源的欄位將自動包含在 ATTR(),因為次要資料來源的欄位必須經過彙總。如果次要維度有多個值,則 ATTR(次要維度) 將在檢視中顯示星號,這部分在疑難排解資料混合:工作表中的星號顯示中已有詳細說明。

如果使用另一個彙總取代 ATTR(),那麼 Tableau Desktop 會顯示誤導資訊。例如 MIN(次要維度) 將顯示第一個維度值,而且無法確定次要資料來源中是否真的存在多個值。星號表示需要調整的關係或檢視。
 

運作方式

ATTR() 會比較基礎資料中每筆記錄的所有值,這些值會分組為檢視中的一部分(例如:長條、圓形、儲存格等等...),而且如果值都相同,ATTR() 將傳回該值,否則 ATTR() 將傳回星號。

公式最簡單的格式如下所示:
 
IF MIN ([dimension]) = MAX ([dimension]) THEN MIN ([dimension]) ELSE "*"  END

ATTR 函數將對欄位中的所有成員求值,如果 1) 只有一個值 (MIN = MAX),或者 2) 所有成員都相同 (MIN = MAX),則傳回 1;否則傳回 "*"。這可以解釋為 "有多個值"。

您可以透過新增應該觸發 ATTR 函數的條件,構建基本的 ATTR 函數,例如:
 
IF ISNULL ([dimension]) THEN NULL
ELSEIF MIN ([dimension]) = MAX ([dimension]) THEN MIN ([dimension])
ELSE "*" 
END

 
(使用您自己的維度來更新維度欄位 [維度]。)
 

ATTR() 的使用案例

  • 根據上述範例,ATTR() 可以表示次要資料來源有多個值存在
     
  • 新增到標記卡片上工具提示的維度會自動包含在 ATTR(),因為工具提示上的維度必須經過彙總。如果使用 MIN() 等其他彙總,則工具提示將顯示單一值,這樣可能會讓檢視者誤以為只有一個值。因此,ATTR() 將顯示一個星號,表示檢視或新增到工具提示中的值需要調整。請參閱工具提示中的星號顯示
     
  • ATTR() 跟其他彙總一樣,可將非彙總值變更為彙總值,以解決計算中的彙總錯誤。請參閱彙整計算編輯器中的錯誤訊息

    請注意,傳回數值資料的計算若包含 ATTR()(如果 ATTR() 中有多個值),則計算傳回的會是 NULL,不是星號。
     
  • ATTR() 可當作是保護資料不受變更的預防措施

限制

這篇文章是否解決了問題?