You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中基于百分比列制作周期状态堆叠条形图

问题:在Google Sheets中制作对应状态占比的堆叠条形图

我有一张记录机器每个周期状态及对应时间占比的表格,数据如下:

CycleStatePercentage_State
11060
11140
22730
22670
320100
423100
51685
5175
51810

我需要制作堆叠条形图:X轴为周期(Cycle),Y轴为0-100的占比刻度;每个周期的条形按对应状态的占比堆叠,比如周期1分为60%的状态10和40%的状态11,周期5分为85%的状态16、5%的状态17和10%的状态18。但直接用Google Sheets的堆叠图表选项无法将State标签对应到Percentage_State的数值设置条长,请问该怎么实现?


解决方案

第一步:重新整理数据格式

Google Sheets的堆叠条形图要求状态作为列标题,周期作为行标签,每个单元格对应该周期下对应状态的占比。你需要把现有数据转成如下结构:

Cycle101126272023161718
16040
27030
3100
4100
585510

可以用QUERY函数快速转换,假设原始数据在A1:C10区域,在新单元格(比如E1)输入公式:

=QUERY(A1:C10, "SELECT A, MAX(IF(B=10,C,0)), MAX(IF(B=11,C,0)), MAX(IF(B=26,C,0)), MAX(IF(B=27,C,0)), MAX(IF(B=20,C,0)), MAX(IF(B=23,C,0)), MAX(IF(B=16,C,0)), MAX(IF(B=17,C,0)), MAX(IF(B=18,C,0)) GROUP BY A LABEL A 'Cycle', MAX(IF(B=10,C,0)) '10', MAX(IF(B=11,C,0)) '11', MAX(IF(B=26,C,0)) '26', MAX(IF(B=27,C,0)) '27', MAX(IF(B=20,C,0)) '20', MAX(IF(B=23,C,0)) '23', MAX(IF(B=16,C,0)) '16', MAX(IF(B=17,C,0)) '17', MAX(IF(B=18,C,0)) '18'")

这个公式会自动按周期分组,把每个状态的占比填充到对应列,空值显示为空白,不影响后续图表生成。

第二步:插入堆叠条形图

  1. 选中整理好的整个数据区域(包括表头和所有行)
  2. 点击顶部菜单栏的插入 > 图表
  3. 在右侧图表编辑器中,选择条形图分类下的堆叠条形图
  4. 调整细节设置:
    • 在「数据范围」确认选中区域正确
    • 在「轴」设置里,将Y轴范围固定为0-100,X轴设为「Cycle」
    • 在「系列」里可以给每个状态设置专属颜色,方便区分
    • 开启「数据标签」,直接显示每个堆叠部分的占比数值

注意事项

  • 如果后续新增状态或周期,需要更新QUERY函数里的状态值(比如新增状态21,就添加MAX(IF(B=21,C,0))并在标签里补充'21')
  • 空白单元格会被视为0,不会影响堆叠效果,因为对应周期确实没有该状态的占比

内容的提问来源于stack exchange,提问作者Pixel Boujee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 03:45:20