Este documento descreve como usar filtros para classificar e filtrar os dados mostrados em uma planilha.
Com os filtros, é possível classificar e filtrar os dados que aparecem ao abrir uma planilha. Os filtros não mudam os valores dos dados na planilha. Você pode usar filtros para ocultar ou classificar informações temporariamente. Os dados que correspondem aos critérios de filtro especificados não aparecem enquanto o filtro está ativado. Com as visualizações de filtro, também é possível salvar diferentes filtros nomeados e alternar entre eles quando quiser.
Para filtrar os dados retornados em uma solicitação da API Google Sheets, use o objeto DataFilter. Para
mais informações, consulte Ler, gravar e pesquisar
metadados.
Filtrar casos de uso
Confira alguns exemplos de casos de uso para filtros:
- Classifique os dados por uma coluna específica. Por exemplo, classifique os registros de usuários pelo sobrenome.
- Ocultar dados que atendem a uma condição específica. Por exemplo, oculte todos os registros com mais de dois anos.
- Ocultar dados que correspondem a um determinado valor. Por exemplo, oculte todos os problemas com o status "closed".
Filtro básico
O objeto
BasicFilter
de uma planilha é o filtro padrão aplicado sempre que alguém
acessa a planilha. Uma planilha pode ter apenas um filtro básico por página. Para desativar o filtro básico, basta limpar a seleção. Isso remove o filtro e todas as configurações dele da planilha. Se quiser ativar o mesmo filtro novamente, defina os critérios de novo.
Gerenciar o filtro básico
Para definir ou limpar o filtro básico, use o método
spreadsheets.batchUpdate
com o tipo de solicitação adequado:
- Para definir o filtro básico, use o método
SetBasicFilterRequest. - Para limpar o filtro básico, use o
método
ClearBasicFilterRequest.
Para listar o filtro básico, use o método
spreadsheets.get
e defina o parâmetro de URL fields como sheets/basicFilter. O exemplo de código spreadsheets.get a seguir mostra um URL do Google Sheets com uma máscara de campo:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/basicFilter
Visualizações com filtro
Um
FilterView
é um filtro nomeado que pode ser ativado e desativado a qualquer momento. Uma planilha pode ter várias visualizações de filtro salvas, mas só é possível aplicar uma por vez. Uma página também pode conter um filtro básico e várias visualizações de filtro, mas não é possível aplicar os dois simultaneamente no mesmo intervalo de dados.
Casos de uso de visualização de filtro
Confira alguns exemplos de casos de uso para visualizações de filtro:
- Você tem vários filtros diferentes que quer alternar ao visualizar os dados.
- Você não tem acesso de edição a uma planilha, mas quer aplicar um filtro. Nesse caso, crie uma visualização de filtro temporária que só você pode ver.
Você quer que cada pessoa com quem você compartilha a planilha veja os dados de maneira diferente. Para especificar a visualização de filtro que você quer aplicar, forneça o
spreadsheetIde ofilterViewIdno URL da planilha. Para fazer isso, use ofilterViewIdretornado na resposta ao criar a visualização de filtro.O exemplo de código a seguir mostra um URL do Planilhas com uma visualização de filtro:
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0&fvid=FILTER_VIEW_ID
Gerenciar visualizações de filtro
Para criar, duplicar, modificar ou excluir visualizações de filtro, use o método
spreadsheets.batchUpdate
com o tipo de solicitação adequado:
- Para criar uma visualização de filtro, use o método
AddFilterViewRequest. - Para fazer uma cópia de uma visualização de filtro, use o método
DuplicateFilterViewRequest. - Para modificar as propriedades de uma visualização filtrada, use o método
UpdateFilterViewRequest. - Para excluir uma visualização de filtro, use o método
DeleteFilterViewRequest.
Para listar todas as suas visualizações de filtro, use o método
spreadsheets.get
e defina o parâmetro de URL fields como sheets/filterViews. O exemplo de código spreadsheets.get a seguir mostra um URL do Google Sheets com uma máscara de campo:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/filterViews
Representação JSON de um filtro
O exemplo de código a seguir mostra a representação JSON de um objeto
FilterView. O objeto
BasicFilter
é o mesmo, exceto que não tem os campos filterViewId e title,
e não pode usar um intervalo nomeado.
{
"filterViewId": number,
"title": string,
"range": {
object(GridRange)
},
"namedRangeId": string,
"sortSpecs": [
{
object(SortSpec)
}
],
"criteria": {
string: {
object(FilterCriteria)
},
...
}
}
Exemplo de dados de vendas
O restante deste documento faz referência à seguinte tabela de dados de vendas de exemplo:
| A | B | C | D | E | F | G | |
| 1 | Categoria do item | Número do modelo | Custo | Quantidade | Região | Vendedor | Data de envio |
| 2 | Wheel | W-24 | US$ 20,50 | 4 | Oeste | Beth | 01/03/2016 |
| 3 | Porta | D-01X | US$ 15,00 | 2 | Sul | Amir | 15/03/2016 |
| 4 | Quadro | FR-0B1 | US$ 34,00 | 8 | Leste | Hannah | 12/03/2016 |
| 5 | Painel | P-034 | US$ 6,00 | 4 | Norte | Devyn | 15/03/2016 |
| 6 | Painel | P-052 | US$ 11,50 | 7 | Leste | Erik | 16/05/2016 |
| 7 | Wheel | W-24 | US$ 20,50 | 11 | Sul | Sheldon | 30/04/2016 |
| 8 | Mecanismo | ENG-0161 | US$ 330,00 | 2 | Norte | Jessie | 02/07/2016 |
Especificações de classificação
Um filtro pode ter várias especificações de classificação. Essas especificações determinam como classificar os dados e são aplicadas na ordem especificada. O atributo
SortSpec.dimensionIndex
especifica o índice da coluna em que a classificação deve ser aplicada.
O exemplo de código a seguir mostra uma especificação de classificação:
[
{
"dimensionIndex": 3,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 6,
"sortOrder": "ASCENDING"
}
]
Quando aplicada aos dados de vendas de exemplo, essa especificação classifica primeiro pela coluna "Quantidade" e, se duas linhas tiverem a mesma quantidade, por "Data de envio".
| A | B | C | D | E | F | G | |
| 1 | Categoria do item | Número do modelo | Custo | Quantidade | Região | Vendedor | Data de envio |
| 2 | Porta | D-01X | US$ 15,00 | 2 | Sul | Amir | 15/03/2016 |
| 3 | Mecanismo | ENG-0161 | US$ 330,00 | 2 | Norte | Jessie | 02/07/2016 |
| 4 | Wheel | W-24 | US$ 20,50 | 4 | Oeste | Beth | 01/03/2016 |
| 5 | Painel | P-034 | US$ 6,00 | 4 | Norte | Devyn | 15/03/2016 |
| 6 | Painel | P-052 | US$ 11,50 | 7 | Leste | Erik | 16/05/2016 |
| 7 | Quadro | FR-0B1 | US$ 34,00 | 8 | Leste | Hannah | 12/03/2016 |
| 8 | Wheel | W-24 | US$ 20,50 | 11 | Sul | Sheldon | 30/04/2016 |
Critérios de filtro
O objeto
FilterCriteria
determina quais dados da planilha são mostrados ou ocultos em um filtro básico ou
visualização com filtro. Cada critério depende dos valores em uma coluna específica. Você fornece os critérios de filtro como um mapa em que as chaves são os índices de coluna e os valores são os critérios.
Para critérios especificados usando um booleano
condition,
a condição precisa ser true para que os valores sejam mostrados. A condição não substitui hiddenValues.
Se um valor estiver listado em hiddenValues, todas as correspondências de um valor ainda serão
ocultadas.
O exemplo de código a seguir mostra um mapa de critérios de filtro:
{
0: {
'hiddenValues': ['Panel']
},
6: {
'condition': {
'type': 'DATE_BEFORE',
'values': {
'userEnteredValue': '4/30/2016'
}
}
}
}
Quando aplicado aos dados de vendas de amostra, esse critério só mostra linhas em que o valor da coluna "Categoria do item" não é "Painel" e em que o valor da coluna "Data de envio" é anterior a "30 de abril de 2016".
| A | B | C | D | E | F | G | |
| 1 | Categoria do item | Número do modelo | Custo | Quantidade | Região | Vendedor | Data de envio |
| 2 | Wheel | W-24 | US$ 20,50 | 4 | Oeste | Beth | 01/03/2016 |
| 3 | Porta | D-01X | US$ 15,00 | 2 | Sul | Amir | 15/03/2016 |
| 4 | Quadro | FR-0B1 | US$ 34,00 | 8 | Leste | Hannah | 12/03/2016 |
Exemplo de código de visualização de filtro
O exemplo de código a seguir mostra como criar e duplicar uma visualização de filtro e atualizar a versão duplicada usando os dados de vendas de exemplo.