¿Cómo utilizar VLOOKUP y la funcionalidad Me gusta en QlikView?

Conteúdo

Sempre que interajo com um usuário Qlikview, que você migrou do Excel recentemente, uma das perguntas mais comuns recebidas é:

“Como aplico PROCV () no Qlikview?”

Para começar, VLOOKUP é uma excelente forma de aderir 2 conjuntos de dados por meio de uma chave comum. É algo semelhante a junções em SQL.

Por que precisamos de uma função externa como VLOOKUP () no Qlikview?

Sempre que você importa um conjunto de dados externo para o Qlikview, encontra colunas comuns e se junta. Portanto, pessoas um tanto familiarizadas com o Qlikview podem se perguntar, Por que precisamos de uma função semelhante a VLOOKUP () em primeiro lugar?

A resposta é construir modelos de dados eficientes. Deixe-me explicar uma situação da vida real que enfrentei nos primeiros dias com o Qlikview. Algumas pessoas experientes me disseram que é sempre aconselhável minimizar o número de tabelas em seu modelo de dados. Em minha primeira tarefa como desenvolvedor Qlikview, Usei várias combinações e associações. Como resultado, meu modelo de dados se tornou muito complexo e difícil de entender. Não consegui identificar e corrigir erros facilmente (un ejemplo de modelo de datos similar se muestra en la figura a continuación como referencia).

UMA medir que pasaba más tiempo con Qlikview, Eu descobri o uso da tabela de mapeamento com a função Applymap () e descobriram que eram semelhantes a VLOOKUP (), onde recuperamos informações de um conjunto de dados de mapeamento para um conjunto de dados primário. Isso nos ajuda a simplificar significativamente nossos modelos de dados..

quarta-1942975

No Qlikview, as junções podem ser feitas usando Association, Join y Applymap. Applymap funciona de maneira semelhante a VLOOKUP, com alguns recursos adicionais. Por exemplo, se PROCV não encontrar uma correspondência na tabela de mapeamento, trazer de volta “#N / D”. Aplicar mapa, por outro lado, pode retornar strings / números / campos de uma tabela semelhante, no caso de não haver correspondências. Também podemos escrever um Applymap aninhado, para fazer referência a outra tabela de mapeamento, caso o valor não seja encontrado.

Como podemos definir a tabela de mapeamento?

A tabela de mapeamento deve ter duas colunas: o primeiro para a chave de pesquisa e o segundo para o valor de troca. As tabelas de mapeamento são armazenadas separadamente na memória e usadas apenas durante a execução do script. Depois de executar o script, são excluídos automaticamente.

A sintaxe para carregar uma tabela de mapeamento é semelhante à instrução LOAD com um prefixo adicional (MAPEAMENTO) antes de LOAD. La fuente de la tabla de mapeo puede ser una base de dados, una hoja de cálculo, una tabla residente, una tabla en línea o un archivo QVD:

Designation_desc:
 Mapping LOAD Designation_Code,
 Designation_Desc
 FROM
 Data_set.xlsx
 (ooxml, embedded labels, table is Designation);

Función y sintaxis Applymap ():

La sintaxis es muy similar a una función de búsqueda: toma un valor como entrada, verifica si este valor existe en una tabla de mapeo y devuelve el valor correspondiente de la segunda columna de la tabla de mapeo. A função Applymap é sempre usada após definir uma tabela de mapeamento:

Sintaxe:

aplicar mapa‘Mapname’, chave de busca [ , defaultexpr ] )

Onde:

nome do mapa é o nome da tabela de mapeamento, que já foi criado por meio de carga de mapeamento. Seu nome deve ser colocado entre aspas simples.

chave de busca é a expressão, cujo resultado deve ser mapeado.

defaultexpr é uma expressão opcional, para ser usado como o valor de mapeamento padrão, se a tabela de mapeamento não contém um valor correspondente para a chave de pesquisa. Se nenhum valor padrão for fornecido, o valor da pesquisa será retornado como está.

applymap2-9636106

Como podemos usar o Applymap?

Vamos ver um palco, onde temos um conjunto de dados de funcionários com seu código de funcionário, código de designação, salário e estado civil. O que mais, você precisa da descrição da designação do funcionário e detalhes do bônus, que estão disponíveis em uma mesa diferente. Você deseja calcular o pagamento total de um funcionário e relatá-lo junto com sua designação (Pagamento total = Salário + Bônus). E SQL, você deve juntar as tabelas necessárias para obter informações adicionais. Em excel, podemos usar a função Vlookup () para fazer isso. Aqui, usaremos a função Applymap para mapear o BÔNUS e a DESIGNAÇÃO DESCRIÇÃO da respectiva tabela de mapeamento.

