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

如何在Google Sheets堆叠条形图中添加第二个条形标签?

我之前也碰到过这个痛点!Google Sheets原生图表的数据标签默认只能绑定单个系列,但不用修改原始数据也能实现你要的双标签条形图,分享两个靠谱的方法:

方法1:辅助列+组合图表(零代码,新手友好)

这种方法靠新增隐藏辅助列来生成第二个标签内容,再通过组合图表把两个标签叠加:

  1. 新增辅助列:在原始数据旁边插一列(比如D列),用公式生成你需要的第二个标签内容。举个例子,如果要显示百分比,假设原始数值在B列,总数值在B10,公式可以写:

    =TEXT(B2/$B$10,"0.0%")
    

    要是需要其他内容(比如分类名称),直接引用对应单元格就行。

  2. 设置组合图表:

    • 选中包含辅助列的所有数据,点击「插入」→「图表」
    • 在右侧图表编辑器里,把图表类型改成「组合图」
    • 把原始数值系列设为「条形图」,辅助列系列设为「散点图」(散点图能自由控制标签位置)
    • 给散点图设置数据:x轴用对应条形的数值(和原始数值一致),y轴对应条形的分类项
    • 给散点图添加数据标签,选择「单元格值」(选辅助列的内容),然后调整标签位置到条形右侧(和第一个标签错开)
    • 最后把散点图的标记大小设为0,隐藏掉散点,就只剩双标签了
方法2:Apps Script自定义标签(更灵活,无需辅助列)

如果不想加辅助列,用脚本可以直接给每个条形绑定两个标签:

  1. 打开脚本编辑器:点击「扩展程序」→「Apps Script」
  2. 粘贴并修改脚本:
    function addDualBarLabels() {
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      const targetChart = sheet.getCharts()[0]; // 这里取第一个图表,可根据需要调整索引
      const data = targetChart.getRange().getValues();
      
      // 修改图表标签,把两个内容用换行拼接
      const updatedChart = targetChart.modify()
        .setOption('series.0.dataLabels.text', function(){
          // 这里[row][1]是第一个标签(比如数值),[row][2]是第二个标签(比如百分比),按需修改列索引
          return `${data[this.row][1]}\n${data[this.row][2]}`;
        })
        .setOption('series.0.dataLabels.position', 'outsideEnd') // 标签位置设为条形外侧
        .build();
      
      sheet.updateChart(updatedChart);
    }
    
  3. 运行脚本:点击运行按钮,授权后脚本会自动给图表添加上下排列的双标签

效果对比说明:

  • 当前效果:每个条形仅显示单个标签(如纯数值)
  • 目标效果:每个条形显示上下两个标签(如数值+百分比,或其他组合内容)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:02:45