So verwenden Sie SVERWEIS und die Like-Funktion in QlikView?

Inhalt

Immer wenn ich mit einem Qlikview-Benutzer interagiere, die Sie kürzlich von Excel migriert haben, Eine der am häufigsten erhaltenen Anfragen ist:

“Wie wende ich SVERWEIS an () in Qlikview?”

um anzufangen, SVERWEIS ist der ausgezeichnete Weg, um beizutreten 2 Datensätze über einen gemeinsamen Schlüssel. Es ist etwas Ähnliches wie Joins in SQL.

Warum brauchen wir eine externe Funktion wie SVERWEIS () in Qlikview?

Immer wenn Sie einen externen Datensatz in Qlikview importieren, findet gemeinsame Spalten und schließt sich selbst an. Deswegen, Leute, die mit Qlikview etwas vertraut sind, fragen sich vielleicht, Warum brauchen wir eine ähnliche Funktion wie SVERWEIS () erste?

Die Antwort besteht darin, effiziente Datenmodelle zu erstellen. Lassen Sie mich eine Situation aus dem wirklichen Leben erklären, mit der ich in meinen frühen Tagen mit Qlikview konfrontiert war. Einige erfahrene Leute haben mir gesagt, dass es immer ratsam ist, die Anzahl der Tabellen in Ihrem Datenmodell zu minimieren. Bei meinem ersten Einsatz als Qlikview-Entwickler, Ich habe mehrere Kombinationen und Assoziationen verwendet. Infolge, mein Datenmodell wurde zu komplex und schwer zu verstehen. Ich konnte Fehler nicht leicht erkennen und korrigieren (ein ähnliches datenmodellbeispiel ist in der abbildung unten als referenz dargestellt).

Da ich mehr Zeit mit Qlikview verbracht habe, Ich habe die Verwendung der Zuordnungstabelle mit der Applymap-Funktion gefunden () und fanden sie ähnlich wie SVERWEIS (), wo wir Informationen aus einem Mapping-Dataset zu einem primären Dataset abrufen. Dies hilft uns, unsere Datenmodelle deutlich zu vereinfachen..

vierte-1942975

In Qlikview, Joins können mit Association . erstellt werden, Join y Applymap. Applymap funktioniert ähnlich wie SVERWEIS mit einigen zusätzlichen Funktionen. Zum Beispiel, wenn SVERWEIS keine Übereinstimmung in der Zuordnungstabelle findet, zurückbringen “#N / A”. Anwendenmap, Zweitens, kann Zeichenfolgen zurückgeben / Zahlen / Felder aus einer ähnlichen Tabelle, falls es keine Übereinstimmungen gibt. Wir können auch verschachtelte Applymap schreiben, um auf eine andere Zuordnungstabelle zu verweisen, falls der Wert nicht gefunden wird.

Wie können wir die Zuordnungstabelle definieren??

Die Zuordnungstabelle muss zwei Spalten haben: der erste für den Suchschlüssel und der zweite für den Tauschwert. Zuordnungstabellen werden separat im Speicher gespeichert und nur während der Skriptausführung verwendet. Nach dem Ausführen des Skripts, werden automatisch gelöscht.

Die Syntax zum Laden einer Mapping-Tabelle ähnelt der LOAD-Anweisung mit einem zusätzlichen Präfix (KARTIERUNG) vor LADEN. Die Quelle der Mapping-Tabelle kann eine Datenbank sein, eine Kalkulationstabelle, ein Bewohnertisch, eine Online-Tabelle oder eine QVD-Datei:

Bezeichnung_desc:
 Zuordnung von LOAD Designation_Code,
 Bezeichnung_Beschreibung
 VON
 Data_set.xlsx
 (ooxml, eingebettete Etiketten, Tabelle ist Bezeichnung);

Applymap-Funktion und -Syntax ():

Die Syntax ist einer Suchfunktion sehr ähnlich: nimmt einen Wert als Eingabe an, prüft, ob dieser Wert in einer Mapping-Tabelle vorhanden ist und gibt den entsprechenden Wert aus der zweiten Spalte der Mapping-Tabelle zurück. Die Applymap-Funktion wird immer nach dem Definieren einer Mapping-Tabelle verwendet:

Syntax:

Karte anwenden'Kartenname', Suchschlüssel [ , Standardausdruck ] )

wo:

Kartenname ist der Name der Zuordnungstabelle, das wurde bereits erstellt durch Mapping-Last. Ihr Name muss in einfache Anführungszeichen gesetzt werden.

Suchschlüssel ist der Ausdruck, dessen Ergebnis abgebildet werden soll.

Standardausdruck ist ein optionaler Ausdruck, als Standardzuordnungswert zu verwenden, wenn die Zuordnungstabelle keinen passenden Wert für den Nachschlageschlüssel enthält. Wenn kein Standardwert angegeben ist, der Suchwert wird unverändert zurückgegeben.

Applymap2-9636106

Wie können wir Applymap verwenden??

Lass uns eine Bühne sehen, wo wir einen Datensatz von Mitarbeitern mit ihrem Mitarbeitercode haben, Bezeichnungscode, Gehalt und Familienstand. Was ist mehr, Sie benötigen die Bezeichnung des Mitarbeiters und die Bonusdetails, die in einer anderen Tabelle verfügbar sind. Sie möchten den Gesamtlohn eines Mitarbeiters berechnen und zusammen mit seiner Benennung melden (Gesamtzahlung = Gehalt + Bonus). Und SQL, Sie müssen die erforderlichen Tabellen verknüpfen, um zusätzliche Informationen zu erhalten. In Excel, wir können die Vlookup-Funktion verwenden () um dies zu tun. Hier, wir verwenden die Applymap-Funktion, um den BONUS und die BEZEICHNUNGSBESCHREIBUNG der jeweiligen Zuordnungstabelle abzubilden.

