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

Création d'un axe d'analyse non conventionnel

Bonjour à tous,

Dans le cadre d'un projet pour un de mes clients, j'ai besoin d'avoir pour un graphique et un tableau un axe non conventionnel. En gros il s'agit d'un axe comme ça : 

digitanthony_0-1606320540746.png

Pour le tableau, pas de souci, j'ai réussi en créant un jeu de données au niveau de la requête propre à QlikView et ensuite le gérer dans chacune des mes formules du tableau. Mon tableau fonctionne parfaitement. Cependant, j'ai 18 formules (une pour chaque colonne.

/* INDUCTEURS */
INDUCTEURS:
LOAD * INLINE [
No, CATEGORIE_ID, CATEGORIE_LIB, INDUCTEURS_ID, INDUCTEURS_LIB
1, 1, CAT1, 1, A
2, 1, CAT1, 2, B
3, 1, CAT1, 3, C
4, 2, CAT2, 4, D
5, 2, CAT2, 5, E
6, 2, CAT2, 6, F
7, 2, CAT2, 7, G
8, 2, CAT2, 8, H
];

Pour le graphique, manque de bol, je ne peux pas copier le tableau et le transmet en graphique. En effet, il va me mettre mes inducteurs en axe d'analyse et non mon fameux axe. Donc je me suis dit, pas de souci, je vais créer un nouveau jeu de données propre à QlikView dans la requête. comme ça : 

/* AXES INDUCTEURS */
AXE_INDUCTEURS:
LOAD * INLINE [
No, AXE_LIB, AXE_ID
1, ANNEE-2, 1
2, ANNEE-1, 2
3, JANVIER, 3
4, FÉVRIER, 4
5, MARS, 5
6, AVRIL, 6
7, MAI, 7
8, JUIN, 8
9, JUILLET, 9
10, AOÛT, 10
11, SEPTEMBRE, 11
12, OCTOBRE, 12
13, NOVEMBRE, 13
14, DÉCEMBRE, 14
15, SEM-3, 15
16, SEM-2, 16
17, SEM-1, 17
18, SEM-0, 18
];

Bon en utilisant ces données, je me devais de modifier toutes mes formules, ce que j'ai fait. Mais là, 8 formules (8 inducteurs), mais pour chaque expression, je dois répertorier 18 fois ma formule. Hors, elle fait 30 lignes déjà (en aérant le code pour plus de lisibilité). Je ne vais pas mettre des formules de 500 lignes pour chaque expressions. Donc j'ai cherché un moyen pour factoriser et généralisé le code pour tous les mois. Et c'est là ...... que j'ai besoin de votre aide. Je vous explique. Je teste comme ça dans ma formule (pour des questions de confidentialité, je ne peux pas vous mettre la formule telle quelle, j'ai réduit et mis indicateur pour indiquer des champs) : 

=IF(AXE_INDUCTEURS.No = 1 // ANNEE-2
, SUM({$<REFERENTIEL.ANALYSE_ANNEE={$(=Only(REFERENTIEL.ANALYSE_ANNEE-2))}>} IF(ISNULL(indicateur), 0, indicateur))

, IF(AXE_INDUCTEURS.No = 2 // ANNEE-1
, SUM({$<REFERENTIEL.ANALYSE_ANNEE={$(=Only(REFERENTIEL.ANALYSE_ANNEE-1))}>} IF(ISNULL(indicateur), 0, indicateur))

, IF(AXE_INDUCTEURS.No >= 3 AND AXE_INDUCTEURS.No <= 14 // MOIS 01 - 12
, SUM({$<REFERENTIEL.ANALYSE_MOIS={"$(AXE_INDUCTEURS.No)-2"}>} IF(ISNULL(indicateur), 0, indicateur))

, ......)))  // SEMAINES S - S-3

Donc vous l'aurez compris mon problème vient du 3ème IF. En essayant de généraliser, il me comme toute l'année pour chaque mois, ou bien 0. J'ai essayé plusieurs chose : 

SUM({$<REFERENTIEL.ANALYSE_MOIS={"$(AXE_INDUCTEURS.No)-2"}>} IF(ISNULL(indicateur), 0, indicateur))

SUM({$<REFERENTIEL.ANALYSE_MOIS={"$(AXE_INDUCTEURS.No-2)"}>} IF(ISNULL(indicateur), 0, indicateur))

SUM({$<REFERENTIEL.ANALYSE_MOIS={"$(#AXE_INDUCTEURS.No)-2"}>} IF(ISNULL(indicateur), 0, indicateur))

SUM({$<REFERENTIEL.ANALYSE_MOIS={"$(=MAX(AXE_INDUCTEURS.No)-2)"}>} IF(ISNULL(indicateur), 0, indicateur))

SUM({$<REFERENTIEL.ANALYSE_MOIS={"=AXE_INDUCTEURS.No-2"}>} IF(ISNULL(indicateur), 0, indicateur))

A chaque incorrecte comme formule. J'ai besoin d'aide car je risque fort de devenir chauve à force de m'arracher mes cheveux.

La seule pour l'instant qui marche est la suivante (mais m'oblige à copier douze fois la formule :

SUM({$<REFERENTIEL.ANALYSE_MOIS={"1"}>} IF(ISNULL(indicateur), 0, indicateur)) // 1 pour JANVIER, 2 pour FEVRIER, ...

Merci d'avance énormément pour votre aide. N'hésitez pas si besoin de plus d'information (tant que les données sont non confidentielles.

Bonne fin de journée,

Anthony.

1 Reply
digitanthony
Contributor II
Contributor II
Author

Bonjour à tous, 

Personne n'a d'idée ?