資料模型中資料表之間的關聯

附註:  我們想要以您的語言,用最快的速度為您提供最新的說明內容。 本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。讓這些內容對您有所幫助是我們的目的。希望您能在本頁底部告訴我們這項資訊是否有幫助。 此為 英文文章 出處,以供參考。

您的瀏覽器不支援視訊。請安裝 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。
影片:Power View 和 PowerPivot 中的關聯

影片:Power View 和 PowerPivot 中的關聯

影片:Power View 和 PowerPivot 中的關聯

影片: Power View 和 Power Pivot 中的關聯

新增至您的資料分析更多 power amogn 不同資料表建立關聯。關聯性是包含資料的兩個資料表之間的連線: 每個資料表中的一欄是關聯的基礎。若要查看資料庫關聯圖很有用的原因,假設您在您的企業中追蹤客戶訂單的資料。您可以追蹤單一資料表,無法像這樣的結構中的所有資料:

客戶識別碼

名稱

電子郵件

折扣率

訂單識別碼

訂單日期

產品

數量

1

羅書成

chris.ashton@contoso.com

.05

256

2010-01-07

輕薄型數位相機

11

1

羅書成

chris.ashton@contoso.com

.05

255

2010-01-03

SLR 相機

15

2

康邁可

michal.jaworski@contoso.com

.10

254

2010-01-03

經濟型攝影機

27

這個方法會有效,但需要儲存大量重複的資料,例如每筆訂單的客戶電子郵件地址。儲存空間成本低廉,但如果電子郵件地址變更,您必須確實更新該客戶資料中的每個資料列。此問題的解決方案之一,是將資料分割成多個資料表,並定義這些資料表之間的關係。這是 SQL Server 等關聯式資料庫中使用的方法。例如,您匯入的資料庫可能會使用三個 相關資料表來表示訂單資料:

客戶

客戶識別碼

名稱

電子郵件

1

羅書成

chris.ashton@contoso.com

2

康邁可

michal.jaworski@contoso.com

客戶折扣

[客戶識別碼]

折扣率

1

.05

2

.10

訂單

[客戶識別碼]

訂單識別碼

訂單日期

產品

數量

1

256

2010-01-07

輕薄型數位相機

11

1

255

2010-01-03

SLR 相機

15

2

254

2010-01-03

經濟型攝影機

27

資料模型中存在的關聯性,明確地建立,或同時匯入多個表格時,Excel 會自動建立代表您。您也可以建立或管理模型使用Power Pivot增益集。如需詳細資訊,請參閱建立 Excel 中的資料模型

如果您使用 Power Pivot 增益集從相同資料庫匯入資料表,Power Pivot 即可根據 [方括號] 中的資料行來偵測資料表之間的關聯性,而且可以在幕後建立的資料模型中重現這些關聯性。如需詳細資訊,請參閱本文中的自動偵測和推斷關聯。如果從多個來源匯入資料表,則可依照建立兩個表格之間的關聯一文所述,手動建立關聯性。

關聯性根據每個資料表中含有相同資料的資料行。例如,您可能會關聯如果每個 [訂單] 資料表的客戶資料表包含儲存客戶識別碼的欄。在範例中,資料行名稱相同,但這並非必要。一個可能客戶編號] 和 [其他 CustomerNumber,只要在 [訂單] 資料表中的資料列的所有包含也會儲存在 [客戶] 資料表中的識別碼。

在關聯式資料庫中,有許多種類型的索引鍵。索引鍵通常是特殊屬性的資料行。了解每個索引鍵的目的,可協助您管理多重資料表的資料模型,可提供資料至樞紐分析表、 樞紐分析圖或 Power View 報表。

雖然有多種類型的索引鍵,這些是最重要的我們的目的:

  • 主索引鍵:唯一識別資料表,例如 [客戶] 資料表中的[客戶編號]中的資料列。

  • 其他索引鍵 (或候選鍵):以外都是唯一的主索引鍵資料行。例如,員工識別碼和社會安全號碼,兩者都是唯一,可能會儲存員工] 資料表。

  • 外部索引鍵:指的是唯一的資料行,例如[客戶編號]資料行會參照到 [客戶] 資料表中的 [訂單] 資料表中的另一個資料表中的資料行。

