Limpando e filtrando dados ao mesmo tempo
Os dois tutoriais anteriores mostraram como usar funções para filtrar e limpar dados. Agora examinaremos como você pode aninhar funções para executar as duas tarefas simultaneamente.
Funções aninhadas
Você pode aninhar uma função dentro de outra para conseguir resultados que não seriam possíveis usando as funções separadamente.
Estrutura básica
Esta é a estrutura básica de uma função aninhada com um nível de aninhamento:
FUNÇÃO_2( FUNÇÃO_1(função_1 entrada) , função_2 entrada)
Você pode ver que FUNÇÃO_1( ) está totalmente contida em FUNÇÃO_2( ).
Ordem da avaliação
As funções aninhadas são avaliadas a partir da função mais interna, percorrendo as funções para fora até a função mais externa. Assim, no exemplo genérico acima:
- FUNÇÃO_1(função_1 entrada) é avaliada antes.
- A saída de FUNÇÃO_1( ) torna-se uma das entradas de FUNÇÃO_2( ).
- FUNÇÃO_2( ) é avaliada em seguida.
Pense sobre entradas e saídas
De maneira geral, é possível aninhar qualquer função do Analytics dentro de outra função e, se necessário, criar vários níveis de aninhamento.
No entanto, lembre-se de que a saída de uma função deve atender aos requisitos de entrada da função que a contém. Por exemplo, se uma função exige uma entrada de data, a função que a contém deve gerar um valor com um tipo de dados datahora.
Ponto importante
O aninhamento de funções é um recurso poderoso e flexível que permite conseguir uma grande variedade de resultados úteis. É possível executar diversas transformações de dados de origem simultaneamente como preparação para a entrada dos dados em um comando.
Padronizar maiúsculas/minúsculas e filtrar por vários valores
Em um tutorial anterior, usamos a função MATCH( ) para filtrar por vários valores. MATCH( ) diferencia maiúsculas de minúsculas. Portanto, se os valores de entrada tiverem maiúsculas e minúsculas, o filtro gerará resultados incorretos.
Você pode gerar resultados mais precisos usando a função UPPER( ) dentro da função MATCH( ).
Exemplo
Você quer usar o campo Cidade_Fornecedor para filtrar registros em uma tabela, mas os nomes das cidades foram inseridos de forma variada. Alguns estão com a primeira letra maiúscula ("Rio de Janeiro") e outros estão todos em maiúsculas ("RIO DE JANEIRO").
Você pode aninhar a função UPPER( ) dentro da função MATCH( ) para:
- transformar todos os valores do campo Cidade_Fornecedor em maiúsculas
- filtrar os registros por cidade
Note que é necessário ajustar os termos do filtro para que fiquem todos em maiúsculas e correspondam aos valores em maiúsculas gerados pela função UPPER( ).
MATCH( UPPER(Cidade_Fornecedor) ; "RIO DE JANEIRO"; "PORTO ALEGRE")
A tabela a seguir mostra a diferença entre o uso da função MATCH( ) isoladamente e usando a função aninhada.
Usando MATCH( ) isoladamente, o filtro fica muito restritivo e exclui registros que deveriam ser incluídos.
| Retornado por: | Retornado por: |
|---|---|
| MATCH(Cidade_Fornecedor; "Rio de Janeiro"; "Porto Alegre") | MATCH( UPPER(Cidade_Fornecedor); "RIO DE JANEIRO"; "PORTO ALEGRE") |
| Rio de Janeiro | Rio de Janeiro |
| Porto Alegre | Porto Alegre |
| RIO DE JANEIRO | |
| PORTO ALEGRE |
Dica
Em vez de usar uma função aninhada, você pode adicionar variações aos termos do filtro: MATCH(Cidade_Fornecedor; "Rio de Janeiro"; "RIO DE JANEIRO"; "Porto Alegre"; "PORTO ALEGRE"). No entanto, com o aumento do número de termos do filtro, essa abordagem torna-se rapidamente trabalhosa, além de não capturar valores com erros de digitação, como "RIO de Janeiro". O aninhamento de UPPER( ) é a melhor abordagem.
Nota
Para aplicar as funções MATCH( ) ou UPPER( ) ao campo Cidade_Fornecedor, crie um campo calculado que usa a função. Os campos calculados serão discutidos em um próximo tutorial.
Padronizar maiúsculas/minúsculas, remover espaços à esquerda e filtrar por vários valores
Você não está limitado a um nível de aninhamento. É possível criar vários níveis de aninhamento de acordo com os requisitos.
Lembre-se:
- As funções aninhadas são avaliadas a partir da função mais interna até a função mais externa.
- A saída de uma função deve atender aos requisitos de entrada da função que a contém.
Exemplo
Em uma outra situação, os dados do campo Cidade_Fornecedor são ainda menos consistentes. Além da inconsistência de maiúsculas e minúsculas, alguns valores são precedidos por um ou mais espaços em branco e outros não.
Você pode usar a função UPPER( ) dentro da função ALLTRIM( ) e a função ALLTRIM( ) dentro da função MATCH( ) para:
- transformar todos os valores do campo Cidade_Fornecedor em maiúsculas
- remover todos os espaços em branco à esquerda
- filtrar registros por cidade
MATCH( ALLTRIM( UPPER(Cidade_Fornecedor) ); "RIO DE JANEIRO"; "PORTO ALEGRE")
Dica
É fácil se confundir ao abrir e fechar parênteses durante a criação de funções aninhadas. Parênteses ausentes ou sem correspondente são uma causa comum de erros funcionais.
O número de parênteses abertos ( deve sempre ser igual ao número de parênteses fechados ). No exemplo acima, são abertos três parênteses e fechados três parênteses.
A tabela a seguir mostra a diferença entre o uso da função MATCH( ) isoladamente e usando a função aninhada.
Usando MATCH( ) isoladamente, o filtro fica muito restritivo e exclui registros que deveriam ser incluídos.
| Retornado por: | Retornado por: |
|---|---|
| MATCH(Cidade_Fornecedor; "Rio de Janeiro"; "Porto Alegre") | MATCH(ALLTRIM( UPPER(Cidade_Fornecedor) ), "RIO DE JANEIRO"; "PORTO ALEGRE") |
| Rio de Janeiro | Rio de Janeiro |
| Porto Alegre | Porto Alegre |
| RIO DE JANEIRO | |
| PORTO ALEGRE | |
| [ ] Rio de Janeiro | |
| [ ] [ ] [ ] Porto Alegre | |
| [ ] [ ] RIO DE JANEIRO | |
| [ ] PORTO ALEGRE | |
| [ ] = espaço em branco |
O que fazer em seguida
Se você concluiu todos os tutoriais em Como usar funções, está pronto para prosseguir com Uso avançado de funções.
Os tutoriais avançados ensinam a usar funções com os principais recursos do Analytics.