巧用WPS 新函数:无辅助列情况下处理合并单元格查询统计难题

古哥计划
古哥计划

优秀创作者

在一个含有合并单元格数据的表格进行查询分析时,我们遇到了挑战。具体来说,表1记录了一组项目统计数据,详尽展示了各项目在不同年份的表现情况。现需构建一张表2作为查询报表,其功能应为:当用户输入特定年份后,报表能准确呈现该年份内所有项目的相关数据。

本应是一个简易的查询任务,却因表1中存在合并单元格而变得复杂。源表为了保持格式整齐与视觉美感,对合并单元格的使用有所坚持,既不允许取消现有合并,也不接受通过增设辅助列的方式来简化查询过程。这就对我们在不破坏源表结构的前提下,实现高效、精准的年度数据查询提出了较高要求。

需求分析

要确保在表2中录入查询年份后,报表能准确展示该年份内所有项目的相关数据,首先需要取消合并单元格,并对由此产生的空白单元格进行数据填充,将其整理成一个规范的一维数据表。关键挑战在于如何在不借助辅助列的情况下构建单一连续的数组。即将发布的WPS办公软件中的SCAN函数恰好能够有效应对这一难题。

利用SCAN函数,可以针对取消合并单元格后出现的空值进行迭代处理。具体操作如下:对每个单元格(用变量Y表示)进行判断,若Y值为空,则保留前一次迭代的结果(即变量X的值);反之,若Y非空,则将当前单元格的Y值作为结果输出。如此一来,SCAN函数便能自动跳过空白单元格,连贯地串联起非空数据,生成所需的一维数组,从而无需额外使用辅助列。

综上所述,借助WPS即将推出的SCAN函数,通过对其迭代过程中遇到的空单元格进行智能判断与处理,能够在无需辅助列的条件下,高效地将取消合并后的表格整理成标准的一维数据表,确保报表能够准确反映所查询年份内所有项目的相关数据。

单列取消

由于表格中存在多列合并的单元格,为了便于大家清晰理解函数公式的计算逻辑,我们将分步骤展示其构成,最终再整合成完整的公式。首先,请在单元格中键入以下第一步的函数:

=SCAN("",D3:D12,LAMBDA(X,Y,IF(Y="",X,Y)))

此公式旨在处理取消合并后的单元格,通过SCAN函数逐步遍历范围D3:D12。当遇到空单元格(即Y=""),函数保留前一次迭代的结果X;对于非空单元格,则返回当前单元格的值Y。执行完毕后,将得到已消除合并影响、填充了空白单元格的有序数据结果。

多列取消

若需对多列合并单元格进行处理,一种简便的做法是分别应用上述针对单列取消合并单元格的公式逻辑。然而,随着处理列数增多,相应的公式将会显著增长,显得冗长且不易管理。为避免这种重复操作,可巧妙引入转置函数,从而简化整个过程。

录入以下函数:

=TRANSPOSE(SCAN("",TRANSPOSE(B3:G12),LAMBDA(X,Y,IF(Y="",X,Y))))

借助转置函数(如TRANSPOSE),通过两次巧妙的应用,我们可以高效地处理多个合并单元格,避免对多列合并单元格进行繁琐的重复取消操作。这种方法不仅显著提升了处理效率,还确保了公式的简洁性。

效果如下图所示:

筛选查询

上面的公式实现了取消合并单元格的效果,将源数据巧妙的转换成一个标准的一维数据后,就可以配合筛选函数进行筛选查询了,其中查询的条件就是筛选条件。

录入公式:

=FILTER(TRANSPOSE(SCAN("",TRANSPOSE(B3:G12),LAMBDA(X,Y,IF(Y="",X,Y)))),E3:E12=J1)

函数释义:

已筛选数据区域B3:G12(该区域为已取消合并的单元格),筛选条件设定为E3:E12列数值等于查询条件J1(设定为“2020”)。经过筛选,成功返回了两行数据,分别对应北京和宁波的项目A与B。至此,完成了对合并单元格数据的查询报表设计。

313 破译订单堆叠难题:WPS SCAN函数在PMC生产计划中的应用实例

312 PMC的日常挑战:如何用WPS表格精准抓取单元格内的数字信息

311 零件产销存报表难题:不规范数据格式与跨页数据整合的困局与破局

310 WPS最新函数技巧:精准定位与智能舍入,罗马数字秒变阿拉伯数字

309 PMC精益库存管理与订单分配自动化设计WPS一站式报表模板

308 工厂信息化升级实战:巧解无规律物料编码,动态提取字母组合

307 一招GET!借助通配符解决表格数据汇总难题:SUMIF函数实例详解

306 一键生成:RANDARRAY 函数在数据分组与数学作业个性化定制中的妙用

305 实战演练:10种创新策略解锁WPS表格函数在成绩查询中的高效应用

304 步步详解:运用WPS函数整合工厂报表,实现全年度产品数据深度挖掘

303 运用WPS新函数实现工厂产销存报表的智能化整合与数据分析

302 BOM转换策略:树型BOM与父件子件BOM的优缺点分析及其相互转换方法

301 深入理解订单齐套率计算方法及应用实践案例解析

300 物料需求运算表优化实战:从“卡顿”到“流畅”的转变

299 WPS表格自动化编号:升序与累计编号的实用方法

298 输入法配合WPS表格公式,轻松实现虚拟数据批量生产:助力讲师快速培训演示

297 探究二维与一维报表的奥秘:掌握三种实用转换策略,应对庞大数据量挑战

296 从理论到实践:WPS 内测SCAN函数在销售金额稳定性评估中的神奇运用

295 新旧交织,效率升级:WPS表格新函数REDUCE、BYROW等在复杂业务场景下的灵动

294 WPS内测版新功能揭秘:“SCAN”迭代函数的运用与实践

293 借助WPS动态数组公式实现智能扩展填充与数据转换自动化

292 MRP原理课后的表格制作练习题目:技能与实战双丰收

运用WPS/Lambda及Scan函数实现动态数组累计需求分析 No291

巧用WPS AI,为上百名女员工打造3·8女神节专属祝福与精美卡片 290

从单一公式到复杂逻辑:通过实战案例揭示PMC面试中数据分析与解决问题的能力区分 No 289

MRP多阶需求运算报表-WPS表格版本 (8 No 288

MRP多阶需求运算报表-WPS表格版本 (7) No 287

MRP多阶需求运算报表-WPS表格版本 (6) No 286

MRP多阶需求运算报表-WPS表格版本 (5) No 285

MRP多阶需求运算报表-WPS表格版本 (4) No 284

MRP多阶需求运算报表-WPS表格版本 (3) No 283

广东省
浏览 838
收藏
4
分享
4 +1
1
+1
全部评论 1
 
Boyuan
感谢分享, 学习了 用LAMBDA包装一下, 或自定义个名称, 用着就很舒服了 =LAMBDA(筛选区域, 条件列, 条件, LET( rng, TRANSPOSE(SCAN("", TRANSPOSE(筛选区域), LAMBDA(X, Y, IF(Y = "", X, Y)))), FILTER(rng, CHOOSECOLS(rng, 条件列) = 条件) ) )(B3:G12, 4, J1)
· 河南省
回复