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;
}
相关推荐
山河木马1 小时前
矩阵专题3-怎么创建投影矩阵(uProjectionMatrix)
javascript·webgl·计算机图形学
苏三说技术2 小时前
LangChain4j 和 LangGraph4j,哪个更好?
后端
ServBay3 小时前
7 个AI开发中真正用得上的 MCP Server,配合Claude Code食用效果更佳
后端·claude·mcp
泯泷3 小时前
第 2 篇:设计第一套字节码:Opcode、Instruction 与 Constant Pool
前端·javascript·安全
妙码生花3 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
泯泷3 小时前
第 1 篇:从 1 + 2 开始:亲手写出第一台 JSVM
前端·javascript·安全
用户6757049885024 小时前
Go 语言里判断字符串为空,90% 的人都写错了!
后端·go
朦胧之4 小时前
页面白屏卡住排查方法
前端·javascript
用户6757049885024 小时前
Go 进阶必修:90% 的人都没用对的“表驱动法”
后端·go