WPS宏自动化:小白也能轻松统计库存 点击使用AI助手 了解更多

发布于 2024-11-24 liusiyang 6 编辑

案例:以下是一张出入库记录表,现在需统计每个物品的库存,并显示在G4单元格开始的区域。

通常这样的问题,我们一般是将名称粘贴到G列,去重,再在H列设置SUMIF函数,对数量进行条件求和,从而得到库存。

但现在需要将这个表做成一个模板,拿给小白使用,他不会去重,也不会设置公式,只会简单的数据录入,那就需要用到JS宏来解决了。

WPS宏编辑器中输入以下代码:

以下是源代码:

function 分类汇总(){

dic={}

ar=Range("a3").CurrentRegion.Value2

for(i=1;i<=ar.length-1;i++){

t=ar[i][0]

dic[t]=dic[t] ? dic[t]+ar[i][2] : ar[i][2]

}

k = Object.entries(dic)

Range('g4').Resize(k.length,2).Value2=k

}

以下是逐行注释:

// 定义一个名为“分类汇总”的函数

function 分类汇总(){

// 创建一个空字典(也称为对象),命名为“dic”

dic={}

// 从“A3”单元格开始,获取其所在的连续区域的所有值(这将是一个二维数组),并赋值给数组“ar”

ar=Range("a3").CurrentRegion.Value2

// 开始一个for循环,从索引1开始,到数组“ar”的长度减1结束

for(i=1;i<=ar.length-1;i++){

// 从当前行的第一个单元格获取值,赋值给变量“t”

t=ar[i][0]

// 检查“dic”字典是否包含键“t”,如果包含,则将“ar[i][2]”的值加到已有的值上,如果不包含,则直接将“ar[i][2]”的值作为新的值存入字典

dic[t]=dic[t] ? dic[t]+ar[i][2] : ar[i][2]

}

// 使用Object.entries方法将字典“dic”转化为一个二维数组,每个元素是一个包含两个元素的数组(键和值),赋值给数组“k”

k = Object.entries(dic)

// 将数组“k”的值赋给从“G4”单元格开始扩展“k”行2列的区域

Range('g4').Resize(k.length,2).Value2=k

}

以下是运行效果:

点赞评论,可领取源码素材。

原文链接:https://bbs.wps.cn/topic/8937

上一篇: WPS从入门到熟练的快速指南
下一篇: 在线协作工具对比分析:腾讯、飞书与金山文档的优劣
相关文章