2012-10-22 41 views
0

我有一個水晶報表,它包含大約9個不同的組,並且希望能夠得到一個包含將一個值除以另一個值的總結。涉及劃分水晶報表的小組彙總

例如(表):

Period Company Division Region State City Store Employee Sales Goal 
01-2012 Ab Works Northern NW  OR  Ball 888  Foo  100  150 
01-2012 Ab Works Northern NW  OR  Ball 888  Choo  175  120 
02-2012 Ab Works Southern SE  GA  Chip 743  Bar  34  75 
02-2012 Perrywee Northern NC  MN  Fedd 147  Bill  80  64 
03-2012 Perrywee Eastern FE  WV  Wood 98  Tim  75  250 
01-2012 Perrywee Eastern FE  WV  Wood 92  Karl  84  250 
01-2012 Perrywee Western W  CA  Fub 398  Fubar  175  170 

我的輸出然後看起來像這樣:

Company Jan2012 Feb2012 Mar2012 ... YTD-Avg 
Ab Works 70.3%  87.3%  87.5%  84.3% 
Perrywee 93.5%  97.3%  130.3%  90.4% 

每個將使向下鑽取到它下面的基團,並且該值由的總和計算小組的銷售額除以小組的目標總和。由於有14個時期和8個組,我想避免創建〜115個形式。

有沒有簡單的方法來完成這個?

+1

您可能必須使用交叉表報表才能達到此效果 –

+0

交叉表將生成他想要的網格,但交叉表不具有「向下鑽取」功能。 – craig

回答

1

我做過類似但不使用百分比的東西。我認爲這樣做的方式幾乎是痛苦的,但你會擁有鑽取功能。我會發布我想出來的東西,但是如果有人可以通過一切手段修改它以使其更容易。

首先,創建8個要使用的組並隱藏它們。您需要14個公式才能爲您的期間創建列。爲了您的第一階段,公式(並按照週期)應該是這樣的:

IF {table.period} = "01-2012" THEN 
    IF DrillDownGroupLevel = 0 THEN 
     SUM({table.sales}, {table.group1})/SUM({table.goal}, {table.group1}) 
    ELSE IF DrillDownGroupLevel = 1 THEN 
     SUM({table.sales}, {table.group2})/SUM({table.goal}, {table.group2}) 
    ELSE IF DrillDownGroupLevel = 2 THEN 
     SUM({table.sales}, {table.group3})/SUM({table.goal}, {table.group3}) 
    ELSE IF DrillDownGroupLevel = 3 THEN 
     SUM({table.sales}, {table.group4})/SUM({table.goal}, {table.group4}) 
    ... 
    ELSE 
     SUM({table.sales}, {table.group8})/SUM({table.goal}, {table.group8}) 
ELSE 
    0 

什麼這個公式的作用是判斷它是什麼時間段,然後確定它是什麼組級別。然後總結銷售和目標,考慮該團隊在該級別上的假設。

  • 對於線IF {table.period} = 「01-2012」 THEN,我設置爲一個參數,以便它會爲多年的工作。
  • 我寧願使用函數來確定我所在的組級別,但我知道的只有DrillDownGroupLevel。如果你試圖對這些團體進行一些幻想(有條件的抑制)不做簡單的深入研究,這是有用但有缺陷的。
  • 更改爲{table.group1}您曾用於該組級別的任何字段。即{table.company}

該公式的缺點是每次向下鑽時,DrillDownGroupLevel都會改變。您揭示的新水平將是正確的,但之前的水平仍然會顯示出來。

希望這會有所幫助。

+0

雖然它不能完全解決我的問題,但它使我走上了另一條道路,並幫助我接近我需要的東西。 – user1238918

1

步驟:

  • 插入交叉片;行總數爲company;列總數爲period(爲每個月設置組選項);添加salesgoal到彙總字段
  • 預覽報告
  • 右鍵單擊一個goal單元格,選擇「嵌入式彙總」,然後選擇「插件嵌入摘要」
  • 切換到設計模式(交叉表專家);確保字段順序(從上到下)爲@Embedded Summary,Sum of Sales,Sum of Goal
  • 進入預覽模式;右鍵單擊嵌入摘要字段並選擇「編輯計算公式」;添加以下內容:

    local numbervar n:= GridValueAt(CurrentRowIndex,CurrentColumnIndex,1); local numbervar d:= GridValueAt(CurrentRowIndex,CurrentColumnIndex,2);

    如果d <> 0,則n/d * 100

  • 抑制銷售目標領域

我還沒有(還)找到一種方法來去除多餘的空間,但是。

樣品:

enter image description here