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;
}
相关推荐
xianjixiance_10 小时前
HarmonyOS应用开发实战:萌宠日记 - 整体架构设计与技术选型解析
后端
掘金者阿豪10 小时前
数据库优化器到底在想什么:一个SQL今天能跑明天崩的背后
后端
b1305381004910 小时前
HarmonyOS应用开发实战:萌宠日记 - 回调函数模式
后端
Conan在掘金10 小时前
鸿蒙报错速查:Cannot find name 'image',忘 import 编译就炸,根因 + 真解法
后端
雪隐10 小时前
个人电脑玩AI-13让5060 Ti给你打工——我用 0.9B 小模型终结了"谁来记会议纪要"这个世纪难题
前端·人工智能·后端
橘子星10 小时前
我一个前端切图仔,凭什么能在浏览器里跑大模型?
前端·javascript·前端框架
无名之辈J10 小时前
Ai开发
后端
Conan在掘金10 小时前
�鸿蒙报错速查:arkts-strict-typing 函数返回值类型必须显式,忘标就炸,根因 + 真解法
后端
半个落月10 小时前
用 LangChain JS 做可控写作实验:理解温度参数、提示词与异步调用
javascript·人工智能·后端
爱勇宝10 小时前
《道德经》第 7 章:真正厉害的领导者,不抢主角
前端·后端·程序员