Google App Script - визуализация опроса с помощью электронной таблицы Google
Я использовал опрос, чтобы собрать данные о мнении людей. Ответ на вопрос с помощью флажка (Да / Нет)
Я хотел бы визуализировать результаты с помощью диаграмм. Как я могу сделать это, используя один столбец. Все примеры, которые я видел, связаны с построением графиков между двумя столбцами.
Например:
col A
No
Yes
Yes
Круговая диаграмма: 66% ДА - 33% НЕТ
Я использую этот скрипт, но когда я запускаю его, ничего не происходит
function updateGraph() {
var sheet = SpreadsheetApp.getActiveSheet()
var charts = sheet.getCharts();
if (charts.length < 1) {
return;
}
var chart = charts[0]; // We operate only on the first graph in this example
var ranges = chart.getRanges();
var range = ranges[0]; // ... and we expect it to have only one range
var dataRange = sheet.getDataRange();
var numRows = dataRange.getNumRows(); // Find the actual number of rows in the sheet
var rangeA1Notation = "B1:B"+numRows;
chart = chart.modify().removeRange(range).setOption("title", "Chart over " + rangeA1Notation).addRange(sheet.getRange(rangeA1Notation)).build();
sheet.updateChart(chart)
}
Есть идеи, как это решить?
2 ответа
Я бы посоветовал узнать, сколько у вас "ДА" и "НЕТ":
var numYes = 0;
var numNo = 0;
var rangeYesNo = sheet.getRange(range).getValues();
for (i=0; i<rangeYesNo.length; ++i) {
if (rangeYesNo[i].indexOf('yes') > -1){
numYes++;}
if(rangeYesNo[i].indexOf('no') > -1){
numNo++;}
}
}
и если вы не хотите попробовать работать с созданием структуры данных для таблицы...
(см. https://developers.google.com/chart/interactive/docs/reference).
может быть проще назначить значения для места в электронной таблице и построить таблицу из этого сегмента 2x2:
sheet.getRange('F1').setValue('Yes');
sheet.getRange('F2').setValue('No');
sheet.getRange('G1').setValue(numYes);
sheet.getRange('G2').setValue(numNo);
var rangeA1Notation = sheet.getRange('F1:G2');
Вы можете использовать функцию в вашей электронной таблице, например:
=COUNTIF(A:A,"Yes")
и в ожидании
=COUNTIF(A:A,"No")
так что вы можете построить таблицу непосредственно в электронной таблице: