Função LISTIF

Retorna a lista de todos os valores em uma coluna para as linhas que correspondam a uma condição especificada.

OBSERVAÇÃO: quando adicionada a uma transformação, essa função é aplicada à amostra atual. Se você alterar a amostra ou executar o job, os valores calculados para essa função serão atualizados. As transformações que alteram o número de linhas nas etapas seguintes da receita não afetam os valores calculados para esta etapa.

Para realizar uma simples extração de valores sem condicionais, use a função LIST. Consulte Função LIST.

Uso básico

pivot value: LISTIF(hotChocolateLiters, 500, temperature < 0) group:date limit:1

Resultado: gera uma tabela de duas colunas contendo os valores exclusivos para date e os valores da coluna hotChocolateLiters para cada date quando o valor temperature é menor que 0. O número máximo de valores é 500. O parâmetro limit define o número máximo de colunas de resultado.

Sintaxe

pivot value:LISTIF(col_ref, limit, test_expression) [group:group_col_ref] [limit:limit_count]

ArgumentoObrigatório?Tipo de dadosDescrição
col_refSstringReferência à coluna que você quer avaliar.
limit_intNnúmero inteiroNúmero máximo de valores a serem extraídos para a matriz da lista. De 1 até 1000.
test_expressionSstringExpressão que é avaliada. Precisa ser resolvida como true ou false

Para mais informações sobre os padrões de sintaxe, consulte Observações de sintaxe da documentação da linguagem.

Para mais informações sobre os parâmetros group e limit, consulte Transformação Pivot.

col_ref

Nome da coluna cujos valores você quer usar no cálculo. A coluna precisa ser um tipo numérico (inteiro ou decimal).

Observações de uso:

Obrigatório?Tipo de dadosValor de exemplo
SimString que corresponde ao nome da colunamyValues

limit_int

Inteiro não negativo que define o número máximo de valores a serem extraídos para a matriz da lista.

OBSERVAÇÃO: se especificado, esse valor precisará estar entre 1 e 1.000, inclusive.

OBSERVAÇÃO: não use o argumento limitador em uma chamada de função LISTIF em um valor de agregação simples, em que todos os valores em uma coluna foram inseridos em uma única célula. Nesse caso, você poderá usar o argumento limite, se também especificar um parâmetro group. O uso indevido da função LISTIF pode fazer o aplicativo falhar.

test_expression

Esse parâmetro contém a expressão a ser avaliada. Essa expressão precisa ser resolvida com um valor booleano (true ou false).

Notas de uso:

Obrigatório?Tipo de dadosValor de exemplo
SimExpressão de string que é avaliada como true ou false(LastName == 'Mouse' && FirstName == 'Mickey')

Exemplos

Exemplo: funções ANYIF e LISTIF

Esta seção fornece exemplos simples de como usar as funções ANYIF e LISTIF. Essas funções incluem as seguintes:

  • ANYIF: identifica um valor único de um grupo que atende a uma condição específica. Consulte Função ANYIF.
  • LISTAIF: lista todos os valores dentro de um grupo que atendem a uma condição específica. Consulte Função LISTIF.

Origem:

Os dados a seguir identificam números de vendas por vendedores em uma semana:

EmployeeIdDateSales
S00123/01/1725
S00223/01/1740
S00323/01/1748
S00124/01/1781
S00224/01/1711
S00324/01/1725
S00125/01/179
S00225/01/1740
S00325/01/17
S00126/01/1777
S00226/01/1783
S00326/01/17
S00127/01/1717
S00227/01/1771
S00327/01/1729
S00128/01/17
S00228/01/17
S00328/01/1714
S00129/01/172
S00229/01/177
S00329/01/1799

Transformação:

Neste exemplo, você está interessado nos vendedores com melhor desempenho. Um bom dia nas vendas é aquele em que um indivíduo vende mais de 80 unidades. Primeiro, você precisa identificar o dia da semana:

derive type:single value:WEEKDAY(Date) as:'DayOfWeek'

Valores superiores a 5 em DayOfWeek são fins de semana. Você pode usar o seguinte código para identificar se alguém alcançou este indicador alto durante a semana de trabalho (sem fim de semana):

pivot value:ANYIF(Sales, (Sales > 80 && DayOfWeek < 6)) group:EmployeeId,Date limit:1

Antes de adicionar a etapa à receita, anote os indivíduos que alcançaram essa marca na coluna anyif_Sales para reconhecimento especial.

Agora, você quer descobrir as vendas para os indivíduos durante a semana. Você pode usar o seguinte para filtrar os dados para serem exibidos somente para dias da semana:

pivot value:LISTIF(Sales, 1000, (DayOfWeek < 6)) group:EmployeeId,Date limit:1

Para limpar, você pode selecionar e substituir os seguintes valores na coluna listif_Sales por sequências vazias:

["
"]
[]

Resultados:

EmployeeIdDatelistif_Sales
S00123/01/1725
S00223/01/1740
S00323/01/1748
S00124/01/1781
S00224/01/1711
S00324/01/1725
S00125/01/1740
S00225/01/17
S00325/01/1766
S00126/01/1777
S00226/01/1783
S00326/01/17
S00127/01/1717
S00227/01/1771
S00327/01/1729
S00128/01/17
S00228/01/17
S00328/01/17
S00129/01/17
S00229/01/17
S00329/01/17

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.