9

Estoy tratando de averiguar cómo utilizar el formato condicional en una hoja de cálculo de google similar a lo que puede hacer en Excel a través de una fórmula.Google hoja de cálculo de formato condicional de hoja de cálculo

Quiero que la celda A2 cambie a Verde si la celda O2 tiene un valor de "X" y esto se hará en ambas columnas hasta abajo. Sé que esto requerirá un script.

Encontré un enlace que es similar pero no sé cómo ajustarlo para satisfacer mis necesidades. ¿Es esto algo que se puede hacer?

Enlace: https://webapps.stackexchange.com/questions/16745/google-spreadsheets-conditional-formatting

Respuesta

15

Aquí hay un script que puede utilizar para hacer lo que usted describe:

function formatting() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); 
    var columnO = sheet.getRange(2, 15, sheet.getLastRow()-1, 1); 
    var oValues = columnO.getValues(); 

    for (var i = 0; i < oValues.length; i++) { 
    if (oValues[i][0] == 'X') { 
     sheet.getRange(i + 2, 1, 1, 1).setBackgroundColor('green'); 
    } 
    } 
} 
+0

Eso funciona perfectamente. Agregué otra línea, así que si la celda está en blanco, cambia a blanco. –

+0

¿Cómo USAS esta secuencia de comandos una vez que está escrita? –

+0

@DanielWilliams Una vez que haya guardado el script en el editor de scripts, puede ejecutarlo de varias maneras. Lo más simple es presionar el botón Ejecutar en el editor de scripts (se ve como un botón triángulo/reproducción). https://developers.google.com/apps-script/execution_script_editor –

8

En las nuevas hojas de Google, esto ya no requiere un guión.

En su lugar, en el formato condicional, seleccione la opción "fórmula personalizada" y coloque un valor como =O2="X" - o de hecho cualquier expresión que devuelva un valor booleano verdadero/falso.

De lo que puedo decir, las referencias que figuran en estos scripts personalizados son un poco raro, y se aplican de la siguiente manera ...

Si se trata de una célula dentro de su rango seleccionado, entonces se cambia a "la celda que se está resaltando ".

Si se trata de una celda fuera del rango seleccionado, se cambia a "esa posición, más un desplazamiento igual al desplazamiento de la celda actual a la parte superior izquierda del rango seleccionado".

Es decir, si su rango fue A1:B2, a continuación, lo anterior sería el mismo que para ajustar el formato individual en cada celda de la siguiente manera:

A1 =O2="X" 
A2 =O3="X" 
B1 =P2="X" 
B2 =P3="X" 

También puede especificar referencias fijas, como =$O$2="X" - que comprobará la celda específica O2 para todas las celdas en su rango seleccionado.

4

(febrero 2017) Como se menciona en otra respuesta, Google Sheets ahora permite a los usuarios añadir Conditional Formatting directamente desde la interfaz de usuario, ya sea en un escritorio portátil, dispositivos/Android o iOS.

Del mismo modo, con the Google Sheets API v4 (y más reciente), los desarrolladores ahora pueden escribir aplicaciones que cumplan con las reglas de formato condicional de CRUD. Consulte las páginas guide y samples para obtener más información, así como el reference docs (busque {add,update,delete}ConditionalFormatRule). La guía cuenta con este fragmento de Python (suponiendo una ID de archivo de SHEET_ID y SHEETS como el punto final de servicio API):

myRange = { 
    'sheetId': 0, 
    'startRowIndex': 1, 
    'endRowIndex': 11, 
    'startColumnIndex': 0, 
    'endColumnIndex': 4, 
} 

reqs = [ 
    {'addConditionalFormatRule': { 
     'index': 0, 
     'rule': { 
      'ranges': [ myRange ], 
      'booleanRule': { 
       'format': {'textFormat': {'foregroundColor': {'red': 0.8}}} 
       'condition': { 
        'type': 'CUSTOM_FORMULA', 
        'values': 
         [{'userEnteredValue': '=GT($D2,median($D$2:$D$11))'}] 
       }, 
      }, 
     }, 
    }}, 
    {'addConditionalFormatRule': { 
     'index': 0, 
     'rule': { 
      'ranges': [ myRange ], 
      'booleanRule': { 
       'format': { 
        'backgroundColor': {'red': 1, 'green': 0.4, 'blue': 0.4} 
       }, 
       'condition': { 
        'type': 'CUSTOM_FORMULA', 
        'values': 
         [{'userEnteredValue': '=LT($D2,median($D$2:$D$11))'}] 
       }, 
      }, 
     }, 
    }}, 
] 

SHEETS.spreadsheets().batchUpdate(spreadsheetId=SHEET_ID, 
     body={'requests': reqs}).execute() 

Además de Python, las API de Google soportar una variety of languages, por lo que hay opciones. De todos modos, esa muestra de código da formato a una hoja (ver imagen a continuación) de modo que los menores de la mediana de la edad se resaltan en rojo claro, mientras que aquellos que están por encima de la mediana tienen sus datos coloreados en una fuente roja.

Conditional formatting example


anuncio de servicio público

La última API de hojas proporciona características no disponibles en versiones anteriores, es decir, dando a los desarrolladores el acceso mediante programación a una hoja como si estuviera utilizando la interfaz de usuario (formato condicional [!], filas inmovilizadas, formateo de celdas, cambio de tamaño de filas/columnas, adición de tablas dinámicas, creación de gráficos, etc.).

Si eres nuevo en la API & quieren ver un poco más largo, los ejemplos más generales del "mundo real" del uso de la API, he creado varios videos relacionados & de Publicaciones:

Como se puede ver, la API de hojas es principalmente para documento funcionalidad -oriented como se describe anteriormente, pero para llevar a cabo archivo acceso -level tales como archivos & descargas, las importaciones & exportaciones (igual que archivos & descargas, pero conversión a/desde varios formatos), use el Google Drive API en su lugar. Ejemplos del uso de la API de Drive:

  • Exportar una hoja de Google como CSV (blog post solamente)
  • convertidor de "texto plano del hombre pobre a PDF" (blog post solamente) (*)

(*) - TL; DR: suba el archivo de texto plano a Drive, importe/convierta al formato de Google Docs y luego exporte ese documento como PDF. La publicación anterior usa Drive API v2; este follow-up post describe la migración a Drive API v3, y aquí hay un video que combina las dos publicaciones del "convertidor de los pobres".

Cuestiones relacionadas