如何缩小图表/过滤掉 "zero" 值,这样结果就不会塞进一个很小的 ​​space 中

How to shrink a chart / filter out "zero" values so results aren't crammed into a tiny space

我有一个代表两列数值数据的折线图。图表的X轴显示了2020年初到年底的所有日期,Y轴是两列的值。

问题是对于两个 Y 值我只有一个条目,并且图表显示了从第一个日期到最后一个日期的所有值(除了一个条目之外将为零)。发生的情况是图表的线条数据挤在最左边,因为它包括两个数据列中的所有值,而不是非零值。

如何更改图表,使其仅显示已输入的 Y 值,以便我可以清楚地看到图表?基本上只是过滤掉列中的所有 "zero" 条目,所以我只看到图表中表示的填充值?

我已经尝试寻找与您的具体案例相关的解决方案,但我还没有看到内置的方法。

我构建了一个简单的 Apps 脚本,它会在第二列中查找第一个空值,以便在每次编辑时更新图表范围。

function onEdit(e) {
  var sheet = SpreadsheetApp.getActiveSheet();

  // Assuming that your X-axis is in the first column
  // and your Y-axis is in the second
  var rang = sheet.getRange(1, 2, sheet.getLastRow());

  var rangValues = rang.getValues()

  // Checking the first value in the second column that is not defined
  for(var i = 0; i < rangValues.length; i++){
    if( rangValues[i] == undefined || rangValues[i] == "" || rangValues[i] == 0 ){
      break;
    }
  }

  var finalRange = sheet.getRange(1, 1, i, 2);

  // Updating the chart with the new Range
  var chart = sheet.getCharts()[0];
  chart = chart.modify()
               .clearRanges()
               .addRange(finalRange)
               .build();
  sheet.updateChart(chart);
}

这对我有用,如果您不熟悉 Apps 脚本,可以在实施之前尝试查看 the documentation

如果您的数据以其他方式排列,请告诉我,以便我可以调整此脚本以满足您的需要。


另一个可以尝试做的解决方法是创建一个新的 sheet 并使用一些 sheet 的公式过滤该数据:

=QUERY(Sheet1!A:B, "select A, B where B>0 and B is not null")

此解决方案的缺点是您需要通过 QUERY 复制数据。但是,如果您对 Apps 脚本不满意。


我认为你想做的事情不是一个疯狂的想法,所以你可以报告它并尝试让 google 实施它。