Siempre que interactúo con un usuario de Qlikview, que ha migrado desde Excel recientemente, una de las consultas más comunes que se reciben es:
«¿Cómo aplico VLOOKUP () en Qlikview?»
Para empezar, BUSCARV es la forma excelente de unir 2 conjuntos de datos a través de una clave común. Es algo similar a las combinaciones en SQL.
Siempre que importa un conjunto de datos externo en Qlikview, busca columnas comunes y realiza uniones por sí solo. Por lo tanto, las personas algo familiarizadas con Qlikview podrían preguntarse, ¿por qué necesitamos una función similar a VLOOKUP () en primer lugar?
La respuesta es construir modelos de datos eficientes. Permítanme explicarles una situación de la vida real a la que me había enfrentado en mis primeros días con Qlikview. Algunas personas con experiencia me habían dicho que siempre es aconsejable minimizar la cantidad de tablas en su modelo de datos. En mi primera asignación como desarrollador de Qlikview, utilicé múltiples combinaciones y asociaciones. Como resultado, mi modelo de datos se volvió demasiado complejo y difícil de entender. No pude identificar y corregir errores fácilmente (un ejemplo de modelo de datos similar se muestra en la figura"Figura" es un término que se utiliza en diversos contextos, desde el arte hasta la anatomía. En el ámbito artístico, se refiere a la representación de formas humanas o animales en esculturas y pinturas. En la anatomía, designa la forma y estructura del cuerpo. Además, en matemáticas, "figura" se relaciona con las formas geométricas. Su versatilidad hace que sea un concepto fundamental en múltiples disciplinas.... a continuación como referencia).
A medidaLa "medida" es un concepto fundamental en diversas disciplinas, que se refiere al proceso de cuantificar características o magnitudes de objetos, fenómenos o situaciones. En matemáticas, se utiliza para determinar longitudes, áreas y volúmenes, mientras que en ciencias sociales puede referirse a la evaluación de variables cualitativas y cuantitativas. La precisión en la medición es crucial para obtener resultados confiables y válidos en cualquier investigación o aplicación práctica.... que pasaba más tiempo con Qlikview, encontré el uso de la tabla de mapeo con la función Applymap () y descubrí que eran similares a VLOOKUP (), donde recuperamos información de un conjunto de datos de mapeo a un conjunto de datos primario. Esto nos ayuda a simplificar nuestros modelos de datos de manera significativa.
En Qlikview, las uniones se pueden realizar utilizando Association, Join"JOIN" es una operación fundamental en bases de datos que permite combinar registros de dos o más tablas basándose en una relación lógica entre ellas. Existen diferentes tipos de JOIN, como INNER JOIN, LEFT JOIN y RIGHT JOIN, cada uno con sus propias características y usos. Esta técnica es esencial para realizar consultas complejas y obtener información más relevante y detallada a partir de múltiples fuentes de datos.... y Applymap. Applymap funciona de manera similar a BUSCARV con algunas características adicionales. Por ejemplo, si BUSCARV no encuentra una coincidencia en la tabla de mapeo, devuelve «#NA». Applymap, por otro lado, puede devolver cadenas / números / campos de una tabla similar, en caso de que no haya coincidencias. También podemos escribir Applymap anidado, para hacer referencia a otra tabla de mapeo, en caso de que no se encuentre el valor.
La tabla de mapeo debe tener dos columnas: la primera para la clave de búsqueda y la segunda para el valor de cambio. Las tablas de mapeo se almacenan por separado en la memoria y se usan solo durante la ejecución del script. Después de la ejecución del script, se eliminan automáticamente.
La sintaxis para cargar una tabla de mapeo es similar a la instrucción LOAD con un prefijo adicional (MAPPING) antes de LOAD. La fuente de la tabla de mapeo puede ser una base de datosUna base de datos es un conjunto organizado de información que permite almacenar, gestionar y recuperar datos de manera eficiente. Utilizadas en diversas aplicaciones, desde sistemas empresariales hasta plataformas en línea, las bases de datos pueden ser relacionales o no relacionales. Su diseño adecuado es fundamental para optimizar el rendimiento y garantizar la integridad de la información, facilitando así la toma de decisiones informadas en diferentes contextos...., una hoja de cálculo, una tabla residente, una tabla en línea o un archivo QVD:
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. La función Applymap siempre se usa después de definir una tabla de mapeo:
Sintaxis:
aplicar mapa‘mapname’, clave de búsqueda [ , defaultexpr ] )
dónde:
mapname es el nombre de la tabla de mapeo, que ya se ha creado a través del carga de mapeo. Su nombre debe ir entre comillas simples.
clave de búsqueda es la expresión, cuyo resultado debe mapearse.
defaultexpr es una expresión opcional, que se utilizará como valor de asignación predeterminado, si la tabla de asignación no contiene un valor coincidente para la clave de búsqueda. Si no se proporciona un valor predeterminado, el valor de búsqueda se devolverá tal cual.
Veamos un escenario, donde tenemos un conjunto de datos de empleados con su código de empleado, código de designación, salario y estado civil. Además, necesita la descripción de la designación del empleado y los detalles de la bonificación, que están disponibles en una tabla diferente. Desea calcular el pago total de un empleado e informarlo junto con su designación (Pago total = Salario + Bonificación). En SQL, debe unir las tablas necesarias para obtener información adicional. En Excel, podemos usar la función Vlookup () para hacer esto. Aquí, usaremos la función Applymap para mapear la BONIFICACIÓN y la DESCRIPCIÓN DE LA DESIGNACIÓN de la tabla de mapeo respectiva.
Tenga en cuenta que este problema también se puede resolver a través de Join o Association. Resolveremos esto usando Applymap en este artículo.
Paso 1:
En nuestro script QlikView, primero definiremos las tablas de mapeo:
- Bonus – asigna EmpCode a Bonus
- Designation_desc – asigna DesignationCode a la descripción de la designación
Paso 2:
El segundo paso es utilizar esta información al leer la tabla de empleados:
Ahora, 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.
- Varias tablas en su modelo de datos no es algo bueno. Por lo tanto, 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, devuelve 0 (cero).
- 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, devuelve «Desconocido».
- ApplyMap (‘Bonus’, EmpCode, Salario * 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, devuelve el 5% del salario (el campo existe en el conjunto de datos del empleado).
- ApplyMap (‘Designation_desc’, DesignationCode, ApplyMap (‘Bonus’, EmpCode, Salario * 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 (Bonus). Aquí hemos utilizado Applymap anidado.
- 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. Nuevamente, esto es similar a cómo funciona VLOOKUP () en Excel.
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. Sin embargo, 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?
Comparta sus pensamientos a través de los comentarios a continuación.
Si le gusta lo que acaba de leer y desea continuar con su aprendizaje sobre análisis, suscríbete a nuestros correos electrónicos, Síguenos en Twitter o como nuestro pagina de Facebook.