1. CIRCULAR编辑
1.1 说明
CIRCULAR 函数用于 循环引用,循环引用是指当一个单元格内的公式直接或间接地引用了这个公式本身所在的单元格。
下面表格中的公式写法都是在 B2 单元格插入公式,而公式里面又引用了 B2 单元格,故为循环引用。
扩展方向 | 公式 | 等价于 |
---|---|---|
纵向扩展 | CIRCULAR(A2 , B2 , C2 , D2) | IF(&A2 = 1, 0, B2[A2:-1] + C2[A2:-1] – D2[A2:-1]) |
横向扩展 | CIRCULAR(B1 , B2 , B3 , B4 , false) | IF(&B1 = 1, 0, B2[;B1:-1] + B3[;B1:-1] - B4[;B1:-1]) |
注1:CIRCULAR 函数的循环引用是写死的,参与运算固定 4 个参数,算是一个特定场景才能用的函数。
注2:横向扩展时需要加第五个参数 false,这个不能遗漏。
1.2 示例
例如一个出入库统计的场景:
可以使用该函数计算上日库存,每天的上日库存是:昨天的上日库存+( 入库-出库 ),如下图所示:
2. CROSSLAYERTOTAL编辑
2.1 说明
CROSSLAYERTOTAL 用于计算 跨层累计,跨层累计是指每层都对数据进行累计求和,且支持跨分组继续累计。
如果用层次坐标来写跨层累计公式又长又复杂,所以直接做成了一个函数,极大节省了开发工作量。
扩展方向 | 公式 | 等价于 |
---|---|---|
纵向扩展 | CROSSLAYERTOTAL(A1, B1, C1, D1) | IF(&B1 >1, D1[B1:-1] + C1, D1[A1:-1,B1:!-1] + C1) |
注:CROSSLAYERTOTAL 暂不支持横向扩展。
2.2 示例
例如统计 2020 年国家部分能源产量的场景:
使用该函数可以进行对每层数据进行累计求和,且跨分组时可以继续累计,如从汽油跨到煤油可以继续累计,效果如下图所示:
3. HIERARCHY编辑
3.1 说明
HIERARCHY 用来表示 相对层次坐标,可以理解成相对层次坐标的简化写法。
纵向扩展时函数里面如果不写偏移值,那么默认就是 -1。但是横向扩展时不支持,只能把公式写全,写法如下表:
扩展方向 | 公式 | 等价于 |
---|---|---|
纵向扩展 | HIERARCHY(A1) | A1[A1:-1] |
HIERARCHY(A1, B1) | B1[A1:-1] | |
HIERARCHY(A1, B1, +2) | B1[A1:+2] | |
横向扩展 | HIERARCHY(B1, B1, -1, false) | B1[;B1:-1] |
HIERARCHY(B1, B2, -1, false) | B2[;B1:-1] | |
HIERARCHY(B1, B2, +2, false) | B2[;B1:+2] |
3.2 示例
例如多个纵向扩展单元格的场景:
函数对应的相对层次坐标输出结果如下图所示:
4. LAYERTOTAL编辑
4.1 说明
LAYERTOTAL 用于计算 逐层累计,逐层累计是指每层都对数据进行累计求和,跨组时重新累计,也就是每个组分别进行累计。
同样如果用层次坐标来写逐层累计公式又长又复杂,所以直接做成了一个函数,极大节省了开发工作量。
扩展方向 | 公式 | 等价于 |
---|---|---|
纵向扩展 | LAYERTOTAL(B1, C1, D1) | D1[B1:-1] + C1 |
横向扩展 | LAYERTOTAL(B2, B3, B4, fasle) | B4[;B2:-1] + B3 |
4.2 示例
例如统计 2020 年国家部分能源产量的场景:
使用该函数可以进行对每层数据进行累计求和,跨分组时会重新累计,如从汽油跨到煤油会重新开始累计,效果如下图所示:
5. MOM编辑
环比公式=MOM(A1, B1)等同于=IF(&A1 > 1, B1 / B1[A1:-1],0);
其中如果需要指定偏移量 x,则传递第三个参数 x,第四个参数表示横纵向,=MOM(A1, B1, -2, false)等同于=IF(&A1 > 1, B1 / B1[;A1:-2], 0)。
示例:
MOM(A1, B1, -2,true)表示当 &A1>1 时,B1 单元格的值比上该 B1 单元格对应的上一个 B1 单元格的值,否则显示为 0,等同于=IF(&A1 > 1, B1 / B1[A1:-2])。
具体使用场景请参考 环比
6. PROPORTION编辑
占比公式=PROPORTION(A1)等同于=A1/sum(A1[!0])
具体使用场景请参考 占比
7. SORT编辑
排名公式 =SORT(A1)等同于=COUNT(UNIQUEARRAY(A1[!0]{A1 > $A1}))+1, 默认升序排列;
如需要降序, 则传递参数 false,=SORT(A1, false)等同于=COUNT(UNIQUEARRAY(A1[!0]{A1 < $A1}))+1.
具体使用场景请参考 排名