Quiero crear una macro para crear gráficos basados ​​en información de 2 columnas (como en la imagen de abajo): ingrese la descripción de la imagen aquí

El gráfico que creé manualmente se ve así, donde cada columna del gráfico representa cuántas transacciones ocurrieron en esa hora exacta, usando la función de agregación de conteo:  ingrese la descripción de la imagen aquí

El problema que tengo ahora es que, a pesar de que la macro indica claramente que debe usar la función Count Aggregate en la primera serie, parece que está predeterminado en Sum Aggregate:

function CreateMaximumsChart() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange("G1").activate();
  var sheet = spreadsheet.getActiveSheet();

  chart = sheet
    .newChart()
    .asColumnChart()
    .addRange(spreadsheet.getRange("H1:H"))
    .addRange(spreadsheet.getRange("G1:G"))
    .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_COLUMNS)
    .setTransposeRowsAndColumns(false)
    .setNumHeaders(0)
    .setHiddenDimensionStrategy(Charts.ChartHiddenDimensionStrategy.IGNORE_BOTH)
    .setOption("applyAggregateData", 0)
    .setOption("bubble.stroke", "#000000")
    .setOption("useFirstColumnAsDomain", true)
    .setOption("isStacked", "false")
    .setOption("title", "Maximums")
    .setOption("series.0.aggregateFunction", "count")
    .setPosition(8, 5, 44, 20)
    .build();
  sheet.insertChart(chart);
}

Lo que da como resultado la creación de este gráfico: ingrese la descripción de la imagen aquí

¿Hay algo que esté haciendo mal? El código de macro se ve bien por mi parte, ¿podría ser un error con Google Sheets?

0
Rus Paul Adrian 11 may. 2021 a las 11:50

1 respuesta

La mejor respuesta

Si comenta la línea que agrega el rango G1:G, dado que no lo está usando para el gráfico, dará el mismo resultado que el que tiene arriba.

function CreateMaximumsChart() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange("G1").activate();
  var sheet = spreadsheet.getActiveSheet();

  chart = sheet
    .newChart()
    .asColumnChart()
    .addRange(spreadsheet.getRange("H1:H"))
//  .addRange(spreadsheet.getRange("G1:G")) // Remove this line
    .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_COLUMNS)
    .setTransposeRowsAndColumns(false)
    .setNumHeaders(0)
    .setHiddenDimensionStrategy(Charts.ChartHiddenDimensionStrategy.IGNORE_BOTH)
    .setOption("applyAggregateData", 0)
    .setOption("bubble.stroke", "#000000")
    .setOption("useFirstColumnAsDomain", true)
    .setOption("isStacked", "false")
    .setOption("title", "Maximums")
    .setOption("series.0.aggregateFunction", "count")
    .setPosition(8, 5, 44, 20)
    .build();
  sheet.insertChart(chart);
}

El problema parece ser que está agregando un rango al gráfico que no necesita para generar el gráfico.

1
iansedano 11 may. 2021 a las 10:15