Power BI 的「關聯」是一個非常方便的功能,可以將我們散落在各個資料來源(n個資料表、EXCEL...)等有的相關資料做連結,如此一來在製作報表時就可以很方便地將各自的資料一同呈現。但有些時候你就是會碰到,怎麼樣都關聯不起來的錯誤情況,特別是一對一關聯,這時候就可以用下面這個技巧。
一、Power BI 簡單介紹關聯
以下是簡單用 Excel做的範例,假設我們有兩個表一和二,用肉眼很簡單的可以看到,因為編號相同,所以001 王曉明 的收入是 500。
當使用 Power BI建立好關聯的時候,可以在關聯畫面看到下面的視覺呈現,因為是一對一所以兩個表的連結處都是 1。
接著可以在報表頁面建立如下圖的結果。在沒有關聯的情況下,你無法把來自不同的表正確的拉到一個視覺效果中作呈現。
從上面的例子中,可以很簡單的理解關聯的作用方式。
當然關聯有一對一、多對一、多對多...等不同的關聯方式,這裡就不多談,因為在 Power BI中一個讓人困擾的地方是有些時候關聯不起來,但就是不知道資料出了什麼問題。
特別是當最近在做百萬筆資料的時候,根本無法快速的查出到底是哪一個表的資料出問題,特別是我要使用的是一對一的關聯方式,也透過去除重複資料、分組資料的方式「自己100%確定」一對一的資料沒有問題,完全沒想到,原來 POWER BI跟我想的不一樣...
二、關聯不起來的檢查技巧
如果你也遇到自己確信資料一定沒有問題的時候,兩邊肯定都是獨立且唯一的 KEY時,可以試試看下面的方法來找到關聯不起來的原因。
這是一個簡單的案例:
這時候的001A王曉明肯定收入是 900對吧,但當你套用這樣的資料表時,關聯就會發生問題:(範例筆數很少所以可以很簡單找到問題,當它上升到上萬筆的時候是無法這樣一眼看出的)
對於 POWER BI而言 表一的001A 和表二的 001a, 001A都是有關連的,因此當我們選擇一對一的時候,就會發生無效;或你是用「拉線」的方式,可能會遇到下面的對話窗。
這個時候的解決方法是:
- 在 Power Query將其中一個表的關聯欄位留下 1 筆資料就好(可以用篩選的,暫時性而已)並儲存變更,但不要關掉 Power Query介面。
- 重新建立關聯,這個時候一對一關聯一定會成功。
- 回到 Power Query中把欄位資料數量復原,並儲存變更。
- 這個時候 POWER BI會提示你「哪一筆資料」發生問題導致無法關聯。例如:
透過這個提示訊息就可以找到關聯不起來的原因,也可以協助你了解某些資料還需要進行處理後,才可以被視為唯一的。
因此後來,針對我自己目前正在處理的資料,我會先進行去除空白、全數轉為大寫的方式去處理,這樣在去除重複或分組資料後,就可以將這些資料組為同一組,並呈現最終正確的結果。當然資料的預先處理步驟,要依照資料類型和內容而定了。