【Power Pivot技巧】使用安全除法函數DIVIDE避免除數為0的報錯

我們在建立Power Pivot數據模型的時候,經常要寫關於除法的度量值,尤其是計算類似任務額完成度,銷售佔比等情況。如果遇到分母是0的情況,則Excel會返回一個錯誤值N/A,我們需要用IF或者IFERROR來規避這種情況。今天我們給大家介紹PowerPivot里的DIVIDE函數,也叫安全除法函數,可以非常簡單的避免這種情況。

我們先來看一下DIVIDE函數的輸入要求:

=DIVIDE(分子,分母,[替換結果])

其中[替換結果]默認不需要輸入即為空白(BLANK),如需替換成其它結果,則直接輸入即可。

接下來我們看一下下面的這個例子:

在我們的模型里,員工表分別關聯銷售表和任務額表,我們需要計算員工的任務額完成度。我們先來看一下各個寫法:

常規寫法:

任務額完成度:=銷售表[銷售金額]/任務額[任務總額]

用IF的寫法:

任務額完成度IF:=if(任務額[任務總額]=0,blank(),銷售表[銷售金額]/任務額[任務總額])

用DIVIDE的寫法:

任務額完成度Divide:=DIVIDE(銷售表[銷售金額],任務額[任務總額])

用IFERROR的寫法:

任務額完成度IFERROR:=IFERROR(銷售表[銷售金額]/任務額[任務總額],BLANK())

下面是生成的數據透視表報告:

我們看到,由於「趙六」沒有任務總額,所有常規寫法的任務額完成度是報錯的 – 「#NUM!「.而後面用IF,DIVIDE和IFERROR的都沒有報錯,顯示空白值,所以用這三種寫法都可以規避這種報錯的情況,那麼哪個寫法最快最簡單呢?我們從下面兩個角度來比較:

輸入簡單性DIVIE更簡單,它不需要指定BLANK()函數,默認即可。

從公式所需運算 IF要先判斷所有計算是否為BLANK(),然後再執行計算。而DIVIDE和IFERROR一樣,先執行計算,只針對報錯的部分賦予替代值,所以DIVIDE和IFERROR所需運算更少。

建議大家在今後的模型中多使用DIVIDE,不僅簡單還可以幫助大家更多的避免出錯的發生。

*PowerPivot工坊原創文章,歡迎轉載,請註明出處

-----------------------------------------------------------------------------------------------------------------------

延伸閱讀:

在Power Pivot中使用DATEDIFF函數計算日期時間間隔

使用USERELATIONSHIP實現兩表之間多個關係的調用

在Power Pivot中計算父行匯總百分比

圖解Earlier函數

Power Pivot時間智能之YTD(年初至今累計)

一張圖看懂微軟Power BI系列組件

當Power BI遇上歐冠決賽

-----------------------------------------------------------------------------------------------------------------------

如果您想深入學習微軟Power BI,歡迎登錄網易雲課堂試聽學習我們的「從Excel到Power BI數據分析可視化」系列課程。或者關注我們的公眾號(PowerPivot工坊)後猛戳」在線學習」


推薦閱讀:

如何快速刪除excel中的所有空行或空列?
當?Power?BI?遇上洪災
[E1-08]單元格合併
是時候展現真正的技術了——動態人口結構金字塔變化圖(R語言+Excel)
Excel如何篩選連續重複的數據

TAG:PowerBI | MicrosoftExcel | 数据分析 |