first1-4457509

Observe que esse problema também pode ser resolvido por meio de associação ou associação. Vamos resolver isso usando o Applymap neste artigo.

Paso 1:

Em nosso script QlikView, primeiro vamos definir as tabelas de mapeamento:

  • Bônus – atribui EmpCode ao bônus
  • Designation_descasigna DesignationCode a la descripción de la designación
Bônus:
 Mapping LOAD EmpCode,
 Bonus
 FROM Data_set.xlsx (ooxml, embedded labels, table is Bonus);
Designation_desc:
 Mapping LOAD DesignationCode,
 Designation_Desc
 FROM Data_set.xlsx (ooxml, embedded labels, table is Designation);

Paso 2:

El segundo paso es utilizar esta información al leer la tabla de empleados:

Employee:
 LOAD EmpCode,
 Gênero,
 MaritalStatus,
 DesignationCode,
 Salário,
 ApplyMap('Bonus',EmpCode,0) as Bonus,
 ApplyMap('Designation_desc',DesignationCode,'Unknown') as designation_Desc
 FROM Data_set.xlsx (ooxml, embedded labels, table is Main);

Agora, hemos unido los campos Descripción de bonificación y designación con el conjunto de datos del empleado, sin usar una combinación o asociación.

Beneficios de usar ApplyMap:

  • Varias tablas en su modelo de datos no es algo bueno. Portanto, no desea una situación en la que tenga muchas búsquedas unidas a su tabla maestra. Esto se puede resolver creando una tabla de mapeo usando ApplyMap.
  • La tabla de mapeo solo existe durante la carga, podemos llamarla como tabla temporal.
  • ApplyMap tiene excelentes características como tercer parámetro (opcional). El tercer parámetro le permite devolver algo más útil, cuando el valor de búsqueda no se encuentra en la tabla de mapeo. El tercer parámetro puede ser cadena, número, campo del conjunto de datos base, mezcla de cadena y campo y una referencia más importante a otra tabla de mapeo usando la función Applymap anidada..
    • ApplyMap (‘Bonus’, EmpCode, 0): Cantidad de bonificación de mapas de la tabla de cartografía (bonificación). Si Empcode no existe en la tabla de mapeo, trazer de volta 0 (zero).
    • ApplyMap (‘Designation_desc’, DesignationCode, ‘Desconocido’): Descripción de la designación del mapa de la tabla de mapeo (Designation_desc). Si DesignatonCode no existe en la tabla de mapeo, trazer de volta “Desconhecido”.
    • ApplyMap (‘Bonus’, EmpCode, Salário * 0.05): Cantidad de bonificación de mapa de la tabla de cartografía (bonificación). Si Empcode no existe en la tabla de mapeo, devolver o 5% del salario (el campo existe en el conjunto de datos del empleado).
    • ApplyMap (‘Designation_desc’, DesignationCode, ApplyMap (‘Bonus’, EmpCode, Salário * 0.05)): Descripción de la designación del mapa de la tabla de mapeo (Designation_desc). Si DesignatonCode no existe en la tabla de mapeo, devuelve Bonus from Mapping Table (Bônus). Aquí hemos utilizado Applymap anidado.

second-3640868

third-6072580

  • Cuando la tabla de mapeo tiene filas duplicadas, JOIN dará lugar a un recuento doble, mientras que ApplyMap se ocupa de la primera instancia de la clave en la tabla de mapeo. Ignora automáticamente los valores duplicados posteriores. Novamente, esto es similar a cómo funciona VLOOKUP () no excel.

Pensamientos concluyentes:

Si requerimos múltiples campos de la tabla de referencia basados ​​en un campo clave, no podemos hacerlo a través de Applymap. Solo podemos tener dos columnas en una tabla de mapeo. Si estamos obligados a mapear 4 o 5 campos, entonces preferiría crear 4 o 5 tablas de mapeo. Porém, si necesitamos unirnos más que eso, buscaré otras opciones como Unirme.

Este es un ejemplo en el que podemos mejorar nuestros modelos de datos y mejorar el rendimiento de los paneles de control de calidad. ¿Tiene alguna experiencia o estudios de caso que ilustren lo mismo en Qlikview? ¿Tiene algún otro consejo que compartir para mejorar los cuadros de mando?

Compartilhe suas ideias por meio dos comentários abaixo..

Se você gostou do que acabou de ler e deseja continuar seu aprendizado sobre análise, inscreva-se em nossos e-mails, Siga-nos no Twitter ou como o nosso página do Facebook.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.