Come utilizzare le funzionalità CERCA.VERT e Mi piace in QlikView?

Contenuti

Ogni volta che interagisco con un utente Qlikview, che hai migrato da Excel di recente, una delle domande più comuni ricevute è:

“Come si applica CERCA.VERT? () in Qlikview?”

per iniziare, CERCA.VERT è il modo eccellente per partecipare 2 set di dati tramite una chiave comune. È qualcosa di simile ai join in SQL.

Perché abbiamo bisogno di una funzione esterna come CERCA.VERT? () in Qlikview?

Ogni volta che importi un set di dati esterno in Qlikview, trova colonne comuni e si unisce. Perciò, le persone che hanno familiarità con Qlikview potrebbero chiedersi, Perché abbiamo bisogno di una funzione simile a CERCA.VERT? () primo?

La risposta è costruire modelli di dati efficienti. Lascia che ti spieghi una situazione di vita reale che ho dovuto affrontare nei miei primi giorni con Qlikview. Alcune persone esperte mi hanno detto che è sempre consigliabile ridurre al minimo il numero di tabelle nel modello di dati. Al mio primo incarico come sviluppatore Qlikview, Ho usato più combinazioni e associazioni. Di conseguenza, il mio modello di dati è diventato troppo complesso e difficile da capire. Non sono riuscito a identificare e correggere facilmente gli errori (un esempio di modello di dati simile è mostrato nella figura seguente per riferimento).

Dato che ho trascorso più tempo con Qlikview, Ho trovato l'uso della tabella di mappatura con la funzione Applymap () e ho scoperto che erano simili a CERCA.VERT (), dove recuperiamo le informazioni da un set di dati di mappatura a un set di dati primario. Questo ci aiuta a semplificare in modo significativo i nostri modelli di dati..

quarto-1942975

In Qlikview, le adesioni possono essere effettuate utilizzando Association, Unisciti e applicamappa. Applymap funziona in modo simile a VLOOKUP con alcune funzionalità aggiuntive. Ad esempio, se CERCA.VERT non trova una corrispondenza nella tabella di mappatura, Portare indietro “#N / A”. Applica mappa, In secondo luogo, può restituire stringhe / numeri / campi da una tabella simile, nel caso non ci siano corrispondenze. Possiamo anche scrivere Applymap annidato, per fare riferimento a un'altra tabella di mappatura, nel caso in cui il valore non venga trovato.

Come possiamo definire la tabella di mappatura?

La tabella di mappatura deve avere due colonne: la prima per la chiave di ricerca e la seconda per il controvalore. Le tabelle di mappatura vengono archiviate separatamente in memoria e utilizzate solo durante l'esecuzione dello script. Dopo aver eseguito lo script, vengono automaticamente cancellati.

La sintassi per caricare una tabella di mappatura è simile all'istruzione LOAD con un prefisso aggiuntivo (MAPPATURA) prima del CARICO. L'origine della tabella di mapping può essere un database, un foglio di calcolo, un tavolo residente, una tabella online o un file QVD:

Designation_desc:
 Mappatura del Designation_Code LOAD,
 Designation_Desc
 FROM
 Data_set.xlsx
 (ooxml, Etichette incorporate, la tabella è Designazione);

Funzione e sintassi Applymap ():

La sintassi è molto simile a una funzione di ricerca: Prendere un valore come input, Verifica se questo valore esiste in una tabella di mapping e restituisce il valore corrispondente dalla seconda colonna della tabella di mapping. La funzione Applymap viene sempre utilizzata dopo aver definito una tabella di mappatura:

Sintassi:

applica la mappa'nomemappa', chiave di ricerca [ , defaultexpr ] )

dove:

nomemappa è il nome della tabella di mappatura, che è già stato creato attraverso carico di mappatura. Il tuo nome deve essere racchiuso tra virgolette singole.

chiave di ricerca è l'espressione, il cui risultato dovrebbe essere mappato.

defaultexpr è un'espressione facoltativa, da utilizzare come valore di mappatura predefinito, se la tabella di mappatura non contiene un valore corrispondente per la chiave di ricerca. Se non viene fornito alcun valore predefinito, il valore di ricerca verrà restituito così com'è.

applymap2-9636106

Come possiamo usare Applymap??

Vediamo un palco, dove abbiamo un set di dati di dipendenti con il loro codice dipendente, codice di designazione, stipendio e stato civile. Cosa c'è di più, è necessaria la descrizione della designazione del dipendente e i dettagli del bonus, che sono disponibili in una tabella diversa. Vuoi calcolare la retribuzione totale per un dipendente e segnalarla insieme alla sua designazione (Pagamento totale = Stipendio + Bonus). e SQL, è necessario unire le tabelle necessarie per ottenere ulteriori informazioni. In excel, possiamo usare la funzione Vlookup () per fare questo. Qui, utilizzeremo la funzione Applymap per mappare il BONUS e la DESCRIZIONE DELLA DESIGNAZIONE della rispettiva tabella di mappatura.

primo1-4457509

Nota che questo problema può essere risolto anche tramite Partecipa o Associazione. Risolveremo questo problema usando Applymap in questo articolo.

passo 1:

Nel nostro script QlikView, prima definiremo le tabelle di mappatura:

  • Bonus – assegna EmpCode a Bonus
  • Designation_desc – assegna DesignationCode alla descrizione della designazione
Bonus:
 Mappatura di LOAD EmpCode,
 Bonus
 FROM Data_set.xlsx (ooxml, Etichette incorporate, tabella è Bonus);
Designation_desc:
 Mapping LOAD DesignationCode,
 Designation_Desc
 FROM Data_set.xlsx (ooxml, Etichette incorporate, la tabella è Designazione);

passo 2:

Il secondo passaggio consiste nell'utilizzare queste informazioni durante la lettura della tabella dei dipendenti.:

Impiegato:
 CARICA EmpCode,
 Genere,
 Stato civileStatus,
 DesignationCode,
 Stipendio,
 ApplicaMappa('Bonus',EmpCode,0) come Bonus,
 ApplicaMappa('Designation_desc',DesignationCode,'Sconosciuto') as designation_Desc
 FROM Data_set.xlsx (ooxml, Etichette incorporate, la tabella è principale);

Ora, abbiamo unito i campi Descrizione e Designazione del bonus con il set di dati dei dipendenti, senza utilizzare una combinazione o un'associazione.

Vantaggi dell'utilizzo di ApplyMap:

  • Più tabelle nel modello di dati non sono una buona cosa. Perciò, Non vuoi una situazione in cui hai molte ricerche collegate alla tua tabella principale. Questo problema può essere risolto creando una tabella di mappatura utilizzando ApplyMap.
  • La tabella di mappatura esiste solo durante il caricamento, Possiamo chiamarlo come un tavolo temporaneo.
  • ApplyMap ha caratteristiche eccellenti come terzo parametro (opzionale). Il terzo parametro consente di restituire qualcosa di più utile, quando il valore di ricerca non viene trovato nella tabella di mappatura. Il terzo parametro può essere stringa, numero, campo del set di dati di base, combinazione di stringa e campo e un riferimento più importante a un'altra tabella di mappatura utilizzando la funzione nidificata Applymap..
    • ApplicaMappa ('Bonus', EmpCode, 0): Cartografia Tabella Mappa Importo Bonus (bonus). Se Empcode non esiste nella tabella di mappatura, Portare indietro 0 (zero).
    • ApplicaMappa ('Denominazione_desc', DesignationCode, 'Sconosciuto'): Descrizione della designazione della mappa della tabella di mappatura (Designation_desc). Se DesignatonCode non esiste nella tabella di mappatura, Portare indietro “Sconosciuto”.
    • ApplicaMappa ('Bonus', EmpCode, Stipendio * 0.05): Cartografia Tabella Mappa Importo Bonus (bonus). Se Empcode non esiste nella tabella di mappatura, restituire il 5% di stipendio (il campo esiste nel set di dati del dipendente).
    • ApplicaMappa ('Denominazione_desc', DesignationCode, ApplicaMappa ('Bonus', EmpCode, Stipendio * 0.05)): Descrizione della designazione della mappa della tabella di mappatura (Designation_desc). Se DesignatonCode non esiste nella tabella di mappatura, Devuelve Bonus dalla tabella di mappatura (Bonus). Qui abbiamo usato Applymap nidificato.

secondo-3640868

terzo-6072580

  • Quando la tabella di mappatura ha righe duplicate, JOIN risulterà in un doppio conteggio, mentre ApplyMap si occupa della prima istanza della chiave nella tabella di mappatura. Ignora automaticamente i valori duplicati successivi. Ancora, questo è simile a come funziona VLOOKUP () in excel.

pensieri conclusivi:

Se richiediamo più campi della tabella di riferimento in base a un campo chiave, non possiamo farlo tramite Applymap. Possiamo avere solo due colonne in una tabella di mappatura. Se siamo costretti a mappare 4 oh 5 campi, allora preferirei creare 4 oh 5 tabelle di mappatura. tuttavia, se abbiamo bisogno di unire di più, Cercherò altre opzioni come Unisciti.

Questo è un esempio in cui possiamo migliorare i nostri modelli di dati e migliorare le prestazioni dei pannelli di controllo della qualità. Hai esperienze o casi di studio che illustrino lo stesso in Qlikview? Hai altri suggerimenti da condividere per migliorare i dashboard??

Condividi i tuoi pensieri attraverso i commenti qui sotto..

Se ti piace quello che hai appena letto e vuoi continuare a imparare l'analisi, iscriviti alle nostre email, Seguici su Twitter o come il nostro pagina Facebook.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.