1

层次坐标应用之多级序号

1. 概述

1.1 应用场景

希望根据多列数据生成多级序号。

例如,根据部门、岗位两列数据生成二级序号,如下图所示:

1.2 实现思路

1)获取第一列数据当前值在当前列数据去重后的序号。

2)获取第二列数据当前值在当前分组内数据去重后的序号。

3)对分别获取到的序号进行拼接。

2. 示例

示例数据:部门.xlsx

2.1 创建分析表

下载并上传示例数据,将数据添加至项目中,如下图所示:

2.2 新增复杂表格

点击添加按钮,选择「复杂表格」,如下图所示:

2.3 设计复杂表格

1)B1、C1 单元格输入文本,B2、C2 单元格拖入相应的字段,如下图所示:

2)B2 单元格的数据设置为「列表」,如下图所示:

2.4 插入层次坐标公式

1)A1 单元格输入文本,A2 单元格插入公式:INARRAY(B2,UNIQUEARRAY(B2[!0]))+"."+INARRAY(C2,UNIQUEARRAY(C2[!0]{B2=$B2})),如下图所示:

2)公式说明如下表所示:

公式

说明

B2[!0]

返回 B2 单元格扩展出来的所有数据

UNIQUEARRAY(B2[!0]))

B2 单元格扩展出来的所有数据去重,返回唯一值数组

INARRAY(B2,UNIQUEARRAY(B2[!0])

返回当前 B2 单元格数据在唯一值数组中位置索引,即一级序号

C2[!0]{B2=$B2}

返回 C2 单元格扩展出来的同一分组内的数据

UNIQUEARRAY(C2[!0]{B2=$B2})

C2 单元格扩展出来的同一分组内的数据,返回分组内唯一值数组

INARRAY(C2,UNIQUEARRAY(C2[!0]{B2=$B2}))

返回当前 C2 单元格数据在分组内唯一值数组中的位置索引,即二级序号

INARRAY(B2,UNIQUEARRAY(B2[!0]))+"."+INARRAY(C2,UNIQUEARRAY(C2[!0]{B2=$B2}))

将两级序号用 . 连接

3)A2 单元格的左父格设置为 B2 单元格,如下图所示:

2.5 效果预览

预览表格,效果如下图所示:

3. 注意事项

如果有第三列数据 (D2) 也要生成序号,则 A2 左父格为 C2 ,公式为:INARRAY(B2,UNIQUEARRAY(B2[!0]))+"."+INARRAY(C2,UNIQUEARRAY(C2[!0]{B2=$B2}))+"."+INARRAY(D2,UNIQUEARRAY(D2[!0]{B2=$B2&&C2=$C2}))

如果有第四列数据 (E2) 也要生成序号,则 A2 左父格为 D2 ,公式为:INARRAY(B2,UNIQUEARRAY(B2[!0]))+"."+INARRAY(C2,UNIQUEARRAY(C2[!0]{B2=$B2}))+"."+INARRAY(D2,UNIQUEARRAY(D2[!0]{B2=$B2&&C2=$C2}))+"."+INARRAY(E2,UNIQUEARRAY(E2[!0]{B2=$B2&&C2=$C2&&D2=$D2}))

如果需要生成更多的多级序号,实现方法以此类推。

咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验