erster1-4457509

Beachten Sie, dass dieses Problem auch über Beitreten oder Zuordnen gelöst werden kann. Wir werden dies mit Applymap in diesem Artikel lösen.

Paso 1:

In unserem QlikView-Skript, Zuerst definieren wir die Mapping-Tabellen:

  • Bonus – weist EmpCode dem Bonus zu
  • Bezeichnung_desc – weist der Bezeichnung der Bezeichnung DesignationCode zu
Bonus:
 LOAD EmpCode zuordnen,
 Bonus
 FROM Data_set.xlsx (ooxml, eingebettete Etiketten, Tisch ist Bonus);
Bezeichnung_desc:
 Zuordnung LOAD Bezeichnungscode,
 Designation_Desc
 FROM Data_set.xlsx (ooxml, eingebettete Etiketten, Tabelle ist Bezeichnung);

Paso 2:

Der zweite Schritt besteht darin, diese Informationen beim Lesen der Mitarbeitertabelle zu verwenden:

Angestellter:
 EmpCode LADEN,
 Geschlecht,
 Familienstand,
 BezeichnungCode,
 Gehalt,
 ApplyMap('Bonus',EmpCode,0) als Bonus,
 ApplyMap('Bezeichnung_desc',BezeichnungCode,'Unbekannt') as designation_Desc
 FROM Data_set.xlsx (ooxml, eingebettete Etiketten, Tisch ist Main);

Jetzt, wir haben die Felder Bonusbeschreibung und Bezeichnung mit dem Mitarbeiterdatensatz zusammengeführt, ohne eine Kombination oder Assoziation zu verwenden.

Vorteile der Verwendung von ApplyMap:

  • Mehrere Tabellen in Ihrem Datenmodell sind keine gute Sache. Deswegen, Sie möchten keine Situation, in der viele Suchanfragen an Ihre Mastertabelle angehängt sind. Dies kann durch Erstellen einer Zuordnungstabelle mit ApplyMap gelöst werden.
  • Zuordnungstabelle existiert nur während des Ladens, wir können es als temporäre Tabelle bezeichnen.
  • ApplyMap hat als dritter Parameter tolle Funktionen (Optional). Mit dem dritten Parameter können Sie etwas Nützlicheres zurückgeben, wenn der Nachschlagewert in der Zuordnungstabelle nicht gefunden wird. Der dritte Parameter kann string . sein, Nummer, Basis-Dataset-Feld, String- und Field-Mix und ein wichtigerer Verweis auf eine andere Mapping-Tabelle mit der verschachtelten Applymap-Funktion..
    • ApplyMap ('Bonus', EmpCode, 0): Bonusanzahl an Karten aus der Kartografietabelle (Bonus). Wenn Empcode in der Zuordnungstabelle nicht vorhanden ist, zurückbringen 0 (Null).
    • ApplyMap (‘Bezeichnung_desc’, BezeichnungCode, 'Unbekannt'): Beschreibung der Kartenbezeichnung aus der Zuordnungstabelle (Bezeichnung_desc). Wenn DesignatonCode in der Zuordnungstabelle nicht vorhanden ist, zurückbringen “Unbekannt”.
    • ApplyMap ('Bonus', EmpCode, Gehalt * 0.05): Kartenbonusbetrag aus der Kartografietabelle (Bonus). Wenn Empcode in der Zuordnungstabelle nicht vorhanden ist, Gib die ... wieder 5% des Gehalts (das Feld ist im Mitarbeiterdatensatz vorhanden).
    • ApplyMap (‘Bezeichnung_desc’, BezeichnungCode, ApplyMap ('Bonus', EmpCode, Gehalt * 0.05)): Beschreibung der Kartenbezeichnung aus der Zuordnungstabelle (Bezeichnung_desc). Wenn DesignatonCode in der Zuordnungstabelle nicht vorhanden ist, Entwicklungsbonus aus der Kartierungstabelle (Bonus). Hier haben wir verschachtelte Applymap verwendet.

Sekunde-3640868

dritte-6072580

  • Wenn die Zuordnungstabelle doppelte Zeilen, JOIN führt zu einer Doppelzählung, während ApplyMap die erste Instanz des Schlüssels in der Zuordnungstabelle behandelt. Nachfolgende doppelte Werte automatisch ignorieren. Nochmal, so funktioniert SVERWEIS () in Excel.

Abschließende Gedanken:

Wenn wir mehrere Felder aus der Referenztabelle basierend auf einem Schlüsselfeld benötigen, Wir können es nicht über Applymap tun. Wir können nur zwei Spalten in einer Zuordnungstabelle haben. Wenn wir zur Kartierung verpflichtet sind 4 Ö 5 Felder, dann würde ich lieber erstellen 4 Ö 5 Zuordnungstabellen. Aber trotzdem, wenn wir mehr vereinen müssen, Ich suche nach anderen Optionen wie Join.

Dies ist ein Beispiel, bei dem wir unsere Datenmodelle verbessern und die Leistung von QA-Dashboards verbessern können. Haben Sie Erfahrung oder Fallstudien, die dasselbe in Qlikview veranschaulichen?? Haben Sie weitere Tipps zur Verbesserung von Dashboards??

Teilen Sie Ihre Gedanken in den Kommentaren unten mit..

Wenn Ihnen das, was Sie gerade gelesen haben, gefällt und Sie weiter über Analytics lernen möchten, abonnieren Sie unsere E-Mails, Folge uns auf Twitter oder wie bei uns Seite auf Facebook.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.