7-8 WPS JS宏 对象使用实例5--按多字段做多种汇总

7-8 WPS JS宏 对象使用 实例5--按多字段做多种汇总

对象使用 实例5 按多字段做多种汇总

原数据和结果

代码:

function test(){

var arr=Sheets("销售表").Range("a2",Sheets("销售表").Range("e9999").End(xlUp)).Value();

var obj={},wsf=WorksheetFunction,newarr=\["仓库","年份","品名","求和","批次"];

for(var ar of arr){

var txt=`${ar\[0,ar1,ar2]}`;//学习重点:

if(txt in obj){//学习重点:新用法一次查3个值,必须3个值=true,

objtxt.push(ar4);//第二次以上添加ar4

}else{

objtxt=ar\[4];//第一次添加ar4

}

}

for(var key,zhi of Object.entries(obj)){

newarr.push(...key.split(","),wsf.Sum(zhi),wsf.CountA(zhi));//push()进行添加,用\[\]进行分行

}

Sheets("汇总表").Range("a1").Resize(newarr.length,5).Value2=newarr;

}

javascript 复制代码
function test(){
var arr=Sheets("销售表").Range("a2",Sheets("销售表").Range("e9999").End(xlUp)).Value();
var obj={},wsf=WorksheetFunction,newarr=[["仓库","年份","品名","求和","批次"]];
for(var ar of arr){
var txt=`${[ar[0],ar[1],ar[2]]}`;//学习重点:
	if(txt in obj){//学习重点:新用法一次查3个值,必须3个值=true,
	obj[txt].push(ar[4]);//第二次以上添加ar[4]
	}else{
	obj[txt]=[ar[4]];//第一次添加ar[4]
	}
	
		}
for(var [key,zhi] of Object.entries(obj)){

newarr.push([...key.split(","),wsf.Sum(zhi),wsf.CountA(zhi)]);//push()进行添加,用[]进行分行
}
Sheets("汇总表").Range("a1").Resize(newarr.length,5).Value2=newarr;
}
相关推荐
BomanGe28 分钟前
NSK直线导轨LH55EL与NH55EM替代指南
前端·javascript·数据库·经验分享·规格说明书
云水一下8 分钟前
Vue.js从零到精通系列(四):前端路由与Vue Router——打造多页单页应用
前端·javascript·vue.js
研☆香18 分钟前
jQuery补充知识点
前端·javascript·jquery
我登哥MVP20 分钟前
SpringCloud 核心组件解析:服务注册与发现
java·spring boot·后端·spring·spring cloud·java-ee·maven
先吃饱再说20 分钟前
JavaScript栈和队列:从“冰柜里的雪糕”到“排队打饭”
javascript·数据结构
槑有老呆22 分钟前
JavaScript 数组,远不止 [] 那么简单
javascript
uhakadotcom23 分钟前
什么是Mass Assignment(批量赋值)风险
后端·面试·github
XovH23 分钟前
Redis 从入门到精通:Python 操作 Redis 进阶
后端
XovH29 分钟前
Redis 从入门到精通:Python 操作 Redis
后端
HjhIron35 分钟前
从栈到队列,再到链表:前端开发者必知的线性数据结构
前端·javascript