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