练手的,参与下下,
函数是 一步到位的; 都写到原始数据区域100行,剔掉了"生产成本"与"制造费用"
聚合:
=VSTACK({"项目名称","单位","期初余额","期末余额=期初余额+本期借方-本期贷方","累计发生额=借方累计-贷方累计"},GROUPBY(HSTACK(D10:D100,F10:F100),HSTACK(J10:J100,(J10:J100+K10:K100-L10:L100),(M10:M100-N10:N100)),SUM,,0,,(H10:H100<>"生产成本")*(H10:H100<>"制造费用")*(H10:H100<>"")))
偱环:
=LET(_标题,{"项目名称","单位","期初余额","期末余额=期初余额+本期借方-本期贷方","累计发生额=借方累计-贷方累计"},_去掉生产制造,FILTER(D10:N100,(H10:H100<>"生产成本")*(H10:H100<>"制造费用")*(H10:H100<>"")),_项目,CHOOSECOLS(_去掉生产制造,1),_单位,CHOOSECOLS(_去掉生产制造,3),_期初,CHOOSECOLS(_去掉生产制造,7),_本期借方,CHOOSECOLS(_去掉生产制造,8),_本期贷,CHOOSECOLS(_去掉生产制造,9),_借方累计,CHOOSECOLS(_去掉生产制造,10),_贷方累计,CHOOSECOLS(_去掉生产制造,11),_汇总,SORT(DROP(REDUCE("",UNIQUE(_项目&"#"&_单位),LAMBDA(a,b,VSTACK(a,HSTACK(TEXTSPLIT(b,"#"),SUM(FILTER(_期初,b=_项目&"#"&_单位)),SUM(FILTER(_期初,b=_项目&"#"&_单位)+FILTER(_本期借方,b=_项目&"#"&_单位)-FILTER(_本期贷,b=_项目&"#"&_单位)),SUM(FILTER(_借方累计,b=_项目&"#"&_单位)-FILTER(_贷方累计,b=_项目&"#"&_单位)))))),1),1,1),VSTACK(_标题,_汇总))
|