1. 概述
1.1 問題描述
若對報表進行了 隔列/欄設定背景色 操作,又設定了 報表分欄 ,可能會出現「錯位」的情況,希望有方案可以解決錯位問題,實現同行變色對齊。
1.2 實現思路
在「條件屬性」中利用「公式」實現。
先根據分欄列數和資料總數判斷雙數欄位需不需要特殊處理,再透過計算得到需要特殊處理的列數設定分欄。
2. 範例
2.1 資料準備
建立普通報表,建立資料集 ds1,SQL 查詢語句為:SELECT * FROM 銷量 。
2.2 設計報表
1)將「銷售員、產品、銷量」資料列拖入 A2~C2 儲存格中,設計表格樣式如下圖所示:
2)將 A2 儲存格「資料設定」修改為「列表」,如下圖所示:
2.3 設定分欄
點選菜單欄「範本>報表分欄」,在開啟的報表分欄頁面中按如下圖所示步驟設定:
2.4 設定條件屬性
選中 A2 儲存格,點選右側屬性面板新增一個條件屬性,選擇屬性為「背景」,顏色為「藍色」,作用於「當前列」。設定條件類型為「公式」,輸入公式為:
ROUNDUP(COUNT(A2[!0])/2,0)%2<>0&&(&A2+(1-ROUNDUP(&A2/ROUNDUP(COUNT(A2[!0])/2,0),0)%2))% 2=0||ROUNDUP(COUNT(A2[!0])/2,0)%2=0&&&A2%2=0
公式說明如下表:
分類 | 公式 | 說明 |
---|---|---|
公式一 | ROUNDUP(COUNT(A2[!0])/2,0)%2<>0 | A2[!0] 是指 A2 擴展出來的所有儲存格,使用 COUNT 計數後,再除以分欄的欄數,本例中欄數為 2。再使用 ROUNDUP 對計算的數字向上取整後,被 2 整除餘數不等於 0 ,表示報表分欄後總列數為奇數 |
公式二 | (&A2+(1-ROUNDUP(&A2/ROUNDUP(COUNT(A2[!0])/2,0),0)%2))% 2=0 | &A2 為獲取 A2 儲存格擴展值的序號,計算結果等於 0 時當前列背景色為藍色 |
公式三 | ROUNDUP(COUNT(A2[!0])/2,0)%2=0 | 和公式一相同,計算結果被 2 整除餘數等於 0,表示報表分欄後總列數為偶數 |
公式四 | &A2%2=0 | A2 儲存格擴展值的序號被 2 整除餘數等於 0 時,當前列背景色為藍色 |
注:公式由 4 個條件組成,公式之間使用 && 和 || 連結,按從左往右執行計算,當報表滿足公式一時,按公式二顯示背景色,當報表滿足公式三時,按公式四顯示背景色。
步驟如下圖所示:
2.5 效果預覽
2.5.1 PC 端
儲存報表,點選分頁預覽,按列分欄的隔行變色效果如下圖所示:
2.5.2 行動端
App 端和 HTML5 端均支援,效果如下圖所示:
3. 範本下載
點選下載範本:按列分欄隔列變色錯位解決方案.cpt