求Excel公式:计算多规格文件在硬盘的最优空间适配组合
硬盘空间最优文件组合计算方案
这种通过逐步替换文件来最大化空间利用率的思路完全可行,以下是具体的Excel实现方法,针对你给出的10900GB剩余空间、59GB和71GB文件的场景:
一、基础参数定义
先在固定单元格设置核心参数:
- 硬盘剩余空间:
A2=10900 - 59GB文件大小:
K5=59 - 71GB文件大小:
L5=71
二、初始方案计算
- 初始可存放59GB文件数量:
计算结果为184,此时剩余空间:=FLOOR.PRECISE(A2/K5)
结果为44GB。=A2 - (FLOOR.PRECISE(A2/K5)*K5)
三、替换优化的实现方法
方法1:辅助列逐步迭代(直观易操作)
通过辅助列逐个尝试替换次数,找到剩余空间最小的组合:
- 在
D2:D10输入替换次数(从0到9,足够覆盖最优解范围); - 在
E2计算替换x次后可支配的总空间(原剩余+腾出的59GB空间):=(A2 - FLOOR.PRECISE(A2/K5)*K5) + D2*K5 - 在
F2计算该空间可存放的71GB文件数:=FLOOR.PRECISE(E2/L5) - 在
G2计算最终剩余空间:=E2 - F2*L5 - 查看
G列的最小值,对应的D2就是最优替换次数,F2是新增的71GB文件数。
针对你的场景,当替换次数x=51时,剩余空间为0,是最优解:
- 最终59GB文件数量:
184-51=133 - 71GB文件数量:
43 - 总占用:
133*59 +43*71=10900,完全利用空间。
方法2:公式直接计算最优解(无需辅助列)
利用数论中的模运算,直接计算最优的文件数量:
- 计算最优59GB文件数量(数组公式,需按
Ctrl+Shift+Enter输入):=FLOOR.PRECISE(A2/K5) - MATCH(MIN(MOD(A2 - ROW(INDIRECT("1:"&FLOOR.PRECISE(A2/K5)))*K5, L5)), MOD(A2 - ROW(INDIRECT("1:"&FLOOR.PRECISE(A2/K5)))*K5, L5), 0) + 1 - 计算对应的71GB文件数量:
=FLOOR.PRECISE((A2 - 上述单元格*K5)/L5)
四、关于IF函数的使用
用IF函数只能实现单次替换判断,比如:
=IF((剩余空间 + K5) >= L5, 初始数量-1, 初始数量)
但无法自动完成多次迭代替换。如果要仅用IF实现多次优化,需要嵌套多层IF,但次数有限,不如辅助列或数组公式灵活。
内容的提问来源于stack exchange,提问作者Daniel Garcia
相关产品推荐
相关产品推荐

