您好,登錄后才能下訂單哦!
在做分組報表統計時,我們經常會被要求按照數據升序或降序排序。在 group 函數的參數中,我們可以指定分組后對組的排序表達式,這樣報表展現時能夠直接根據該表達式進行排序了。我們先來看一個簡單的例子,如下圖所示:
其中,A1 表達式為:=ds1.group(貨主地區, 貨主地區!=null; 貨主地區;ds1.sum( 數量 * 單價))
意思是:在根數據集 ds1 中取出貨主地區不為空的數據,并按照貨主地區進行分組,分組后求出每組的總價 sum(數量 * 單價),然后按照這個匯總值對組進行升序排列。
分組排序后的效果如下圖所示:
但是有些時候,某些單元格的數據可能是通過其他單元格計算后的結果,這樣就無法通過 group 函數的參數來指定了,例如下圖這樣:
報表 D2 單元格的數據是根據前兩個單元格相減計算后的結果,這時就無法通過 group 函數來完成排序控制操作了,那么有什么方法能夠實現依據這樣計算出來的單元格結果進行排序呢?
(苦思冥想中····)額,我可以做一個排名,但是排序要怎么做呢?
Bingo··答對了一半,就是需要先排名哦。
下面由我給大家詳細講解一下實現流程:
1)首先按照上圖中展現的報表格式,在 A 列左邊和下邊分別插入行、列,并且給報表追加一列。形成如下如所示的樣式:
2)然后在 A3 中寫表達式 =to(1,count(B2{}))。
3)在 F2 單元格中按照 E2 單元格的數據計算排名, 寫入表達 =count(E2[`0]{E2<$E2})+1。如下圖所示:
A3 中的表達式是為了控制該行進行縱向擴展,有幾個地區就擴展幾行,這樣報表在展現時就會在下方增加一片數據區域,并且第一列是 1、2、3 這種編號形式。而 F2 單元格則是根據實際金額做了對應的排名,出來的值也是 1、2、3 的形式。這樣,就可以根據排名對數據進行選擇了。
4)在 B3 單元格中寫入表達式:=B2{F2==$A3}。
這個表達式的意思是:從 B2 單元格中取數,但是取數時加上了限定條件:F2(排名)單元格的值等于這一行的 A3(序號)單元格的值,也就是從 B2 單元格中按照排名順序取出對應的地區放在 B3 單元格中。預覽的效果如下圖所示:
其余 C3、D3、E3 幾個單元格的情況類似:
然后再將沒用的行列隱藏掉,就能夠實現我們的的需求了,即按照單元格表達式的計算結果進行排序展現,結果如下:
【總結一下:】
在上面的示例中,表達式:=B2{F2==$A3} 是【層次坐標】的用法。主要是在進行報表設計時,單元格尚未進行擴展,但是其它某些單元格的表達式往往需要對這個單元格擴展后的單元格進行精確定位并運算。
【層次坐標】的具體使用方法可以看一下教程里面的 12.3.2 章節。
好啦,<(  ̄▽ ̄ )/> 按照上面操作步驟,根據計算后的結果排序就完成啦。
詳情鏈接:
http://c.raqsoft.com.cn/article/1533716965785?r=gxy
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。