1. 概述
1.1 問題描述
在對報表進行擴展後排序(按「牛奶」銷量排序)之後,若直接使用儲存格插入公式 seq() 或者 &cell 這兩種方法獲取序號,序號的順序是亂序的,如何讓它變成正常的排序呢?如下圖所示:
1.2 解決思路
方法一:設定條件屬性新值。
方法二:設定公式形態。
2. 範例
2.1 資料準備
建立普通報表,建立資料庫查詢 ds1,SQL 查詢語句為:SELECT * FROM 銷量。
2.2 報表設計
1)設計如下圖所示表格,設定儲存格 A2 左父格為 B2 ,並且插入公式:seq() , 生成序號。
設定儲存格擴展方向:C1 為橫向擴展,B2、C2 為縱向擴展。
2)未設定擴展後排序時,儲存報表,點選「分頁預覽」,可以看到序號順序正常,效果如下圖所示:
2.3 設定擴展後排序
1)選中 B2 儲存格,新增擴展後排序,公式為:C2{C1 = "牛奶"},即按照「牛奶」一欄的銷量值進行升冪排列,步驟如下圖所示:
2)儲存報表,點選「分頁預覽」,表格已按「牛奶」列升冪排序,但序號一欄被打亂,如下圖所示:
2.4 方法一(條件屬性)
選中序號所在儲存格 A2,刪除原本的公式,新增「條件屬性>新值」,選擇公式類型,值可以是 seq(),row()-1,&cell 。
row()-1:row() 傳回當前行位置,- 1 指的是當前行位置 -1,數值根據具體情況而定。
&cell:cell 指的是新增擴展後排序的儲存格,本例為 B2 儲存格。
由於任何情況下都需要生效,不需要新增判定條件。步驟如下圖所示:
2.5 方法二(公式形態)
選中序號所在儲存格 A2,選擇「儲存格屬性>形態>公式形態」,值同樣可以為 seq(),row()-1,&cell 。
注1:公式形態實際是將實際值與顯示值轉換,所以序號所在儲存格本身必須有值。
注2:當序號所在儲存格原本的值為 seq() 時,公式形態的值需要設定為 seq(1),否則序號會累計。
如下圖所示:
2.6 效果預覽
1)PC 端
兩種方法的效果都和 2.2 節中正常排序效果一致。
2)行動端
均支援 App 端和 H5 端,效果如下圖所示: