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")

так что вы можете построить таблицу непосредственно в электронной таблице:
введите описание изображения здесь

демо здесь

Другие вопросы по тегам