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;
}
相关推荐
the局外人2 小时前
Python 中使用 SSE 实现大模型流式输出
后端·python·llm
苍何2 小时前
用 WorkBuddy + LibTV 做 AI 视频,干活有点猛啊!(附教程)
后端
苍何2 小时前
我的新书冲上京东热榜第一了!
后端
掘金者阿豪3 小时前
MongoDB迁移到金仓数据库:商品属性继续灵活存,订单报表交给 SQL
前端·后端
zhoujungis3 小时前
限流算法实测:固定窗口 2 倍溢出、令牌桶突刺 | 尘世栈帧
后端
栉甜4 小时前
Vue2学习内容(上)
前端·javascript·vue.js·学习
小蒜学长4 小时前
编程语言在线学习平台的设计与实现(代码+数据库+LW)
java·spring boot·后端·编程语言在线学习平台·在线编码
shmily麻瓜小菜鸡5 小时前
TypeScript 知识点补充(第三部分:工程化与高级类型)
前端·javascript·typescript
zhoujungis6 小时前
登录态 1 小时就掉?Django + Vue 双 Token 认证实战 | 尘世栈帧
后端
武子康6 小时前
同一台 ESP32,GSM 能消回声,VoIP 为什么不行?
人工智能·后端·agent