salesforce零基礎學習(一百三十)Report 學習進階篇 Salesforce Admin篇(二) Report

本篇參考:

https://help.salesforce.com/s/articleView?id=sf.reports_summary_functions_about.htm&type=5

https://www.youtube.com/watch?v=bjgZTgYe_84

Salesforce Admin篇(二) Report中,我們講過report的一些基礎知識,實際工作中往往有些場景比這些複雜很多,接下來根據實際工作中的部分場景進行知識擴展。本篇主要講解3個內容: PARENTGROUPVAL and PREVGROUPVAL & Power Of 1.

引言: 在salesforce的report中,官方封裝了很多的函數,基於不同的函數來進行不同的場景處理。有一些我們比較熟悉的類似formula的函數IF等,用起來很方便,除此以外還有兩個特殊的函數:PARENTGROUPVAL and PREVGROUPVAL,使用 PARENTGROUPVAL 計算相對於一個父分組的值,使用 PREVGROUPVAL 計算相對於同級分組的值。接下來對這兩者進行展開。

一. PARENTGROUPVAL

此函數返回指定父分組的值。父 "分組是指包含公式的分組之上的任何層級。

針對Summary Report以及Join Report,我們使用這個函數包含兩個參數:PARENTGROUPVAL(summary_field, grouping_level)

針對Matrix Report,我們使用這個函數包含三個參數:PARENTGROUPVAL(summary_field, parent_row_grouping, parent_column_grouping)

我們對這三個參數進行一下解釋:

  • summary_field:彙總的字段的值。舉個例子: 第一個參數使用TOTAL_PRICE:SUM代表我們返回指定父分組的值,分組的值基於 TOTAL_PRICE字段進行SUM彙總。再舉一個例子: 第一個參數使用RowCount,這個是report的字段,代表對指定分組進行計數操作,返回的結果將是某個指定分組的數據的數量。
  • parent_row_grouping:針對Summary Report以及Join Report,第二個參數即row_grouping。row_grouping可以有兩個值: GRAND_SUMMARY以及分組字段的API NAME。 其中GRAND_SUMMARY代表着整體數量,即Report下方的Grand Total選項勾選的數量效果。指定分組字段的API Name代表着某個子分組的範圍。
  • parent_column_grouping用法和parent_row_grouping用法相同並且參數值也相同。

其實這樣說起來很繞,並且很難去理解,我們不妨以一個例子進行更好的理解。我們的原始需求是製作一個Case Report,Case Report基於Case Owner以及Case Status進行分組查看每個owner每個組的數量。這個需求很簡單,我們可以基於兩種方式實現,一個是summary report設置兩層分組,一個是matrix report。

基於Summary Report的demo: 兩個user,每個user都各擁有一部分數據。

基於Matrix Report的Demo。

現在需求進行了變更,顯示每個階段的數量固然很好,但是每個owner所處理的case數量不同,直接看每個階段的數量參考意義不大,更希望看到每個階段所佔每個人所擁有的總數的百分比。我們對這兩個report進行一下優化從而滿足需求。

針對Summary Report,正確操作舉例如下圖gif所示。接下來我們對這個report進行詳細的剖析。首先我們需要創建一個summary formula。基於需求,我們需要了解每個Status所佔每個owner的總比,所以函數使用的是 PARENTGROUPVAL(RowCount, OWNER),其中OWNER代表的是我們report中的主group:Owner,即獲取基於Owner級別的總數量。

還有一個重要的內容是Display,代表當前的formula顯示在哪裏。針對Summary Report主要有以下幾個值:

  • All Summary Levels:所有的group字段,當前的demo相當於顯示在Owner以及Status的subtotal中。
  • Grand Total Only:顯示在Grand Total級別,通常這種函數爲金額或者數量多一些,比如當前記錄總數或者當前report的總金額等。
  • Specific Groups:顯示在指定的group的subtotal,當前demo選擇了此種方式,並且字段選擇了Status,代表只會顯示在Status的subtotal位置。

 接下來展示幾個錯誤的示範

