1. 程式人生 > >動態交叉表頭報表的製作

動態交叉表頭報表的製作

在資料資訊系統中,常常會看到這樣一類報表需求,它們的樣式為交叉報表的變形(既縱向分組擴充套件又橫向分組擴充套件,在交叉區域對統計項進行彙總),同時在縱向分組時,要求每個組跟隨一個與分組相對應的橫向表頭。對比效果如下圖所示:

動態交叉表頭對比圖

從上圖可看到,報表縱向按照年進行分組擴充套件,同時每年又能生成一個橫向分組表頭,該表頭按照地區橫向擴充套件,並且根據年份的不同而不同。如上圖所示:2014 年有 6 個地區,而 2015 年由於資料不同只擴展出 4 個地區。

那怎麼實現這種需求呢?有沒有一步登天的實現方法???當然必須有,下面看我放大招。

工欲善其事必先利其器,我們選擇的利器就是:潤乾報表,具體實現操作如下:

1、製作常規交叉報表

普通交叉報表設計

其中,

A1:右擊單元格,選擇“邊框設定”,在彈出的對話方塊中選擇“帶斜線邊框按鈕”

單元格內容為:統計維度, 產品資訊, 銷售額

注意:這裡是英文逗號隔開

A2:=ds1.group(year( 訂購日期):1)+”年”     按照年進行資料分組

C2:=ds1.group(month( 訂購日期):1)+”月”    按照月進行資料分組

D1:= ds1.group(地區; 地區:1)              按照地區進行資料分組,並設定為橫向擴充套件

D2:=ds1.sum(數量 * 單價, 地區 ==D3)        計算某地區對應年月的訂單總價

2、實現動態交叉表頭效果

這時,我們實現的是常規交叉表表頭的效果,然後,我們來實現動態交叉表頭效果,修改報報表設計如下:

動態交叉表頭報表設計

按照需求效果要求,地區要跟隨年動態跟隨擴充套件顯示,但是年是縱向擴充套件,地區是橫向擴充套件,而我們知道,橫、縱向擴充套件是衝突的,不能在一起使用,那怎麼辦呢?

蹬蹬蹬 ~ 輔助行來幫忙。

如圖所示,我們插入兩行,具體設定如下:

D1:=to(1,count(ds1.group( 地區,false)))。該表示式含義為,因為報表將來要求橫向擴充套件,但是如果把這個橫向擴充套件單元格的左主格設成縱向擴充套件時又出現衝突,所以在上方增加一個輔助單元格做橫向擴充套件,並且擴展出來的個數就是按照地區分組後地區的個數。

D2:= ds1.group(地區,false)。因為要求每個年度下的地區擴展出來的資料不同,所以這裡按照地區進行分組,注意:要將 A2 單元格的左主格設定 A4 單元格,也就是 D2 出來的地區是經過 A4 單元格分組後的值。出於樣式上的考慮,將 D2 單元格設定成不可擴充套件單元格,並且第一行和第二行要隱藏掉,在 D2 單元格中算出了當前年度所對應的地區,並且設定不可擴充套件,返回的結果為地區的一個組合,並且地區之間用逗號隔開

D3:=split(str(D2),”,”)[D1]。首先將 D2 單元格按照逗號分隔開,返回一個數組,並且通過潤乾的層次座標根據 D1 的值取這個陣列內的第幾個值,就是得到當前年度下的地區,並且第三行的左主格設成了 A4,就能實現地區跟隨年度擴充套件的效果。

動態交叉表頭效果圖

好了,一個完美的動態交叉表頭報表就完成了。

回顧一下相關問題和解決的技巧

橫縱向擴充套件聯合使用

【技巧】使用輔助行,將主格設定關聯

至此,動態交叉表頭報表製作就完成了,我們僅僅使用了潤乾報表的輔助行就做好了動態列報表,這一波操作 6 不 6?快來加入潤乾大家庭,更多快速簡便的報表製作方式等你來挖掘。

作者:xiaohuihui 連結:http://c.raqsoft.com.cn/article/1533096289624?r=xiaohuihui 來源:乾學院 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。