En este documento, se explica cómo usar filtros para ordenar y filtrar los datos que se muestran en una hoja de cálculo.
Los filtros te permiten ordenar y filtrar los datos que ves cuando consultas una hoja de cálculo. Los filtros no cambian los valores de los datos en tu hoja de cálculo. Puedes usar filtros para ocultar o ordenar información de forma temporal. Los datos que coinciden con los criterios de filtro especificados no aparecen mientras el filtro está activado. Con las vistas de filtro, también puedes guardar diferentes filtros con nombre y cambiar entre ellos cuando quieras.
Para filtrar los datos que se muestran en una solicitud a la API de Google Sheets, usa el objeto DataFilter. Para obtener más información, consulta Cómo leer, escribir y buscar metadatos.
Casos de uso de filtros
Estos son algunos ejemplos de casos de uso de los filtros:
- Ordenar los datos por una columna en particular Por ejemplo, ordenar los registros de usuarios por apellido.
- Oculta los datos que cumplen con una condición específica. Por ejemplo, oculta todos los registros con una antigüedad superior a dos años.
- Ocultar los datos que coinciden con un valor determinado Por ejemplo, oculta todos los problemas con el estado "cerrado".
Filtro básico
El objeto BasicFilter de una hoja de cálculo es el filtro predeterminado que se aplica cada vez que alguien ve la hoja de cálculo. Una hoja de cálculo solo puede tener un filtro básico por hoja. Para desactivar el filtro básico, borra la selección. Esta acción quita el filtro y toda su configuración de la hoja de cálculo. Si quieres volver a activar el mismo filtro, debes volver a establecer los criterios.
Administra el filtro básico
Para establecer o borrar el filtro básico, usa el método spreadsheets.batchUpdate con el tipo de solicitud adecuado:
- Para establecer el filtro básico, usa el método
SetBasicFilterRequest. - Para borrar el filtro básico, usa el método
ClearBasicFilterRequest.
Para enumerar el filtro básico, usa el método spreadsheets.get y establece el parámetro de URL fields en sheets/basicFilter. En el siguiente ejemplo de código de spreadsheets.get, se muestra una URL de Hojas de cálculo de Google con una máscara de campo:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/basicFilter
Vistas de filtro
Un filtro con nombre FilterView es un filtro con nombre que puedes activar y desactivar cuando quieras. Una hoja puede tener varias vistas de filtro guardadas, pero solo puedes aplicar una a la vez. Una hoja también puede contener un filtro básico y varias vistas de filtro, pero no puedes aplicar ambos simultáneamente en el mismo rango de datos.
Casos de uso de la vista de filtro
Estos son algunos ejemplos de casos de uso de las vistas de filtro:
- Tienes varios filtros diferentes entre los que deseas cambiar cuando ves los datos.
- No tienes acceso de edición a una hoja de cálculo, pero quieres aplicar un filtro. En este caso, puedes crear una vista de filtro temporal que solo tú puedas ver.
Quieres que cada persona con la que compartas tu hoja de cálculo vea los datos de manera diferente. Puedes especificar la vista de filtro que deseas aplicar proporcionando
spreadsheetIdyfilterViewIden la URL de la hoja de cálculo. Para ello, usa elfilterViewIdque se devolvió en la respuesta cuando creaste la vista de filtro.En la siguiente muestra de código, se muestra una URL de Hojas de cálculo con una vista de filtro:
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0&fvid=FILTER_VIEW_ID
Administra las vistas de filtro
Para crear, duplicar, modificar o borrar vistas de filtro, usa el método spreadsheets.batchUpdate con el tipo de solicitud adecuado:
- Para crear una vista de filtro, usa el método
AddFilterViewRequest. - Para hacer una copia de una vista de filtro, usa el método
DuplicateFilterViewRequest. - Para modificar las propiedades de una vista de filtro, usa el método
UpdateFilterViewRequest. - Para borrar una vista de filtro, usa el método
DeleteFilterViewRequest.
Para enumerar todas tus vistas de filtro, usa el método spreadsheets.get y establece el parámetro de URL fields en sheets/filterViews. En el siguiente ejemplo de código de spreadsheets.get, se muestra una URL de Hojas de cálculo con una máscara de campo:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/filterViews
Representación JSON de un filtro
En el siguiente ejemplo de código, se muestra la representación JSON de un objeto FilterView. El objeto BasicFilter es el mismo, excepto que no tiene los campos filterViewId y title, y no puede usar un rango con nombre.
{
"filterViewId": number,
"title": string,
"range": {
object(GridRange)
},
"namedRangeId": string,
"sortSpecs": [
{
object(SortSpec)
}
],
"criteria": {
string: {
object(FilterCriteria)
},
...
}
}
Datos de ventas de muestra
En el resto de este documento, se hace referencia a la siguiente tabla de datos de ventas de ejemplo:
| A | B | C | D | E | F | G | |
| 1 | Item Category | Número de modelo | Costo | Cantidad | Región | Vendedor | Fecha de envío |
| 2 | Rueda de la fortuna | W-24 | USD 20.50 | 4 | Oeste | Beth | 1/3/2016 |
| 3 | Puerta | D-01X | USD 15.00 | 2 | Sur | Amir | 15/3/2016 |
| 4 | Marco | FR-0B1 | USD 34.00 | 8 | Este | Hannah | 12/3/2016 |
| 5 | Panel | P-034 | USD 6.00 | 4 | Norte | Devyn | 15/3/2016 |
| 6 | Panel | P-052 | USD 11.50 | 7 | Este | Erik | 16/5/2016 |
| 7 | Rueda de la fortuna | W-24 | USD 20.50 | 11 | Sur | Sheldon | 30/4/2016 |
| 8 | Motor | ENG-0161 | USD 330.00 | 2 | Norte | Jessie | 2/7/2016 |
Especificaciones de orden
Un filtro puede tener varias especificaciones de ordenamiento. Estas especificaciones determinan cómo ordenar los datos y se aplican en el orden especificado. El atributo SortSpec.dimensionIndex especifica el índice de columna al que se debe aplicar la ordenación.
En el siguiente ejemplo de código, se muestra una especificación de ordenamiento:
[
{
"dimensionIndex": 3,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 6,
"sortOrder": "ASCENDING"
}
]
Cuando se aplica a los datos de ventas de muestra, esta especificación ordena primero por la columna "Cantidad" y, luego, si dos filas tienen la misma cantidad, por "Fecha de envío".
| A | B | C | D | E | F | G | |
| 1 | Item Category | Número de modelo | Costo | Cantidad | Región | Vendedor | Fecha de envío |
| 2 | Puerta | D-01X | USD 15.00 | 2 | Sur | Amir | 15/3/2016 |
| 3 | Motor | ENG-0161 | USD 330.00 | 2 | Norte | Jessie | 2/7/2016 |
| 4 | Rueda de la fortuna | W-24 | USD 20.50 | 4 | Oeste | Beth | 1/3/2016 |
| 5 | Panel | P-034 | USD 6.00 | 4 | Norte | Devyn | 15/3/2016 |
| 6 | Panel | P-052 | USD 11.50 | 7 | Este | Erik | 16/5/2016 |
| 7 | Marco | FR-0B1 | USD 34.00 | 8 | Este | Hannah | 12/3/2016 |
| 8 | Rueda de la fortuna | W-24 | USD 20.50 | 11 | Sur | Sheldon | 30/4/2016 |
Criterios de filtro
El objeto FilterCriteria determina qué datos de la hoja de cálculo se muestran u ocultan en un filtro básico o en una vista de filtro. Cada criterio depende de los valores de una columna específica. Proporcionas los criterios de filtro como un mapa en el que las claves son los índices de columna y los valores son los criterios.
En el caso de los criterios especificados con un condition booleano, la condición debe ser true para que se muestren los valores. La condición no anula hiddenValues.
Si un valor aparece en hiddenValues, todas las coincidencias de ese valor seguirán ocultas.
En el siguiente ejemplo de código, se muestra un mapa de criterios de filtro:
{
0: {
'hiddenValues': ['Panel']
},
6: {
'condition': {
'type': 'DATE_BEFORE',
'values': {
'userEnteredValue': '4/30/2016'
}
}
}
}
Cuando se aplica a los datos de ventas de muestra, este criterio solo muestra las filas en las que el valor de la columna "Categoría del artículo" no es "Panel" y en las que el valor de la columna "Fecha de envío" es anterior al "30 de abril de 2016".
| A | B | C | D | E | F | G | |
| 1 | Item Category | Número de modelo | Costo | Cantidad | Región | Vendedor | Fecha de envío |
| 2 | Rueda de la fortuna | W-24 | USD 20.50 | 4 | Oeste | Beth | 1/3/2016 |
| 3 | Puerta | D-01X | USD 15.00 | 2 | Sur | Amir | 15/3/2016 |
| 4 | Marco | FR-0B1 | USD 34.00 | 8 | Este | Hannah | 12/3/2016 |
Muestra de código de la vista de filtro
En el siguiente código de ejemplo, se muestra cómo crear una vista de filtro, duplicarla y, luego, actualizar la versión duplicada con los datos de ventas de muestra.