Qlik: Wähle alle Materialnummern aus Excelsheet mit einem Klick

Eine der Fragen die wir in letzter Zeit wiederholt bekommen haben: Wie kann ich in Qlik alle Materialnummern auswählen die ich zB in einem Excel gespeichert habe. Soviel sei vorab verraten: Alle Werte einzeln anklicken ist nicht die beste Antwort!

Massenselektion in Qlik Sense


Die normale Such-Lupe in einem Filter ist auf 5000 Zeichen limitiert. Selbst wenn der Endanwender also die Qlik Syntax mit 

(A1|A2|A3)

hinbekommen würde, ist bei vielen oder langen Materialnummer sehr schnell das Limit mit der Suche erreicht.

Qlik Sense Klammern Suche
Diese Suche funktioniert, aber bei 5000 Zeichen ist Schluss.


Besser ist, man macht eine "Variable Input" auf eine Variable vSearchListe. Inputboxen können längere Textketten aufnehmen. Wenn man mehrere Zeilen von Excel (oder sonst wo) nach Qlik kopiert, erhält man normalerweise Leerzeichen zwischen den Werten. Entsprechend muss man aus den Einträgen 

A1 A2 A3

in der Inputbox wieder die Qlik Syntax 

(A1|A2|A3)

machen.


Dafür benötigen wir einen Button mit der Aktion "Wähle Sie Werte aus, die dem Suchkriterium entsprechen". Der dynamische Wert ist: 

='('& replace(vSearchListe,'$(vTrennzeichen)','|') &')'



Interessanterweise scheint die Aktion keine Limitierung auf 5000 Zeichen zu haben. Somit kann man richtig viele Werte auf einmal selektieren.

Das Trennzeichen könnte natürlich auch ein Beistrich oder ein Strichpunkt sein, wenn man zum Beispiel Nummern aus einer .csv Datei kopiert. Deswegen halten wir das Trennzeichen in der Variable vTrennzeichen dynamisch.


Die Search Beispiel .qvf findet sich hier. Gleicher Trick funktioniert übrigens auch in QlikView!





Bundesländer & Bezirke - Automatisch in Qlik Sense

In der öffentlichen Wahrnehmung sind Kartendarstellungen wohl die "großen Gewinner" des Jahres 2020. Im Jahr 2021 geht es nahtlos so weiter, denn es wurde gerade ein neues Impfdashboard vom Gesundheitsministerium gelauncht. Die Daten dazu wurden auch auf data.gv.at veröffentlicht.  Ein guter Zeitpunkt zu prüfen, wie Qlik Sense diese Geodaten automatisch in Gebietsebenen interpretiert.

Impfdashboard in Qlik Sense mit data.gv.at Daten




Das Impfdaten .csv von data.gv.at enthält die Bundesländer-Namen als Text. 





Qlik versucht für Kartendarstellungen diese Feldinhalten automatisch mit geonames.org abzugleichen. Das wird nicht online gemacht, sondern Qlik hat einen internen Lookup der mitinstalliert wird.

Bundesländer Österreich auf geonames.org


Das funktioniert bei den 9 Bundesländern in Österreich problemlos. Um Qlik bei der Flächenfärbung in der Gebietsebene zu unterstützen, sollte man auch immer die Einstellung Standort/Standorttyp erzwingen. Im Fall von Bundesländern ist das "Verwaltungsgebiet (Ebene 1)". Ein wenig Hintergrund zu dieser Einstellung findet sich in der Qlik Community am Beispiel der Stadt Springfield.




Für Bezirke (Verwaltungsgebiet (Ebene 2)) geht man ähnlich vor. Auch hier liefert data.gv.at etwa die "Anzahl Fälle pro Bezirk" für Corona-Daten. Leider passt die Schreibweise der Bezirksnamen hier nicht ganz so gut zu den Bezirksnamen auf geonames.org. Nach dem initialen Laden der Daten bekommen wir eine lückenhafte Gebietskarte in Qlik Sense.


Um das Problem zu lösen, muss man die Schreibweise von data.gv.at auf die Schreibweisen bei geonames.org anpassen. Statt Graz(Stadt) würde sich Qlik Sense etwa Graz Stadt erwarten.

Geonames.org über Feature Class sagen was man sucht



Zur Korrektur der Bezirksnamen muss man (einmalig) ein Mapping der falschen Bezirksnamen durchführen. Wir haben hierfür ein Excel erzeugt.

Mappe alle Einträge die auf der Karte noch lückenhaft waren.




Dieses Excel nutzen wir dann um ein neues Feld "BezirkClean" zu erzeugen.

GeoNames:
Mapping
LOAD
    Bezirk,
    Laut_GeoNames_org
FROM [lib://data_gv_at/BezirksnamenFürQlik.xlsx]
(ooxml, embedded labels, table is Sheet1) where len(trim(Laut_GeoNames_org)) > 0;




data:
LOAD
    Bezirk,
    applymap('GeoNames',Bezirk,Bezirk) as BezirkClean,
    Anzahl,
    Anzahl_Inzidenz,
    GKZ,
    "Timestamp"
FROM [lib://data_gv_at/Bezirke.csv]
(txt, utf8, embedded labels, delimiter is ';', msq)
;

Mit diesem Feld erzeugen wir wieder eine Gebietsebene. Als Standorttyp wählen wir "Verwaltungsgebiet (Ebene 2)".



Wien kommt leider als eine große Fläche. Will man Wien in seine Bezirke unterteilen, so muss man eine eigene .kml Karte in Qlik Sense laden, wie hier im Blog beschrieben. Postleitzahlen von Österreich werden leider auch nicht automatisch zu einer Gebietsebene. Qlik Sense malt hier nur eine Punktebene. Für eine Gebietsebene würde man ebenfalls eine eigene .kml benötigen. Siehe Details zur Qlik Sense Geo Coverage in der QlikCommunity.

Die .qvf und das Excelmapping findet sich hier zum Download.


heldendaten GmbH,2020