在資料模型,主索引鍵或其他索引鍵被指相關資料行。如果表格的同時主要及其他按鍵,您可以使用其中之一為基礎的資料表關聯。外部索引鍵被指的來源資料行或只的資料行。在此範例中,會之間 (欄) 中的 [訂單] 資料表中的「 客戶識別碼 」「 客戶識別碼 」 (查閱欄) 中的 [客戶] 資料表中定義關聯性。如果您匯入資料關聯式資料庫,依預設 Excel 選擇一個資料表的外部索引鍵和對應的主索引鍵資料表。不過,您可以使用任何欄都有唯一值的查閱欄。

客戶和順序之間的關係是一對多關聯。每一位客戶可以有多個訂單,但順序不能有多名客戶。另一個重要的資料表關聯是一對一。在以下範例, CustomerDiscounts資料表,其中定義單一的折扣率每位客戶,會有 [客戶] 資料表與一對一關聯。

下表顯示三個資料表 (客戶、 CustomerDiscounts] 及 [訂單) 之間的關聯:

關聯

類型

查閱資料行

資料行

客戶-客戶折扣

一對一

客戶.客戶識別碼

客戶折扣.客戶識別碼

客戶-訂單

一對多

客戶.客戶識別碼

訂單.客戶識別碼

附註:  資料模型中不支援多對多關聯。多對多關聯的範例之一是產品和客戶之間的直接關係,客戶可以購買許多產品,且相同產品可以供許多客戶購買。

在建立任何關聯性之後,Excel 通常必須重新計算新建立的關聯性中使用資料行資料表的任何公式。處理可能需要一些時間,視的資料量和關聯的複雜程度而定。如需詳細資訊,請參閱重新計算公式

資料模型可以有多個兩個資料表之間的關聯。若要建立正確的計算,Excel 會需要到下一個資料表單一路徑。因此,只有一個每一對資料表之間的關聯,一次為作用中。雖然其他人會停用,您可以指定公式和查詢中的非作用中的關聯。

