Comment utiliser RECHERCHEV et la fonctionnalité J'aime dans QlikView?

Contenu

Chaque fois que j'interagis avec un utilisateur Qlikview, que vous avez migré depuis Excel récemment, l'une des requêtes les plus courantes reçues est:

“Comment puis-je appliquer RECHERCHEV () en Qlikview?”

Pour commencer, RECHERCHEV est l'excellent moyen de rejoindre 2 ensembles de données via une clé commune. C'est quelque chose de similaire aux jointures en SQL.

Pourquoi avons-nous besoin d'une fonction externe comme RECHERCHEV () en Qlikview?

Chaque fois que vous importez un ensemble de données externe dans Qlikview, trouve les colonnes communes et se joint. Donc, les personnes quelque peu familières avec Qlikview pourraient se demander, Pourquoi avons-nous besoin d'une fonction similaire à RECHERCHEV () en premier lieu?

La réponse est de construire des modèles de données efficaces. Laissez-moi vous expliquer une situation réelle à laquelle j'ai été confrontée à mes débuts avec Qlikview. Certaines personnes expérimentées m'ont dit qu'il est toujours sage de minimiser le nombre de tables dans votre modèle de données. Lors de ma première mission en tant que développeur Qlikview, J'ai utilisé plusieurs combinaisons et associations. Par conséquent, mon modèle de données est devenu trop complexe et difficile à comprendre. Je ne pouvais pas facilement identifier et corriger les erreurs (un exemple de modèle de données similaire est montré dans la figure ci-dessous pour référence).

Comme j'ai passé plus de temps avec Qlikview, J'ai trouvé l'utilisation de la table de mappage avec la fonction Applymap () et trouvé qu'ils étaient similaires à RECHERCHEV (), où nous récupérons des informations d'un jeu de données cartographiques vers un jeu de données principal. Cela nous aide à simplifier considérablement nos modèles de données..

quatrième-1942975

En Qlikview, les jointures peuvent être faites en utilisant l'association, Rejoindre y Applymap. Applymap fonctionne de manière similaire à RECHERCHEV avec quelques fonctionnalités supplémentaires. Par exemple, si RECHERCHEV ne trouve pas de correspondance dans la table de mappage, ramener “#N / A”. Appliquer la carte, d'un autre côté, peut retourner des chaînes / nombres / champs d'une table similaire, au cas où il n'y aurait pas de correspondance. On peut aussi écrire des Applymap imbriqués, pour référencer une autre table de mappage, au cas où la valeur n'est pas trouvée.

Comment pouvons-nous définir la table de mappage?

La table de mappage doit avoir deux colonnes: le premier pour la clé de recherche et le second pour la valeur d'échange. Les tables de mappage sont stockées séparément en mémoire et utilisées uniquement pendant l'exécution du script. Après avoir exécuté le script, sont automatiquement supprimés.

La syntaxe pour charger une table de mappage est similaire à l'instruction LOAD avec un préfixe supplémentaire (CARTOGRAPHIE) avant CHARGER. La source de la table de mappage peut être une base de données, une feuille de calcul, une table de résident, une table en ligne ou un fichier QVD:

Désignation_desc:
 Mappage LOAD Désignation_Code,
 Désignation_Desc
 DE
 Ensemble_données.xlsx
 (ooxml, étiquettes incorporées, le tableau est Désignation);

Fonction et syntaxe Applymap ():

La syntaxe est très similaire à une fonction de recherche: prend une valeur en entrée, vérifie si cette valeur existe dans une table de mappage et renvoie la valeur correspondante de la deuxième colonne de la table de mappage. La fonction Applymap est toujours utilisée après avoir défini une table de mappage:

Syntaxe:

appliquer la carte« nom de la carte », clé de recherche [ , expressionpardéfaut ] )

où:

nom de la carte est le nom de la table de mappage, qui a déjà été créé par charge de mappage. Votre nom doit être mis entre guillemets simples.

clé de recherche est l'expression, dont le résultat doit être mappé.

expressionpardéfaut est une expression facultative, à utiliser comme valeur de mappage par défaut, si la table de mappage ne contient pas de valeur correspondante pour la clé de recherche. Si aucune valeur par défaut n'est fournie, la valeur de recherche sera retournée telle quelle.

appliquer la carte2-9636106

Comment pouvons-nous utiliser Applymap?

Voyons une scène, où nous avons un ensemble de données d'employés avec leur code d'employé, code de désignation, salaire et état civil. En outre, vous avez besoin de la description de la désignation de l'employé et des détails de la prime, qui sont disponibles dans une table différente. Vous souhaitez calculer le salaire total d'un employé et le déclarer avec sa désignation (Paiement total = Salaire + Prime). Et SQL, vous devez joindre les tables nécessaires pour obtenir des informations supplémentaires. dans excel, nous pouvons utiliser la fonction Vlookup () pour faire ceci. Ici, nous utiliserons la fonction Applymap pour mapper le BONUS et la DÉSIGNATION DESCRIPTION de la table de mappage respective.

