2017-10-04 3 views
1

J'ai un histogramme avec 6 catégories, par ex. Interdit, restreint, élevé, très élevé, modéré, faible. Dans mon script de charge que j'ai créé une colonne de commande pour le tri des barres dans le tableau qui va quelque chose comme:Qlikview: Affichage 0 Barres mais maintien de l'ordre

if(COL = 'prohibited', 1, 
if(COL = 'restricted', 2, 
if(COL = 'very high', 3, 
if(COL = 'high', 4, 
if(COL = 'moderate', 5, 
if(COL = 'low', 6, 1)))))) AS COL_SORT 

J'ai aussi le « Afficher toutes les valeurs Option » cochée qui montre les catégories avec 0 points. Ce que je trouve c'est que le tri ne fonctionne que partiellement, si j'ai du volume dans chaque catégorie, l'ordre fonctionne mais s'il y a 0 barre, il n'y a aucune garantie que le tri fonctionne.

Ma question est la suivante: Y at-il un moyen de garantir l'ordre des barres, peu importe si le nombre de barres est 0 ou plus? La société dans laquelle je travaille ne me laissera pas télécharger des données d'échantillon, donc je comprends si cela agace les gens qui essaient d'aider.

Cordialement

Edit: Je voudrais garder l'ordre dans le instruction if/else.

Répondre

3

dans le tableau « propriétés -> tri » utilisation « expression » l'ordre de tri et d'utiliser cette expression:

max({1} COL_SORT) 
1

La double fonction() peut faire ce que vous voulez. La double affecte une valeur numérique à chaque élément d'une dimension. QlikView l'utilise en interne pour trier des choses comme les mois et les noms de jour. Remarque importante, après avoir affecté la commande dans le script, vous devez définir l'ordre de tri de votre graphique sur Numeric.

dual(COL, 
if(COL = 'prohibited', 1, 
    if(COL = 'restricted', 2, 
    if(COL = 'very high', 3, 
     if(COL = 'high', 4, 
     if(COL = 'moderate', 5, 
      if(COL = 'low', 6, 1))))))) AS COL