Filtrar com campos de data em branco

Às vezes, os dados estão incompletos ou são opcionais e, portanto, os campos nas tabelas do Analytics podem estar em branco. Quando uma expressão no Analytics compara um campo de data em branco, a data em branco é tratada como o valor mínimo de data do sistema, 1900-01-01. Sempre que você escreve uma expressão que compara datas, você deve considerar esse comportamento.

A tabela de pedidos de vendas

Você está trabalhando com a seguinte tabela de pedidos de vendas e deseja filtrá-la para que possa analisar todos os pedidos enviados antes do ano 2011. Se um registro não tiver a data do pedido, ele representa um pedido cancelado e você não quer incluí-lo nos seus registros filtrados:

Categoria_Produto Margem_Base Data_Pedido ID_Pedido Prioridade Quantidade Alíquota_Imposto Categoria
Pequena empresa 0,04   3 Baixa 6 0,8 Suprimentos para escritório
Consumidor 0,07   293 Alta 49 0,58 Suprimentos para escritório
Consumidor 0,01 23/07/2012 293 Alta 27 0,39 Suprimentos para escritório
Corporativo 0,08 15/10/2010 483 Alta 30 0,58 Tecnologia
Consumidor 0,08 28/08/2010 515 Não Especificado(a) 19 0,5 Suprimentos para escritório
Consumidor 0,05 28/08/2010 515 Não Especificado(a) 21 0,37 Móveis
Corporativo 0,03 17/06/2011 613 Alta 12 0,38 Suprimentos para escritório
Corporativo 0,09 17/06/2011 613 Alta 22 0 Suprimentos para escritório
Corporativo 0,07 24/03/2012 643 Alta 21 0 Suprimentos para escritório
Escritório residencial 0,07 26/02/2009 678 Baixa 44 0,38 Suprimentos para escritório

Usando um filtro simples

Quando você tenta pela primeira vez filtrar a tabela, você usa a seguinte expressão simples para excluir qualquer pedido de 2011 e anos seguintes:

Dica

Observe os apóstrofos invertidos ` que delimitam o valor de data literal. Você sempre deve delimitar os valores de datahora literais com esse qualificador. Para obter mais informações, consulte Tipos de dados.

COMMENT filtra registros com uma data de pedido de 1º de janeiro de 2011 ou posterior
SET FILTER TO Data_Pedido < `20110101`

Resultados do primeiro filtro

Como o Analytics trata valores de data em branco como 1900-01-01 e 1º de janeiro de 1900 é anterior a 1º de janeiro de 2011, seus resultados incluirão os registros com os campos Data_Pedido em branco que você deseja excluir:

Categoria_Produto Margem_Base Data_Pedido ID_Pedido Prioridade Quantidade Alíquota_Imposto Categoria
Pequena empresa 0,04   3 Baixa 6 0,8 Suprimentos para escritório
Consumidor 0,07   293 Alta 49 0,58 Suprimentos para escritório
Corporativo 0,08 15/10/2010 483 Alta 30 0,58 Tecnologia
Consumidor 0,08 28/08/2010 515 Não Especificado(a) 19 0,5 Suprimentos para escritório
Consumidor 0,05 28/08/2010 515 Não Especificado(a) 21 0,37 Móveis
Escritório residencial 0,07 26/02/2009 678 Baixa 44 0,38 Suprimentos para escritório

Verificar espaços em branco ao filtrar

Usando as funções, você pode excluir campos de dados em branco antes de filtrar registros de 2011 ou anos seguintes.

A função ISBLANK( ) retorna verdadeiro se um valor de texto estiver em branco, de forma que, com um pouco de manipulação do campo Data_Pedido, você pode excluir os valores em branco:

COMMENT exclui campos em branco e datas do pedido de 2011 e anos seguintes
SET FILTER TO NOT ISBLANK(DATETIME(Data_Pedido)) AND Data_Pedido < `20110101`

Quando essa expressão é avaliada, as funções são executadas de dentro para fora e várias coisas acontecem:

  1. A função DATETIME( ) converte o valor de data Data_Pedido em um valor de texto (`20100828` se torna "20100828").
  2. A função ISBLANK( ) verifica se o valor do texto está em branco e é avaliada como verdadeira ou falsa.
  3. O operador NOT inverte o valor lógico retornado por ISBLANK( ), de forma que:
    • Se Data_Pedido estiver em branco (verdadeiro), o valor será invertido para falso e o filtro excluirá o registro
    • Se Data_Pedido não estiver em branco (falso), o valor será invertido para verdadeiro, o filtro verificará se a data é anterior a 2011 e incluirá todos os registros com o valor de Data_Pedido anterior a 1º de janeiro de 2011

Dica

Somente são incluídos os registros em que as subexpressões são avaliadas como verdadeiro em ambos os lados do operador AND. Se nenhuma das subexpressões for avaliada como falsa, o registro será excluído.

Resultados do segundo filtro

Como você excluiu valores em branco antes de testar se o pedido foi colocado antes de 2011, os resultados desse filtro não incluem pedidos cancelados, que foram incluídos no primeiro filtro:

Categoria_Produto Margem_Base Data_Pedido ID_Pedido Prioridade Quantidade Alíquota_Imposto Categoria
Corporativo 0,08 15/10/2010 483 Alta 30 0,58 Tecnologia
Consumidor 0,08 28/08/2010 515 Não Especificado(a) 19 0,5 Suprimentos para escritório
Consumidor 0,05 28/08/2010 515 Não Especificado(a) 21 0,37 Móveis
Escritório residencial 0,07 26/02/2009 678 Baixa 44 0,38 Suprimentos para escritório
Guia de scripting do ACL 14.1