ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 风雨相随3

[已解决] 合并单元格分摊

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-13 08:04 | 显示全部楼层
本帖最后由 jivy1212 于 2024-5-13 08:24 编辑
  1. F2=IF(A2="",F1/B1*B2,C2/LOOKUP(1,SUBTOTAL({3,9},OFFSET(A2,,{0,1},ROW($1:$66))))*B2)
复制代码
还有变题,再补个
  1. T3=IF(D3="",T2/L2*L3,P3/LOOKUP(1,SUBTOTAL({3,9},OFFSET(D3,,{0,8},ROW($1:$66))))*L3)
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-5-13 12:18 | 显示全部楼层
鉴于重新提供的示例数据2与一楼的有区别,在原通用公式的基础上,新的通用公式为(由于有的总重为零,重新设置了计算方法):
  1. =LET(srcA,D3:D443,srcB,L3:L443,srcC,P3:P443,num,ROWS(srcA),At,IF(srcA<>"",SEQUENCE(num),""),As,SCAN("",At,LAMBDA(x,y,IF(y="",x,y))),Ratio,MAP(srcB,As,LAMBDA(x,y,x/SUM(FILTER(srcB,As=y)))),Wt,MAP(As,srcC,SEQUENCE(num),LAMBDA(x,y,z,IF(z>1,IF(x=INDEX(As,z-1),INDEX(srcC,MATCH(x,As,0)),y),y))),Rs,Wt*Ratio,Rs)
复制代码


另外,示例数据2中有些格式有问题,如图中,D列与P列合并单元格不统一(图中已将D7、D8合并单元格)。
微信图片_20240513121418.png

TA的精华主题

TA的得分主题

发表于 2024-5-13 12:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=B2/(SUM(OFFSET(B$1,MATCH(,0/(A$1:A2>0))-1,,99))-SUM(OFFSET(B2,IFNA(MATCH(,0/(A3:A19>0),),1),,99)))*INDEX(C:C,MATCH(,0/(C$1:C2>0)))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-5-13 13:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

=L3/SUM(OFFSET(L$1,MATCH(,0/(D$1:D3>0))-1,,IFNA(MATCH(,0/(D4:D9852>0),),4^8)+ROW()-MATCH(,0/(D$1:D3>0))))*INDEX(P:P,MATCH(,0/(P$1:P3>0)))

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-5-13 14:08 | 显示全部楼层
=SUM((LOOKUP(ROW($2:$13),ROW($2:$13)/($A$2:$A$13<>""),$A$2:$A$13)=LOOKUP("座",$A$2:A2))*$C$2:$C$13)/SUM((LOOKUP(ROW($2:$13),ROW($2:$13)/($A$2:$A$13<>""),$A$2:$A$13)=LOOKUP("座",$A$2:A2))*$B$2:$B$13)*B2

TA的精华主题

TA的得分主题

发表于 2024-5-13 14:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
jisijie630 发表于 2024-5-13 13:49
=L3/SUM(OFFSET(L$1,MATCH(,0/(D$1:D3>0))-1,,IFNA(MATCH(,0/(D4:D9852>0),),4^8)+ROW()-MATCH(,0/(D$1:D ...

还是有误,另外在非合并单元格、总重连续为0的区段,也会出错。
微信图片_20240513143104.png
微信图片_20240513143413.png

TA的精华主题

TA的得分主题

发表于 2024-5-13 14:55 | 显示全部楼层
edwin11891 发表于 2024-5-13 14:34
还是有误,另外在非合并单元格、总重连续为0的区段,也会出错。

看一看,对不对?

合并单元格分摊2.zip

79.08 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2024-5-13 15:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
jisijie630 发表于 2024-5-13 14:55
看一看,对不对?

错误更多,几乎但凡合并单元格,分配结果都是0。

TA的精华主题

TA的得分主题

发表于 2024-5-13 17:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=LET(A,$P$3:P3,B,$D$3:$D$443,LOOKUP(9^9,SIGN(1/IF(A<>0,A,LOOKUP(9^9,A))),A)/SUM((LOOKUP(ROW(B),ROW(B)/(B<>""),B)=LOOKUP("座",$D$3:D3))*($L$3:$L$443))*L3)

TA的精华主题

TA的得分主题

发表于 2024-5-13 18:14 | 显示全部楼层
博爱风雨同舟 发表于 2024-5-13 17:30
=LET(A,$P$3:P3,B,$D$3:$D$443,LOOKUP(9^9,SIGN(1/IF(A0,A,LOOKUP(9^9,A))),A)/SUM((LOOKUP(ROW(B),ROW(B)/ ...

问题同14楼 jisijie630 版主差不多,错误行有不少。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-26 09:13 , Processed in 0.036647 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表