2017-10-09 6 views
0

Je souhaite créer une table qui affiche toutes les personnes ayant un chiffre d'affaires dans une plage spécifique. Les personnes qui ne sont pas dans la plage doivent être masquées/filtrées. La plage est spécifiée par deux variables: vNettoAb et vNettoBis.Qlikview: Limiter la dimension dynamique via les variables

Mon idée est-il pour créer une dimension dynamique avec le code suivant:

  1. person_dbid
  2. =if(((sum(invoice.value) <= vNettoBis) AND sum(invoice.nettosumme_value) >= (vNettoAb)), %person_dbid)

Ma formule montre une erreur non spécifique, je ne peux pas comprendre pourquoi. Y at-il un moyen de filtrer les personnes avec Set Analysis (par exemple avec e ({....}) ou avez-vous des suggestions pour ma dimension dynamique?

Merci beaucoup! J'ai besoin d'aide ... J'ai déjà gaspillée 2 jours et ont laissé aucune idée :-)

+0

[Voir cette réponse] (https://stackoverflow.com/a/39983623/1649780) qui utilise un curseur à la place de vos variables, mais qui peut être adapté à votre situation. Les étapes 4 et 5 sont essentielles pour s'assurer que le tableau/tableau affiche uniquement les valeurs dans la plage souhaitée. – bdiamante

Répondre

1

Vous pouvez utiliser quelque chose comme ceci:.

= count({< invoice.value = {"<=$(vNettoBis)"}, invoice.nettosumme_value = {">=$(vNettoAb)"} > } 1)

dimensions calculées sont autorisés, mais ils vont conduire à des problèmes de performance dans les grandes séries de données. QlikView crée des tables "virtuelles" à la volée dans la mémoire lorsque des cotes calculées sont utilisées. Essayez de les éviter autant que possible et de "contrôler" les dimensions des expressions. En savoir plus à ce sujet here