如何基于累计减重自动更新表格中奖励目标体重单元格
减重追踪表格自动更新乐高目标方案
核心逻辑梳理
- 累计减重≥2lbs解锁1袋乐高,反弹后已解锁的奖励不退回,后续需完成更高减重目标才能获取下一袋
- 基于实际累计减重(Column P)或已解锁最高袋数,自动匹配下一个目标体重(Column L)和剩余磅数(Column M)
方案1:基于当前累计减重(支持反弹退回目标,适合严格要求反弹后需重新完成当前阶段)
假设你的目标表(命名为TargetTable)包含以下列:
Bag:乐高袋序号(1,2,3...)Target Weight:对应袋数的目标体重(如261,259,257...)Amount Lost:对应袋数需累计减重的磅数(2,4,6...),且该列按升序排列
Column L(Next Lego Bag目标体重)公式:
=IFERROR(INDEX(TargetTable[Target Weight], MATCH(P2, TargetTable[Amount Lost], 1)+1), "已解锁所有奖励")
MATCH(P2, TargetTable[Amount Lost], 1):找到小于等于当前累计减重的最大目标减重值的位置+1:定位到下一个未完成的目标体重IFERROR:处理已完成所有目标的情况
Column M(剩余磅数)公式:
=IFERROR(INDEX(TargetTable[Amount Lost], MATCH(P2, TargetTable[Amount Lost], 1)+1) - P2, 0)
- 用下一个目标的累计减重值减去当前实际减重,得到还需减的磅数
方案2:基于已解锁最高袋数(支持反弹不退回目标,符合“反弹需多减重”需求)
如果需要实现反弹后已解锁奖励保留,下一个目标仍为下一级,需新增一列(如Column N:Unlocked Bags)记录已解锁的最高袋数:
Column N(Unlocked Bags)公式:
=MAX(N1, FLOOR(P2, 2)/2)
FLOOR(P2,2)/2:计算当前累计减重能解锁的袋数(每2lbs1袋)MAX(N1, ...):确保袋数只增不减,反弹时保留之前的最高解锁数
Column L(Next Lego Bag目标体重)公式:
=IFERROR(INDEX(TargetTable[Target Weight], N2+1), "已解锁所有奖励")
- 基于已解锁袋数+1,直接匹配目标表中的下一级目标体重
Column M(剩余磅数)公式:
=IFERROR(INDEX(TargetTable[Amount Lost], N2+1) - P2, 0)
- 计算完成下一个目标还需减重的磅数
补充说明
- 若你的目标表未命名,可直接用单元格区域替代(如
$A$2:$C$10代表目标表的Bag、Target Weight、Amount Lost列) - 非整数减重的处理:
MATCH和FLOOR函数天然支持非整数,MATCH会自动匹配最接近的小于等于值,FLOOR会向下取整到最近的2lbs倍数
内容的提问来源于stack exchange,提问作者Matthew Timmons
相关产品推荐
相关产品推荐

