求适用于Excel算法的IF函数公式(附队列-房间分配表格)
Excel IF函数公式解决方案
从你给出的表格规律来看,核心逻辑是每个房间依次从1开始递增到12,之后保持12不变,下一个房间再重复这个过程——队列1-12时只有房间1在递增,队列13-24时房间1固定12、房间2开始递增,以此类推。下面给你对应每个房间的IF公式,以及更高效的替代方案:
单个房间的IF公式(以队列号在A列为例)
假设队列号在A2单元格,各房间对应列:
房间1(B2):
=IF(A2<=12, A2, 12)逻辑:队列号≤12时,直接取队列号;超过12后固定为12。
房间2(C2):
=IF(A2<=12, 0, IF(A2<=24, A2-12, 12))逻辑:队列号≤12时填0;13-24区间用队列号减12得到1-12;超过24后固定为12。
房间3(D2):
=IF(A2<=24, 0, IF(A2<=36, A2-24, 12))以此类推,第n个房间的IF公式可以通用化为:
=IF(A2<=12*(n-1), 0, IF(A2<=12*n, A2-12*(n-1), 12))这里的
n是房间序号(房间1对应n=1,房间2对应n=2...)
更高效的非IF替代方案(推荐)
如果不想写多层嵌套IF,可以用MAX+MIN组合函数,逻辑和IF完全一致,但更简洁易维护:
=MAX(0, MIN(12, A2-12*(n-1)))
解释:先计算当前队列号减去前面所有已填满房间的总容量(每个房间最多12个),结果小于0就取0(还没轮到这个房间),大于12就取12(房间已填满),否则取计算出的递增数值。
你可以把公式下拉填充到所有队列行,就能自动生成表格里的结果啦。
内容的提问来源于stack exchange,提问作者VS1SQL
相关产品推荐
相关产品推荐