premier1-4457509

Notez que ce problème peut également être résolu via Join ou Association. Nous allons résoudre ce problème en utilisant Applymap dans cet article.

Paso 1:

Dans notre script QlikView, nous allons d'abord définir les tables de mappage:

  • Prime – attribue EmpCode à Bonus
  • Désignation_desc – attribue DesignationCode à la description de la désignation
Prime:
 Mappage LOAD EmpCode,
 Bonus
 FROM Data_set.xlsx (ooxml, étiquettes incorporées, la table est Bonus);
Désignation_desc:
 Mappage LOAD DésignationCode,
 Designation_Desc
 FROM Data_set.xlsx (ooxml, étiquettes incorporées, le tableau est Désignation);

Paso 2:

La deuxième étape consiste à utiliser ces informations lors de la lecture de la table des employés:

Employé:
 CHARGER Code Emp,
 Le genre,
 État civil,
 DésignationCode,
 Un salaire,
 AppliquerCarte('Prime',CodeEmp,0) en bonus,
 AppliquerCarte('Designation_desc',DésignationCode,'Inconnu') as designation_Desc
 FROM Data_set.xlsx (ooxml, étiquettes incorporées, la table est principale);

À présent, nous avons joint les champs Description et Désignation des primes avec l’ensemble de données des employés, sans utiliser de combinaison ou d’association.

Avantages de l’utilisation d’ApplyMap:

  • Plusieurs tables dans votre modèle de données ne sont pas une bonne chose. Donc, vous ne voulez pas d’une situation où vous avez de nombreuses recherches attachées à votre table principale. Cela peut être résolu en créant une table de mappage à l’aide d’ApplyMap.
  • La table de mappage n’existe que pendant le chargement, nous pouvons l’appeler une table temporaire.
  • ApplyMap a d’excellentes fonctionnalités comme troisième paramètre (optionnel). Le troisième paramètre vous permet de retourner quelque chose de plus utile, lorsque la valeur de recherche n’est pas dans la table de mappage. Le troisième paramètre peut être une chaîne, le numéro, champ de jeu de données de base, mélange de chaînes et de champs et une référence plus importante à une autre table de mappage à l'aide de la fonction Applymap imbriquée..
    • AppliquerCarte ('Prime', CodeEmp, 0): Montant bonus de cartes de la table de cartographie (prime). Si Empcode n'existe pas dans la table de mappage, ramener 0 (zéro).
    • AppliquerCarte ('Désignation_desc', DésignationCode, 'Inconnue'): Description de la désignation de la carte à partir de la table de cartographie (Désignation_desc). Si DesignatonCode n'existe pas dans la table de mappage, ramener “Inconnu”.
    • AppliquerCarte ('Prime', CodeEmp, Un salaire * 0.05): Cartographie Table Carte Montant Bonus (prime). Si Empcode n'existe pas dans la table de mappage, retourner le 5% de salaire (le champ existe dans l'ensemble de données de l'employé).
    • AppliquerCarte ('Désignation_desc', DésignationCode, AppliquerCarte ('Prime', CodeEmp, Un salaire * 0.05)): Description de la désignation de la carte à partir de la table de cartographie (Désignation_desc). Si DesignatonCode n'existe pas dans la table de mappage, Bonus devuelve de la table de mappage (Prime). Ici, nous avons utilisé Applymap imbriqué.

deuxième-3640868

troisième-6072580

  • Lorsque la table de mappage a lignes en double, JOIN entraînera un double compte, tandis qu'ApplyMap traite la première instance de la clé dans la table de mappage. Ignorer automatiquement les valeurs en double suivantes. Encore, c'est similaire à la façon dont VLOOKUP fonctionne () dans excel.

Pensées concluantes:

Si nous avons besoin de plusieurs champs de la table de référence en fonction d'un champ clé, nous ne pouvons pas le faire via Applymap. Nous ne pouvons avoir que deux colonnes dans une table de mappage. Si on est obligé de cartographier 4 O 5 des champs, alors je préfère créer 4 O 5 tables de mappage. Cependant, si nous avons besoin d'unir plus que cela, Je vais chercher d'autres options comme Join.

Ceci est un exemple où nous pouvons améliorer nos modèles de données et améliorer les performances des tableaux de bord QA. Avez-vous des expériences ou des études de cas illustrant la même chose dans Qlikview? Avez-vous d'autres astuces à partager pour améliorer les tableaux de bord ??

Partagez vos pensées à travers les commentaires ci-dessous..

Si vous aimez ce que vous venez de lire et souhaitez continuer à apprendre sur l'analyse, abonnez-vous à nos e-mails, Suivez-nous sur Twitter ou comme le nôtre page le Facebook.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.