Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

80
Views
Google Sheets Script obtiene las etiquetas de un gráfico?

Entonces, tengo una hoja que cubre un año de datos y un gráfico de barras que se actualiza en un activador para mostrar los datos de cada mes específicamente. También establece un color para cada una de las barras cuando se actualiza. El problema es que de la forma en que hice el cambio de color, siempre tiene el mismo color en cada posición, independientemente de cuál sea la etiqueta de la barra. (es decir, si está ordenado por valor descendente, si X tiene el número más bajo, es azul e Y es el segundo y rojo, etc. Luego, el próximo mes Y tiene menos, por lo que es el primero y azul, y X es rojo). Necesito configurar los colores según la etiqueta (por lo que X es azul independientemente de si tiene más o menos que Y en un mes determinado). Sin embargo, no puedo entender cómo hacer referencia a las etiquetas para establecer los colores.

Mi código para actualizar el gráfico y establecer los colores es:

 function updateRangeBar(sheet, range, chart) { chart = chart.modify() .clearRanges() .addRange(range) .setOption('series.0.items.0.color', "red") .setOption('series.0.items.1.color', "blue") .setOption('series.0.items.2.color', "yellow") .setOption('series.0.items.3.color', "green") .setOption('series.0.items.4.color', "orange") .setOption('series.0.items.5.color', "black") .build() sheet.updateChart(chart); }

Lo que me imagino que sería el código

 function updateRangeBar(sheet, range, chart) { var redIndex, blueIndex, yellowIndex, greenIndex, orangeIndex, blackIndex for(i = 0; i < [chartBarItemsLength]; i++) { if([chartBarItemLabel] == "DataHeaderForRed") { redIndex = i } elseIf([chartBarItemLabel] == "DataHeaderForBlue") { blueIndex = i } } chart = chart.modify() .clearRanges() .addRange(range) .setOption('series.0.items.'+redIndex+'.color', "red") .setOption('series.0.items.'+blueIndex'+.color', "blue") .setOption('series.0.items.+yellowIndex'+.color', "yellow") .setOption('series.0.items.+greenIndex'+.color', "green") .setOption('series.0.items.+orangeIndex'+.color', "orange") .setOption('series.0.items.+blackIndex'+.color', "black") .build() sheet.updateChart(chart); }

Donde [chartBarItemLabel] y [chartBarItemsLength] son lo que necesito ayuda para encontrar una manera de llegar.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Descubrí una respuesta, aunque mejores opciones siempre serían buenas.

 function updateRangeBar(sheet, range, chart) { var subRange = range.getSheet().getRange(range.getRow(), range.getColumn(), range.getHeight(), 1) chart = chart.modify() .clearRanges() .addRange(range) .build() for(i = 0; i < subRange.getHeight(); i++) { var val = range.getSheet().getRange((subRange.getRow()+(i+1)), subRange.getColumn()).getValue() if(val.toString() == BLUE_TYPE) { chart = chart.modify().setOption('series.0.items.'+i+'.color', BLUE_RGB).build() } else if(val.toString() == RED_TYPE) { chart = chart.modify().setOption('series.0.items.'+i+'.color', RED_RGB).build() } else if( ... } sheet.updateChart(chart); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!