如何为Sparkline单元格设置背景色并显示进度百分比?
基于Sparkline实现日期区间进度条的格式调整需求
我有一组开始/结束日期对,想用Sparkline根据当前日期展示进度:
| A | B |
|---|---|
| BeginDate | EndDate |
| 21.01.2023 | 21.10.2023 |
当前日期为30.04.2023(DD.MM.YYYY格式),我用的公式是:
=SPARKLINE(MAX(0,TODAY()-A2),{"charttype","bar";"max",MAX(1,B2-A2)})
现在有两个问题:
- 怎么修改公式,让进度条的100%背景变成蓝色,进度条保留默认橙色?
- 能不能在放进度条的同一个单元格里,同时显示进度百分比数字?
问题1:设置进度条背景色
要给Sparkline条形图加背景色,得把输入数据改成数组形式,同时用color1和color2参数分别指定进度条和背景的颜色。修改后的公式:
=SPARKLINE( {MAX(0,TODAY()-A2), MAX(0,B2-MAX(TODAY(),A2))}, {"charttype","bar";"max",B2-A2;"color1","#FF9900";"color2","#4A86E8"} )
- 数组第一个值是已完成天数(橙色进度条),第二个值是剩余天数(蓝色背景)
max设为总天数B2-A2,保证进度比例准确- 颜色代码可按需替换,示例中
#FF9900为橙色,#4A86E8为蓝色
问题2:同一单元格显示进度条+百分比
Excel无法直接让Sparkline与文本共存,但可以通过自定义单元格格式实现类似效果:
- 先在单元格输入问题1中的带背景色Sparkline公式
- 右键单元格 → 设置单元格格式 → 数字 → 自定义,在「类型」框中输入:
G/通用格式" "&TEXT(MAX(0,MIN(1,(TODAY()-A2)/(B2-A2))),"0%")
- 确认后,单元格会同时显示进度条和百分比数字
若需更灵活排版,可开启单元格自动换行,用&CHAR(10)&拼接Sparkline与百分比文本,但自定义格式的方式更简洁稳定。
内容的提问来源于stack exchange,提问作者Pr0no
相关产品推荐
相关产品推荐

