---
schema_version: "1"
id: 307a2ca9713c7297e2eea7dc08c121b9b6d0ef9b70b0aa0081fcb3aa5c5ab156
title: 善加運用計算關係
collection: tableau
version: next
locale: zh-tw
portal_url: https://docs.salesforce.com/tableau/next/zh-tw/pro/desktop/datasource_dont_be_scared_calcs.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/zh-tw/datasource_dont_be_scared_calcs.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 4047336dca6a1e36b021ce2a830972eb6d6e304b47862523c12163f52dafdb45
description: Understand how calculations work in data sources that use relationships and table-level detail.
---
[跳至主要內容](#main-content)

# 善加運用計算關係

您可能會對計算感到有點膽怯。在使用關係的資料來源中進行計算看起來可能很可怕。但是不必害怕計算關係。

**附註**︰若對使用關係的資料來源背後的原理還不太了解，在深入探討本主題之前，請閱讀[善加運用關係](https://help.tableau.com/v0.0/pro/desktop/zh-tw/datasource_dont_be_scared.htm)可能會有所幫助。

## 計算類型

**列層級計算**是針對資料中的每一筆記錄進行運算的操作。例如，每筆銷售交易都具有銷售額，價格可能會依折扣百分比調整：`Price * (1- ZN([Discount]))`。此操作是針對每筆交易逐列運算，結果可視為在「銷售額」的資料來源中新增新欄。

另外還有**彙總計算**。彙總計算是在視覺效果的詳細層級進行計算，而且其值取決於檢視的結構而定。彙總計算的其中一個例子是「計數」。`Count([Title])` 的值取決於我們是按格式、作者，還是銷售日計數。

有關計算類型的詳情，請參閱[我們的部落格](https://www.tableau.com/about/blog/2019/9/understanding-how-tableau-calculation-types-work-together)。

## 資料表詳細層級

由於 Tableau 資料來源中的每一個資料表都可能有自己的詳細層級，因此，計算與哪個資料表相關聯有很大的影響。例如，過去在 Tableau 中（2020.2 之前版本，關係之前），可能會透過建立帶有常數值 `1` 的計算，並將其加總，來計算資料來源中的記錄數。`1` 已指派至資料來源中的每一列，因此，總和等於列數。

但是，現在該計算的值為 `1`。整個資料來源沒有全域詳細層級，而且常數計算位於「資料」窗格底部的未指派區域中。它有自己的詳細層級。總和 `1` 只是 `1`。

如先前所述，與資料表具有相同詳細層級的計算（通常是因為其包含資料表的欄位）屬於「資料」窗格中的資料表。例如，「名字」和「姓氏」的串連可取得在「作者」資料表中每位作者的全名（亦即，`[First Name] + " " + [Last Name]`）。

但是，如果我們在一個計算中使用多個資料表的欄位，則計算會移至「資料」窗格底部的未指派區域。這稱為跨表列層級計算；其需要對涉及的資料表進行列層級聯結，此操作可能會影響效能。（確保在關係的「效能選項」中設定正確的基數）。

## 指派詳細層級

由於資料表的詳細層級控制計算結果的代表涵義，因此，將計算放置在適當的資料表中相當重要。FIXED 詳細層級運算式可用於將計算提取至特定資料表。要固定運算式的欄位（[維度聲明](https://help.tableau.com/current/pro/desktop/zh-tw/calculations_calculatedfields_lod.htm#lod-expression-syntax)）決定結果的詳細層級。

### 範例：作者售書巡迴

**問：**每位作者參與多少售書巡迴活動？

**答：**此數字應該「屬於」每位作者，因此，應該前往作者表。

- **作者售書巡迴活動** = `{FIXED [Author Name] : SUM([Book Tour Events])}`
- （以淺顯易懂的語言來想，可以視為「對於每位作者，與其相關的售書巡迴活動總數」）

**問：** 有多少作者未進行任何售書巡迴？

**答：**可以嘗試看看以下計算，例如

- `COUNTD(IF ISNULL([Book Tour Events]) THEN ([Author Name]) END)`.
- （以淺顯易懂的語言來想，這可視為「如果售書巡迴活動為空，則會傳回作者姓名。計算每個唯一的作者姓名」）

但是，這是一個跨表列層級計算，因為「售書巡迴活動」來自「系列」表，而「作者姓名」來自「作者」表。這樣的跨表計算使用內部聯結，這表示當兩個資料表中沒有對應的值時，列會從聯結結果中捨棄。這又表示我們要求 Tableau 計算一些不存在的內容。但是，請注意，如果兩個欄位在同一個資料表中，這會是一個很好的方法。除了無法良好地發揮資料來源結構以外，目前的計算並沒有什麼問題。

相反地，我們需要指出每位作者是否出席售書巡迴活動，並將這些結果保留在「作者」表中。一旦每位作者標記為「參加售書巡迴」或「不參加售書巡迴」，我們即可計算出不舉辦售書巡迴的人數。

- **售書巡迴參與？**\= `IF {FIXED [Author Name]: COUNT([Book Tour Events])} = 0 THEN "No" ELSE "Yes" END`
- （換個淺顯易懂的方式來說，就是「針對每位作者，計算一下售書巡迴活動」的次數。如果該計數為零，則將作者標示為「否」，否則將其標示為「是」。藉由將欄位命名為「是否為售書巡迴參與者？」，「否」和「是」將會排成一列。）

現在，我們可以計算「否」的數量，並回答原始問題。

若我們的計算為**沒有售書巡迴的作者** = `IF [Book tour participant?]= "No" THEN ([Author Name]) END`，我們將會取得未進行售書巡迴的作者清單。（這可視為「針對『是否為售書巡迴參與者？』答案為否的每一位作者，列出該作者的姓名。」）

若我們的計算為 `COUNTD(IF [Book tour participant?]= "No" THEN ([Author Name]) END)`，我們將會取得一個數值答案，其位於資料窗格底部的未指派區域中。為何會這樣？因為此計算是彙總的。

**分紅問題：**

也可以直接使用「是否為售書巡迴參與者？」的計算結構來傳回作者姓名的清單。`IF {FIXED [Author Name]: COUNT([Book Tour Events])} = 0 THEN ([Author Name]) END` .此計算會放置在「資料」窗格中何處？為何會這樣？在您自己的 Tableau Desktop 副本中試試看，或[下載此工作簿](https://help.tableau.com/samples/en-us/bookshop/dontbescared_calcs.twbx)看看。（需要 Tableau Desktop 2020.2 或更高版本。進入工作簿後，按一下「資料」窗格中的計算，並選取「編輯」以開啟計算編輯器，然後在計算註解中查看說明。）

## 相關資源

感覺有點不知所措，想返回上一步？請嘗試閱讀[善加運用關係](https://help.tableau.com/v0.0/pro/desktop/zh-tw/datasource_dont_be_scared.htm)。

準備好繼續探索如何進行與關係有關的複雜分析了嗎？請參閱[善加運用更深入的關係](https://help.tableau.com/v0.0/pro/desktop/zh-tw/datasource_dont_be_scared_deeper.htm)。

若要直接從產品管理團隊取得有關關係技術基礎的詳情，請參閱 Tableau 部落格上有關關係的系列文章。

- [關係，第 1 部分：在 Tableau 中導入新的資料建模](https://www.tableau.com/about/blog/2020/5/relationships-part-1-meet-new-tableau-data-model)
- [關係，第 2 部分：提示和技巧](https://www.tableau.com/about/blog/2020/5/relationships-part-2-tips-and-tricks)
- [關係，第 3 部分：在多個關聯資料表中提問](https://www.tableau.com/about/blog/2020/6/relationships-part-3-asking-questions-across-multiple-related-tables)

另請參閱[「動作分析」](https://action-analytics.com/library/)中有關關係的影片播客，例如 [Tableau 為何發明關係？](https://action-analytics.com/ep-1-why-did-tableau-invent-relationships/)按一下[內容庫](https://action-analytics.com/library/)中的「影片播客」以查看更多資訊。