在圖表檢視中作用中的關聯實線,而非使用中的虛線。例如,必須使用 AdventureWorksDW2012,在資料表為 [DimDate包含資料行, DateKey,相關資料表FactInternetSales的三個不同資料行的: [訂單日期]、 [DueDate] 及[出貨日期。[DateKey 和訂單日期之間作用中的關聯時,這是公式中的預設關係,除非您特別指定。

當符合以下條件時可以建立關聯:

準則

描述

每個資料表的唯一識別碼

每個資料表必須具有可唯一識別該資料表中每個資料列的單一資料行。此資料行通常稱為主索引鍵。

唯一查閱資料行

查閱資料行中的資料值必須是唯一的。換句話說,資料行不能包含重複的值。在資料模型中,Null 和空白字串相當於空白,這是獨特的資料值。這表示,您無法在查閱欄中有多個 Null。

相容的資料類型

在來源欄和查閱欄的資料類型必須相容。如需有關資料類型的詳細資訊,請參閱支援的資料模型中的資料類型

在資料模型中,如果索引鍵是複合索引鍵,則您無法建立資料表關聯。您也只能建立一對一和一對多關聯。不支援其他關聯類型。

複合索引鍵和查閱欄

複合索引鍵被由多個資料行。資料模型無法使用複合索引鍵: 資料表必須永遠具有唯一識別資料表中的每個資料列的一個資料行。如果您匯入複合索引鍵為根據的現有關聯資料表的 Power Pivot 中的 [資料表匯入精靈會忽略該關聯性,因為它不能建立模型中。

若要建立具有多個資料行定義的主要和外部索引鍵的兩個資料表之間的關聯,您必須先將合併建立關聯性之前,先建立單一資料行的值。匯入資料,或藉由使用 Power Pivot 資料模型中建立計算結果的欄增益集,您可以執行此動作。

多對多關聯

資料模型不能有多對多關聯性。您只要無法新增聯合資料表模型中。不過,您可以使用模型多對多關聯的 DAX 函數。

自我聯結與迴圈

資料模型中不允許使用自我聯結。自我聯結是指資料表及其本身之間的遞迴關係。自我聯結通常是用來定義父/子階層。例如,您可以將 [員工] 資料表聯結至其本身,產生顯示業務管理鏈的階層。

Excel 不允許在 活頁簿中的關聯間建立迴圈。換句話說,下列關聯組合是禁止的。

資料表 1 的資料行 a  至 資料表 2 的資料行 f    

資料表 2 的資料行 f  至 資料表 3 的資料行 n    

資料表 3 的資料行 n  至 資料表 1 的資料行 a    

如果您嘗試建立的關聯會建立迴圈,則會產生錯誤。

使用 Power Pivot 增益集匯入資料的其中一個優點就是 Power Pivot 有時可以偵測關聯,並在它於 Excel 中建立的資料模型內建立新的關聯。

當您匯入多個資料表時,Power Pivot 會自動偵測資料表之間的任何現有關聯性。而且,當您建立樞紐分析表時,Power Pivot 也會分析資料表中的資料。它會偵測尚未定義的可能關聯性,而且會建議應包含在這些關聯性中的適當資料行。 

偵測演算法會使用資料行之值和中繼資料的相關統計資料,來推斷關聯的機率。

  • 所有相關資料行中的資料類型應該相容。自動偵測僅支援整數及文字資料類型。如需資料類型的詳細資訊,請參閱資料模型中支援的資料類型。

  • 要成功偵測關聯,查閱資料行中的唯一索引鍵數目必須大於「多」端資料表中的值。也就是說,關聯中「多」端的索引鍵資料行不能包含任何查閱資料表索引鍵資料行中不存在的值。例如,假設您有一個資料表,其中列出產品及產品識別碼 (查閱資料表);另有一個銷售資料表,其中列出每項產品的銷售 (關聯中的「多」端)。如果您的銷售記錄包含在 [產品] 資料表中沒有對應識別碼的產品識別碼,就無法自動建立關聯,但您可能可以手動加以建立。若要讓 Excel 偵測關聯,您需要先以遺失的產品識別碼更新 [產品] 查閱資料表。

  • 請確定多端索引鍵資料行的名稱與查閱表格中的索引鍵資料行名稱相似。不需要要完全相同的名稱。例如,在公司設定,您通常變化上有資料基本上相同的資料行名稱:列出 Emp 識別碼、 員工、 員工識別碼 EMP_ID,等等。演算法會偵測類似的名稱,並將較高的機率指派給這些資料行具有類似或完全相符的名稱。因此,若要增加建立關聯的機率,您可以嘗試重新命名您匯入您現有的資料表中以類似的資料行的資料中的資料行。如果 Excel 找到多個可能的關聯性,然後它不會建立關聯。

這項資訊可以幫助您入解為何無法偵測到所有關聯,或是中繼資料 (例如欄位名稱和資料類型) 的變更能夠如何提升自動關聯偵測的結果。如需詳細資訊,請參閱關聯疑難排解

命名集的自動偵測

不會自動偵測樞紐分析表中命名集和相關欄位之間的關聯。您可以手動建立這些關聯。如果您想要使用自動關聯偵測,請移除各個命名集,並直接從命名集將個別欄位新增到樞紐分析表。

推斷關聯

在某些情況下,資料表間的關聯會自動鏈結。例如,如果您在以下前兩組資料表之間建立關聯,就會推斷另外兩個資料表之間也有關聯,然後自動建立關聯。

產品和類別 -- 手動建立

產品和子類別 -- 手動建立

產品和子類別 -- 推斷出關聯

若要自動鏈結關聯,關聯必須是單向的,如上所示。例如,如果 [銷售] 和 [產品] 以及 [銷售] 和 [客戶] 之間存在初始關聯,則不會推斷關聯。這是因為 [產品] 和 [客戶] 之間的關聯是多對多關聯。

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×