历史版本7 :跨sheet数据筛选和联动 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

在进行多 sheet 报表设计的时候,两个 sheet 里面都用到了扩展数据集,如何从一个 sheet 里面获取另一个sheet里面对应的数据的值呢,如下:

222                                            222             

                sheet1                                                                            sheet2

如果想从sheet1获取sheet2中对应销售员的销量值,直接在sheet1输入sheet2!B2,会出现下面的情况:
222

1.2 实现思路

先将关联的值一同获取过来,再通过关联值去筛选需要的数据,如上,sheet1 和 sheet2 关联的值是 A2 中的销售员。

2. 解决步骤编辑

1)获取另外个 sheet 中的关联值和目标值:'sheet2'!A2+'sheet2'!B2

注意:这里的+号不能用 CONCATENATE( ) 来代替

222
2)利用 GREPARRAY( ) 函数来筛选对应的数据:GREPARRAY(上一步结果, left(item, len(A2)) = A2)

这里的过滤条件是以当前sheet中的关联值的长度去截取获取过来的每一项数据,如果与当前 sheet 中关联值一致,则保留。

222
3)从上一步的结果中去除当前sheet中的关联值,即将关联值替换为空:replace(上一步结果, A2, "")
222

4)综合起来公式就是:REPLACE(GREPARRAY('sheet2'!A2+'sheet2'!B2, LEFT(item,LEN(A2))=A2),A2,"")
222

3. 示例编辑

3.1 数据准备

新建数据查询 ds1 ,SQL查询为:SELECT * FROM 销量,如下图所示:

2020-12-28_16-04-43.jpg

3.2 模板设计

1)将数据集字段拖到 sheet1、sheet2 单元格 A2、B2 ,如下图所示:

SHEET1

2020-12-28_16-08-20.jpg

SHEET2

2020-12-28_16-09-03.jpg

2)依次选中 sheet1 C2~F2 单元格,设置形态公式,如下表所示:

单元格公式作用
C2
'sheet2'!A2+'sheet2'!B2
获取另外个 sheet 中的关联值和目标值
D2GREPARRAY(C2, left(item, len(A2)) = A2)用 GREPARRAY( ) 函数来筛选对应的数据
E2replace(D2, A2, "")去除当前sheet中的关联值,即将关联值替换为空
F2REPLACE(GREPARRAY('sheet2'!A2+'sheet2'!B2, LEFT(item,LEN(A2))=A2),A2,"")整合C2~E2公式

3.3 效果预览

1)PC端

保存模板,点击PC端预览,如下图所示:

2020-12-28_16-25-33 (1).gif

2)移动端

1609145295632254.gif

4. 模板下载编辑

点击下载模板:跨sheet过滤单元格.cpt