1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

帖子
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: tzfch

[求助] 自动调整数据到一定的范围内。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-1-26 10:29 | 显示全部楼层
tzfch 发表于 2025-1-26 09:53
我已经将计算表简化了

大概看出你的问题在哪,主要在于调整孔深后,总数需要保持相等,所以即使按照规则1、2调整后的孔深,还需要调整,使总和不变。难点就在这个调整上。

你这文件里面有什么东西,已经把我的WPS搞崩溃了三次!

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-1-26 10:43 | 显示全部楼层
edwin11891 发表于 2025-1-26 10:29
大概看出你的问题在哪,主要在于调整孔深后,总数需要保持相等,所以即使按照规则1、2调整后的孔深,还需 ...

高手用的大多是旧电脑。
我的旧电脑用的2010就没有问题。
用第二个文件吧。这个是简化的,文件要小很多。

TA的精华主题

TA的得分主题

发表于 2025-1-26 11:28 | 显示全部楼层
tzfch 发表于 2025-1-26 10:43
高手用的大多是旧电脑。
我的旧电脑用的2010就没有问题。
用第二个文件吧。这个是简化的,文 ...

一,我不是高手,也是来这里学习的;
二、说的就是第二个文件,崩四次了;
三、文件内你自己的公式基本解决了,除了“39”差5米没有凑齐。

TA的精华主题

TA的得分主题

发表于 2025-1-26 12:12 | 显示全部楼层
“39”内的公式就是通用的,改一点:
=IF(AND(D7>0,SUM($C$6:C6)<=SUM($D$6:D6)),IF(D7>=19,19,IF(D7>5,D7-0.5,5)),IF(AND(D7=0,SUM($C$6:C6)<=SUM($D$6:D6)),MIN(19,SUM($D$6:D6)-SUM($C$6:C6)),5))

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-1-26 12:33 | 显示全部楼层
本帖最后由 tzfch 于 2025-1-26 13:00 编辑
edwin11891 发表于 2025-1-26 12:12
“39”内的公式就是通用的,改一点:
=IF(AND(D7>0,SUM($C$6:C6)=19,19,IF(D7>5,D7-0.5,5)),IF(AND(D7=0,S ...

工作表39中修改后出现了小于5的4.5.
工作表51、52中的公式是比较好一点的,修改了其中的一些以前没有考虑到的地方,比如:所有的孔深都大于19米。
但是,还是要手工修改几个单元格的内容,不能一次性的解决所有的问题。

TA的精华主题

TA的得分主题

发表于 2025-1-26 12:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
tzfch 发表于 2025-1-26 12:33
修改后出现了小于5的4.5.

附件内“39”、“51”、“52”三个表检查无误啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-1-26 13:15 | 显示全部楼层
edwin11891 发表于 2025-1-26 12:58
附件内“39”、“51”、“52”三个表检查无误啊

可能是我的电脑反应太慢了,现在是正确的。

TA的精华主题

TA的得分主题

发表于 2025-1-26 13:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
tzfch 发表于 2025-1-26 13:15
可能是我的电脑反应太慢了,现在是正确的。


如果有高版本,还可以采用下面公式,就不用下拉公式了:
  1. =LET(f,LAMBDA(x,SUM(D6:OFFSET(x,-1,))),t,REDUCE({0,0},D7:D1000,LAMBDA(x,y,LET(DF,IF(AND(y>0,SUM(TAKE(x,,1))<=f(y)),IF(y>=19,19,IF(y>5,y-0.5,5)),IF(AND(y=0,SUM(TAKE(x,,1))<=f(y)),MIN(19,f(y)-SUM(TAKE(x,,1))),5)),VSTACK(x,HSTACK(DF,SUM(TAKE(x,,1))))))),Re,DROP(t,1,-1),Res,FILTER(Re,Re<>0),Res)
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-1-26 14:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 tzfch 于 2025-1-26 15:10 编辑
edwin11891 发表于 2025-1-26 13:37
如果有高版本,还可以采用下面公式,就不用下拉公式了:

FILTER  这个函数不认识。
我自己又修改了一下,为:
C7:=IF(D8=0,MIN(19,SUM(D$6:D6)-SUM($C$6:C6)+M7),IF(D7<5-$B$6,5,IF(D7>19-$B$6,19,MIN(19,D7+$B$6))))
B6:=IFERROR(ROUND((SUMIF($M$7:$M$210,"<5")-COUNTIFS($M$7:$M$210,"<5",$M$7:$M$210,">0")*5+SUMIF($M$7:$M$210,">19")-COUNTIF($M$7:$M$210,">19")*19)/COUNTIFS($M$7:$M$210,">=5",$M$7:$M$210,"<=19"),1),)
但是,还是不完美,还要手工调整几个单元格。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

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

GMT+8, 2025-2-13 14:38 , Processed in 0.039291 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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