求用于拆分排队系统的IF公式,附手动录入的表格数据
排队系统拆分的IF公式解决方案
先把你提供的排队数据整理成清晰的表格,方便分析规律:
| LINE | ROOM A | ROOM B | ROOM C | ROOM D | ROOM E | ROOM F |
|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 0 |
| 2 | 2 | 0 | 0 | 0 | 0 | 0 |
| 3 | 3 | 0 | 0 | 0 | 0 | 0 |
| 4 | 4 | 0 | 0 | 0 | 0 | 0 |
| 5 | 5 | 0 | 0 | 0 | 0 | 0 |
| 6 | 6 | 0 | 0 | 0 | 0 | 0 |
| 7 | 7 | 0 | 0 | 0 | 0 | 0 |
| 8 | 8 | 0 | 0 | 0 | 0 | 0 |
| 9 | 5 | 4 | 0 | 0 | 0 | 0 |
| 10 | 5 | 5 | 0 | 0 | 0 | 0 |
| 11 | 6 | 5 | 0 | 0 | 0 | 0 |
| 12 | 6 | 6 | 0 | 0 | 0 | 0 |
| 13 | 7 | 6 | 0 | 0 | 0 | 0 |
| 14 | 7 | 7 | 0 | 0 | 0 | 0 |
| 15 | 8 | 7 | 0 | 0 | 0 | ... |
规律分析
从数据能看出两个阶段的排队逻辑:
- 初始单阶段(LINE 1-8):只有ROOM A承接排队号,数值和LINE号完全一致,其他ROOM为0。
- 双协同阶段(LINE 9及以后):ROOM A固定为一组主号(5、6、7、8...),每个主号对应2行;ROOM B的数值从「主号-1」递增到「主号」,和LINE的奇偶性对应。
对应IF公式
假设你的LINE号在Excel的A2单元格开始(A2=1,A3=2...),以下是各ROOM的公式:
ROOM A(B列单元格)
=IF(A2<=8,A2,CEILING((A2-8)/2,1)+4)
解释:
- 前8行直接取LINE号;
- 第9行及以后,先减去前8行的偏移量,除以2后向上取整得到分组序号,再加4就得到对应的主号(比如LINE9:(9-8)/2=0.5,向上取整为1,1+4=5,完全匹配数据)。
ROOM B(C列单元格)
=IF(A2<=8,0,IF(MOD(A2-8,2)=1,CEILING((A2-8)/2,1)+3,CEILING((A2-8)/2,1)+4))
解释:
- 前8行固定显示0;
- 第9行及以后,判断LINE减去8后的奇偶性:
- 奇数行(比如LINE9):显示「主号-1」,对应公式里的
+3; - 偶数行(比如LINE10):显示「主号」,对应公式里的
+4。
- 奇数行(比如LINE9):显示「主号-1」,对应公式里的
如果后续需要扩展到ROOM C及更多,这个逻辑可以类推——每个新增ROOM的数值会从当前最后一个ROOM的数值-1开始递增,每组主号对应的行数会翻倍,调整公式里的偏移量和增量即可适配。
内容的提问来源于stack exchange,提问作者VS1SQL
相关产品推荐
相关产品推荐

