Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
dmap_jacky
Contributor III
Contributor III

calcul indépendant de cette dimension calculée?

calcul indépendante d'une dimension calculée
 

La formule suivante

Sum(   {<KPI={"BROAD"},SKPI,GROUPE>}      VOL) 

permet d'obtenir le volume du KPI BROAD quelque soit les selections SKPI ou GROUPE.

 

A partir d'une dimension calculée GROUPE_select         =if(SKPI='INTERNET', GROUPE)

La formule n'est plus opérationnelle si l'on effectue une sélection dans le filtre GROUPE_select.

Comment rendre le calcul indépendant de cette dimension calculée?

Pour exemple, le QVF (feuille Test2)  ou la formule doit retourner la valeur 119.

Labels (3)
8 Replies
Cirdecp007
Creator
Creator

Je n'ai pas complètement compris votre demande mais j'ai peut-être 2 pistes pour vous :

Comment et où faites-vous appel à la condition if. De mon côté, j'aurais plutôt écrit 

=if(SKPI='INTERNET',

Sum( {<KPI={"BROAD"},SKPI={'INTERNET'},GROUPE>} VOL), // Valeur si la condition est rempli (pour moi l'instruction SKPI={'INTERNET'} et SKPI sont d'ailleurs identiques puisque le SKPI nommé INTERNET doit être sélectionné pour que la condition fonctionne. On pourrait même se passer de renseigner SKPI puisque sa valeur correspond justement à celle du filtre SKPI.)

Sum( {<KPI={"BROAD"},SKPI,GROUPE>} VOL) // Valeur si la condition n'est pas rempli

)

Ensuite, pour exclure le filtre GROUPE il faut ajouter = après le E sinon il est justement pris en compte dans votre formule

Sum( {<KPI={"BROAD"},SKPI={'INTERNET'},GROUPE=>} VOL)

Je ne peux malheureusement pas accéder au fichier .qvf pour vous donner la syntaxe exacte.

dmap_jacky
Contributor III
Contributor III
Author

Merci à toi Cidecp007 de ton approche

Je vais préciser en explicitant mon qvf  avec ta formule de calcul (même comportement)

 

vue de la feuille

dmap_jacky_0-1668667740561.png

réalisé via la table source  4 dimensions KPI ,SKPI , GROUPE, CANAL et une mesure vol  (voir le fichier sourceggg.xlsx)

 

Dans QLIK Sense, une dimension a été créer GROUPE_SELECT via 

dmap_jacky_1-1668667989548.png

avec la formule             =if(SKPI='INTERNET', GROUPE)  pour   réduire le choix à deux éléments de la dimension GROUPE (visibilité et sécurité)

 

les calculs s'effectuent dans deux mesures  cBroad   &    cServ.Internet

cBroad:                       Sum({<KPI={"BROAD"},SKPI=,GROUPE=>}VOL)  

cServ.Internet :            Sum({<SKPI={"INTERNET"}>}VOL)

 

 cBroad affiche 119  quelques soient les sélections effectuées dans la dimension GROUPE

  cServ.Internet  reste sensible à la sélection  (pour voir la différence)

 

Avec la dimension GROUPE_S 

cBroad n'affiche plus 119  et  cServ.Internet  s’adapte

 

Pourquoi la formule de CBroad est bonne sur le filtrage GROUPE et mauvaise sur celui du filtrage dans GROUPE_S (du mal à comprendre pourquoi)

l'objectif est  d'avoir un calcul réagissant à la sélection dans la dimension réduite (GROUPE_Select)

 

Cirdecp007
Creator
Creator

Ta formule pour cBroad: Sum({<KPI={"BROAD"},SKPI=,GROUPE=>}VOL) ne défiltre pas ta nouvelle dimension  GROUPE_Select.

Il faut écrire Sum({<KPI={"BROAD"},SKPI=,GROUPE=,GROUPE_Select=>}VOL)

En effet, GROUPE_Select n'étant pas un KPI BROAD mais SERVICE ta formule cherchait le KPI = BROAD + le GROUPE_Selec (égale au GROUPE) SECURITE et/ou VISIBILITE mais avec un KPI = SERVICE donc valeur nulle.

dmap_jacky
Contributor III
Contributor III
Author

Bjr,

 

GROUPE_Select n'est pas une dimension présente, elle n'est pas accessible dans l'éditeur.

dmap_jacky_0-1668761932978.png

 

Si j'avais ajouté dans le script la création de  la dimension GROUPE_Select sur GROUPE alors ton code était parfait.

Si l'on créé la dimension via élément principaux , elle n'est pas accessible dans l'éditeur. Du moins je ne parviens pas l'utiliser dans ce cas. 

L'impression est d'avoir une dimension personnalisée incompatible en raison du if?

 

 

Cirdecp007
Creator
Creator

Ta dimension s'appelle "GROUPE_select"

donc Sum({<KPI={"BROAD"},SKPI=,GROUPE=,GROUPE_select=>}VOL)

Sauf erreur, Qlik fait la différence entre majuscule et minuscule.

dmap_jacky
Contributor III
Contributor III
Author

Qlik fait la distinction de la case,  J'ai testé avec la bonne syntaxe et le défaut persiste 

 

Cirdecp007
Creator
Creator

Je pense qu'il faut utiliser la fonction Total.

Peux-tu tester la formule ci-dessous ?

Sum({<KPI={"BROAD"},SKPI=,GROUPE=>}Total VOL)

dmap_jacky
Contributor III
Contributor III
Author

Merci pour l'idée de forcer par  total pour autant la sélection par la  dimension GROUPE_select ne produit pas le bon résultat.

J'ai deux solutions de substitution

1-dans  forcer la sélection GROUPE sur les éléments désirées via les actions et la formule devient opérante. (la dimension GROUPE_select devient inutile). l'inconvénient c'est d'avoir des éléments en grisé

2-Dans le chargement créer , la dimension GROUPE_select basée sur GROUPE (table de transposition) la formule Sum(   {<KPI={"BROAD"},SKPI,GROUPE_select>}      VOL)  fonctionne.

 

Est-il vraiment possible d'utiliser une dimension générée par élément dans une mesure ?  j'en doute.

encore merci de ta contribution.