1. 函數中選錯基於某個字段分組。我們可以看到下方gif中,函數選擇基於Status分組永遠是100%,基於GRAND_SUMMARY分組則把兩個user的總數都作爲計算,這個是不正確的,我們在使用此函數時,首先需要確定計數範圍。

2. 顯示錯誤的位置。我們可以看到此函數僅支持summary函數,如果放在grand total以及All Summary Level則報錯,放在不正確的字段的subtotal則展示的結果不符合我們的需求的預期。

這兩個點在實際工作中使用此函數一定要重點思考。

 基於matrix report正確操作如下:這個demo中,我們看到函數有三個參數,其中第二個參數很好理解,我們使用了Case Owner進行分組。第三個參數我們選擇了GRAND_SUMMARY,因爲當前column只有一個分組,所以使用這種也代表獲取當前這個owner的total。

二. PREVGROUPVAL

使用 PREVGROUPVAL 計算相對於同級分組的值,他用來獲取分組的前一刻的值。我們直接以一個demo進行展開,這樣理解會更方便。

我們想要了解一下第二條記錄和前一條記錄的差值,即每個月的amount的變化,是增長的,還是減少的。這種情況我們便可以使用PREVGROUPVAL函數。

從下方的gif中我們可以看到使用PREVGROUPVAL的效果,這個函數擁有三個參數:
  • summary_field:記錄哪個彙總字段,demo中我們使用的是 Amount:Sum即獲取Amount的彙總數據。
  • grouping_level:記錄基於哪個字段進行分組來獲取summary_field。
  • increment:記錄增量,默認是1,即獲取前一條數據的值,如果隔條獲取,可以設置爲2, demo中有一個簡單的UI效果。

 我們對UI進行簡單修改,即可瞭解每個月相對上個月是增長還是下降了,僅需簡單的計算以及顏色渲染,便可直觀顯示。 

 三. Power Of 1

 我們以一個簡單的demo來引出Power Of 1.

下方的gif中我們可以看到,針對Opportunity Report,我們可以在 Account Name列使用Unique,從而獲取Account Name去重以後的數量,這個很方便也很好用。然而如果我們基於Account Name去進行Group以後,這個字段將不再支持 Unique去查看總共有多少個Unique Account,標準的report的record count也指向的是Opportunity有多少條數據,所以這時我們僅需要簡單的在Account表中創建一個formula字段,並且將value設置一個hard code等於1即可。這種方式適用於針對關聯列表或者字表查詢,想要在字表查詢到父表唯一的數量(Opportunity report查詢Account去重以後的數量),可以使用Power Of 1。

當然, Power Of 1 所能做的遠不止如此。以這個功能做一下引申,我們有時候的需求需要比較相同字段級別的不同階段的轉換率。舉個例子,Opportunity有不同的Stage,我們有時需要計算 某個Stage在某幾個Stage中所佔的比例。這種需求可以使用Power Of 1進行快速實現。這裏我們模擬一個需求: 我們的Opportunity Stage有Prospecting,Needs Analysis, Negotiation/Review, Closed Won。

我們需要計算Closed Won的數量針對每個其他階段的比率。即 Closed Won Record Count / Prospecting => 28 / 12; Closed Won Record Count / Needs Analysis => 28 / 18; Closed Won Record Count / Negotiation/Review =>15 28 / 。那麼如何實現這種需求呢? 可以使用Power Of 1的神奇之處。我們以Closed Won Record Count / Prospecting爲例。

根據下方的gif我們可以看出來,新建兩個formula字段,如果當前的Stage爲指定的值,設置爲1,否則設置爲0. 之後在report中只需要創建一個 report formula字段即可實現需求。

 

 總結:篇中主要介紹了一下Report的兩個函數以及Power Of 1簡單用法,更多好玩的用法等待你的發掘,本篇僅拋磚引玉。篇中有錯誤地方歡迎指出,有不懂歡迎留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章