乐于分享
好东西不私藏

利用JSA对WPS表格进行分类汇总

利用JSA对WPS表格进行分类汇总

某会计师事务所2024年度年报审计实际收到款项如下,现在需要按照收款部门进行分类汇总,如下图所示:

像这类问题,想必大家在Excel VBA中使用字典来解决已经非常熟练了,那么在WPS中其实也是一样,因为都是一样的原理。使用JSA理解起来更容易,直接使用键值对的概念。

测试代码:

function test() {    let sht = ActiveSheet;    let data = sht.Range("A1").CurrentRegion.Value2    let map = new Map();    for (let i = 1; i < data.length; i++) {        let dept = data[i][1];          let amount = data[i][2];         if (map.has(dept)) {            map.set(dept, map.get(dept) + amount);        } else {            map.set(dept, amount);        }    }    let result = [["收款部门""收款总金额"]];    map.forEach((value, key) => {        result.push([key, value]);    });    let targetRange = sht.Range("E1").Resize(result.length2);    targetRange.Value2 = result;    targetRange.Borders.Item(xlEdgeBottom).LineStyle = xlContinuous;    console.log("汇总完成!");}

如果您嫌上面的代码有点多的话,还有一种更简洁的代码,使用了slicereduce,理解起来可能要难一点吧。

function test2() {    let sht = ActiveSheet;    let data = sht.Range("A1").CurrentRegion.Value2.slice(1);    let summary = data.reduce((acc, curr) => {        acc[curr[1]] = (acc[curr[1]] || 0) + curr[2];        return acc;    }, {});    let result = [["收款部门""收款总金额"], ...Object.entries(summary)];    sht.Range("E1").Resize(result.length2).Value2 = result;}

今天的分享就到这儿啦,非常感谢您对“Python SQL审天下公众号的关注和点赞。如果您觉得我的公众号能给您带来一丝丝的收获,请多多转发给您的朋友圈,让更多的人看到并了解。也许您不经意间的点赞和转发,会给他人带来独特的体验和感受。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 利用JSA对WPS表格进行分类汇总

评论 抢沙发

6 + 5 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