1. 概述
1.1 問題描述
不論是普通報表、複合式報表還是決策報表,當涉及跨 sheet 頁或跨報表塊使用函式過濾時,若公式中包含了 {} 這種大括號的條件,則公式無效。
例如:跨 sheet 頁計數時,使用公式:len(greparray('sheet2'!A7[!0],item=$A3)),正確效果如下:
而使用條件計數公式 count('sheet2'!A7{'sheet2'!A7=$A3}) 的效果如下:
1.2 原因分析
當前設計器中,跨 sheet 頁和跨報表塊不支援使用條件過濾。
2. 解決方案
不在公式內新增帶有 {} 條件的句,使用其他本身帶有條件過濾格式的公式。
下面用範例進行詳細介紹。
2.1 建立內建資料集
建立「普通報表」,建立內建資料集 Embedded1 ,如下圖所示:
2.2 建立 sheet 頁
建立一個 sheet2 ,將資料列 ColName1 拖入 A7 儲存格,雙擊儲存格,選擇資料設定為「列表」,擴展方向為「縱向」,步驟如下圖所示:
2.3 設定公式
點選 sheet1 ,將資料列 ColName1 拖入 A3 儲存格,雙擊儲存格,選擇資料設定為「分組」,擴展方向為「橫向」。
選中 A4 儲存格,插入公式:count('sheet2'!A7{'sheet2'!A7=$A3}) 。 步驟如下圖所示:
同理給 A5 儲存格插入公式:len(greparray('sheet2'!A7[!0],item=$A3))。
公式說明如下表:
公式 | 公式說明 |
---|---|
count({}) | count 函式中加入條件來實現條件計數,{} 內為計數條件 |
'sheet2'!A7 | 引用 sheet2 中 A7 儲存格的資料 |
greparray(array,fn) |
|
len() | 傳回陣列的長度 |
2.4 效果預覽
2.4.1 PC 端
儲存報表,點選「分頁預覽」,效果如下圖所示:
2.4.2 行動端
App 與 HTML5 端效果相同,如下圖所示:
2.5 範本下載
已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\跨sheet頁條件過濾公式.cpt
點選下載範本:跨sheet頁條件過濾公式.cpt