我有一个代表两列数值数据的折线图。图表的 X 轴显示从 2020 年初到年底的所有日期,Y 轴是两列的值。
问题是我对两个 Y 值只有一个条目,并且图表显示了从第一个日期到最后一个日期的所有值(除了一个条目之外,它将为零)。发生的情况是图表的线数据被塞到最左边,因为它包含两个数据列中的所有值,而不是不为零的值。
如何更改图表,使其仅显示已输入的 Y 值,以便我可以清楚地看到图表?基本上只是过滤掉列中的所有“零”条目,所以我只看到图表中表示的填充值?
我有一个代表两列数值数据的折线图。图表的 X 轴显示从 2020 年初到年底的所有日期,Y 轴是两列的值。
问题是我对两个 Y 值只有一个条目,并且图表显示了从第一个日期到最后一个日期的所有值(除了一个条目之外,它将为零)。发生的情况是图表的线数据被塞到最左边,因为它包含两个数据列中的所有值,而不是不为零的值。
如何更改图表,使其仅显示已输入的 Y 值,以便我可以清楚地看到图表?基本上只是过滤掉列中的所有“零”条目,所以我只看到图表中表示的填充值?
我试图寻找与您的具体案例相关的解决方案,但我还没有看到内置的方法来做到这一点。
我构建了一个简单的 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 脚本,你可以在实现它之前尝试查看文档。
如果您的数据以其他方式排列,请告诉我,以便我可以调整此脚本以满足您的需求。
在不使用 App Script 的情况下,另一种解决方法是创建一个新工作表并使用一些工作表公式过滤该数据:
=QUERY(Sheet1!A:B, "select A, B where B>0 and B is not null")
此解决方案的缺点是您需要通过QUERY. 但是,如果您对 Apps 脚本不满意。
我认为你想做的不是一个疯狂的想法,所以你可以报告它并尝试让谷歌实现它。