省略主格表示法
一、坐标实例
层次坐标和位移坐标的表示比较烦琐,而且大部分时候,对于单元格的定位是和当前格的位置有关系的,比如当前格的主格或者和当前格有着相同主格的单元格,这时可以采用省略主格的写法。
省略主格时,如果目标单元格的某个主格Lk和当前单元格的主格相同,那么层次坐标/位移坐标中该主格可以不写。
例如:
如果目标单元格与当前格的关系满足缺省主格认定规则,那么直接遵循缺省引用规则的表示法,不需要层次坐标/位移坐标。
例如:下图所示的占比报表中,C2单元格表达式直接引用B2、B3单元格的值,E2单元格表达式直接引用D2、D3单元格的值,不需要层次坐标或位移坐标。
C2单元格表达式:=B2/B3
E2单元格表达式:=D2/D3
二、报表实例1(层次坐标的简单写法)
目标单元格Cellx本身是扩展单元格时,Cellx[n]表示其纵向扩展后的第n个单元格,Cellx[;n]表示其横向扩展后的第n个单元格。
1、编辑报表
(1)A2单元格的表达式为:=&B2,设置A2的左主格为B2
(2)B2单元格的表达式为:=ds25.Group(销售人员,false,,,ds25.sum(数量*单价),true)
(3)C2单元格的表达式为:=ds25.sum(数量*单价),显示格式:¥#,##0.00,缩进:3
(4)D2单元格的表达式为:=C2[1]-C2
这里C2[1]表示C2单元格扩展出来的第一个单元格的值,即第一名的销售额。
2、保存预览
此报表保存为“比值报表”,预览结果如下:
三、报表实例2(位移坐标的简单写法)
在没有复杂的主格关系的报表中,Cellx[±n]表示当前格Cellx往上位移n格或者往下位移n格,其中+代表往下位移,-代表往上位移。
1、编辑报表
(1)A2单元格表达式:=ds25.dselect(雇员ID)
(2)B2单元格表达式:=ds25.销售人员
(3)C2单元格表达式:=ds25.职务
(4)D2单元格表达式:=ds25.出生日期,显示格式:yyyy-MM-dd
(5)E2单元格表达式:=ds25.Sum(数量*单价),显示格式:¥#,##0.00,缩进:3
(6)F2单元格表达式:=E2+F2[-1],显示格式:¥#,##0.00,缩进:3
这里,F2[-1]表示当前单元格F2上一行的值。
2、保存预览
此报表保存为“累积报表”,预览结果如下:
二、小结
1. 缺省主格认定规则
单元格横向扩展时,上方横向扩展单元格缺省为它的上主格,下方单元格缺省为它的附属格;如果上方没有横向扩展格,则上主格缺省为 `0 格。
单元格纵向扩展时,左边纵向扩展单元格缺省为它的左主格,右边单元格缺省为它的附属格;如果左边没有纵向扩展格,则左主格缺省为 `0 格。
2. 省略主格表示法
层次坐标和位移坐标的表示比较烦琐,而且大部分时候,对于单元格的定位是和当前格的位置有关系的,比如当前格的主格或者和当前格有着相同主格的单元格,这时可以采用省略主格的写法。
省略主格时,如果目标单元格的某个主格Lk和当前单元格的主格相同,那么层次坐标/位移坐标中该主格可以不写。
如果目标单元格与当前格的关系满足缺省主格认定规则,那么直接遵循缺省引用规则的表示法,不需要层次坐标/位移坐标。
3. 层次坐标的简单写法
目标单元格Cellx本身是扩展单元格时,层次坐标的简单表示法如下:
语法:Cellx[n],Cellx[;n]
说明:Cellx[n]表示其纵向扩展后的第n个单元格,Cellx[;n]表示其横向扩展后的第n个单元格。
4. 位移坐标的简单写法
在没有复杂的主格关系的报表中,位移坐标的简单表示法如下:
语法:Cellx[±n]
说明:表示当前格Cellx往上位移n格或者往下位移n格,其中+代表往下位移,-代表往上位移。
课后练习:
1、填空:
(1)单元格横向扩展时,上方横向扩展单元格缺省为它的______,下方单元格缺省为它的______;如果上方没有横向扩展格,则上主格缺省为______。
(2)单元格纵向扩展时,左边纵向扩展单元格缺省为它的______,右边单元格缺省为它的______;如果左边没有__________,则左主格缺省为 `0 格。
(3)目标单元格Cellx本身是________时,层次坐标的简单表示法如下:Cellx[n]表示其________后的第n个单元格,Cellx[;n]表示其________后的第n个单元格。
(4)在没有复杂的________的报表中,位移坐标的简单表示法如下:Cellx[±n]表示当前格Cellx往上位移n格或者往下位移n格,其中+代表________,-代表________。
2、在下图的报表中,当前单元格为带红圈的单元格时,写出与之对应的带蓝圈的单元格的层次坐标和位移坐标:
3、写出如下图所示的报表中,下列坐标的返回值:
(1)当前格的值为115,层次坐标C2[B2:1;C1:10]
(2)当前格的值为202,位移坐标C2[A2:1,B2:-1]
(3)层次坐标C1[;3]
(4)当前格的值为283,位移坐标C2[B2:-3]
(5)当前格的值为655,层次坐标C2[A2:4,B2:2]
(6)当前格的值为642,层次坐标C2[C1:4]
(7)当前格的值为572,位移坐标C2[C1:-5]
(8)当前格的值为102,位移坐标B2[-2]
(9)当前格的值为862,层次坐标C2[A2:-3,B2:-2]
(10)层次坐标A2[3]