Google Sheets中如何用SPARKLINE实现XP进度条的顺序溢出填充?
多阶段XP进度条的SPARKLINE实现方案
核心思路
每个等级(level)对应100XP的跨度,进度条仅展示当前等级内的XP进度:
- Level 1:展示0-100XP的相对进度
- Level 2:展示100-200XP区间内的增量进度(即当前XP-100)
- Level 3:展示200-300XP区间内的增量进度(即当前XP-200)
以此类推,确保进度条按等级顺序依次填充。
优化后的公式
将原公式中的直接引用I52替换为当前等级内的相对XP值,max参数保持100即可:
=SPARKLINE(MIN(100, I52 - FLOOR(I52-1, 100)), {"charttype","bar";"max",100;"color1","#4CAF50";"empty","zero"})
公式拆解
FLOOR(I52-1, 100):计算当前等级的起始XP值(比如I52=150时,结果为100;I52=200时,结果为100)I52 - FLOOR(I52-1, 100):得到当前等级内已获得的XP增量MIN(100, ...):确保进度值不超过当前等级的最大值100(避免进度条溢出)
扩展说明
如果需要动态匹配等级对应的颜色(比如不同等级用不同颜色),可以嵌套IF函数修改color1参数:
=SPARKLINE(MIN(100, I52 - FLOOR(I52-1, 100)), {"charttype","bar";"max",100;"color1",IF(I52<=100,"#4CAF50",IF(I52<=200,"#2196F3","#FF9800"));"empty","zero"})
内容的提问来源于stack exchange,提问作者user25516
相关产品推荐
相关产品推荐

