Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
bonjour,
j'ai besoin d'un petit coup de main sur une fonction assez évoluée.
voici mes données :
Code événement | Nom étape | Nom apprenant | Evénement clôturé |
131723171 | 03 - Dossier complet | AMIAUD | NON |
131735017 | 04 - Convoc entretien Pilote | AMIAUD | NON |
131760849 | 05 - Admissible | AMIAUD | NON |
131778721 | 10 - Mise en relation | AMIAUD | NON |
131729538 | 01 - Préinscription portail | BETHYS | NON |
131742171 | 03 - Dossier complet | BETHYS | NON |
131744161 | 04 - Convoc entretien Pilote | BETHYS | NON |
131760878 | 05 - Admissible | BETHYS | NON |
131778732 | 10 - Mise en relation | BETHYS | NON |
131729564 | 01 - Préinscription portail | BLOTTIERE | NON |
131739374 | 03 - Dossier complet | BLOTTIERE | NON |
131744163 | 04 - Convoc entretien Pilote | BLOTTIERE | NON |
131760892 | 05 - Admissible | BLOTTIERE | NON |
131765138 | 01 - Préinscription portail | CABANETOS | NON |
131729561 | 01 - Préinscription portail | DALIBERT | NON |
131729180 | 01 - Préinscription portail | DALKOLMO | NON |
131738122 | 03 - Dossier complet | DALKOLMO | NON |
131747900 | 04 - Convoc entretien Pilote | DALKOLMO | NON |
131752921 | 05 - Admissible | DALKOLMO | NON |
131697327 | 01 - Préinscription portail | DREAN | NON |
131697364 | 03 - Dossier complet | DREAN | NON |
131735019 | 04 - Convoc entretien Pilote | DREAN | NON |
et je voudrais compter le nombre d'événement pour lesquels la colonne "Evénement clôturé" est égal à NON et pour lesquels le dernier "Nom étape" = "01 - Préinscription portail"
Donc je pense qu'il faut faire une agrégation sur le "Nom apprenant" pour regrouper les évènements par apprenant et ensuite faire un comptage si le dernier événement d'un apprenant est égal à "01 - Préinscription portail" donc un set analysis
count(aggr({$<[Nom étape]={'01 - Préinscription portail'},[Evénement clôturé]={'NON'}>},[Nom apprenant]) [Code événement])
mais ce que j'ai fait ne fonctionne pas bien sûr alors comment écrire cette ligne ?
dans mon exemple ci-dessus le résultat serait 3
merci
ok, mais il me semblait que tu avais dit tout au début que tu voulais compter les événements :
je voudrais compter le nombre d'événement pour lesquels la colonne "Evénement clôturé" est égal à NON et pour lesquels le dernier "Nom étape" = "01 - Préinscription portail"
L'apprenant "Nom apprenant" ne peut-il pas s'inscrire à plusieurs évènements?
oui je voulais compter le nbre d'évenements à partir du moment où il n'y en avait qu'un qui serait vu par la formule mais apparemment avec cette formule il en voit 2 pour Vickers alors qu'il ne faudrait qu'il n'en voit qu'un
ci-joint le qvw le résultat est 4 alors qu'il ne devrait en voir que 3
Oui, mais ce sont des codes événement différent?
Je pense que j'ai une mauvaise compréhension des données.
Je pensais que Code événement définissait un événement pour lequel il y avait plusieurs étapes pour s'inscrire et que cet événement pouvait être clôturé ou pas.
mais ce n'est visiblement pas ça.
non effectivement les données sont structurées de la façon suivante, un Nom apprenant peut avoir plusieurs étapes et pour chaque étape associée à un apprenant il y a un code évènement différent.
donc pour avoir mon résultat c'est bien cela ?
Count({$<[Nom apprenant] = {"=MaxString([Nom étape]) = '01 - Préinscription portail'"}, [Evénement clôturé]={'NON'}>} DISTINCT [Nom apprenant]) +
Count({$<[Nom apprenant] = {"=MaxString([Nom étape]) = '02 - Dossier incomplet'"}, [Evénement clôturé]={'NON'}>} DISTINCT [Nom apprenant])
mais tout cela ne m'explique pas pourquoi avec Vickers et avec la formule
Count({$<[Nom apprenant] = {"=MaxString([Nom étape]) = '01 - Préinscription portail'"}, [Evénement clôturé]={'NON'}>} DISTINCT [Code événement]) +
Count({$<[Nom apprenant] = {"=MaxString([Nom étape]) = '02 - Dossier incomplet'"}, [Evénement clôturé]={'NON'}>} DISTINCT [Code événement])
on compte 2 Vickers alors que normalement on ne devrait compter que le dernier événement ? car c'était mon objectif de départ
Ok,
explication de l'expression:
C'est donc se nouvel ensemble de données qui sera utilisé dans ton tableau est comme tu le vois ci-dessus Code événement et Nom étape n'ont pas été directement filtré. On a des apprenant qui sont à l'étape 1 et d'autres qui sont à l'étape 2 (qui ont donc également une ligne de donnée pour l'étape 1), c'est pour cette raison qui si l'on compte les code événement on aura 2 pour les apprenant qui sont à l'étape 2.
Il faut donc bien compter les valeurs distinctes de Nom apprenant.
Pour faire ton tableau :
bonjour,
je veux compter combien j'ai d'étapes égales à '01 - Préinscription portail' ou '02 - Dossier incomplet' et avec un événement clôturé mais seulement lorsque je suis à ces dernières étapes. En effet un apprenant passe par des étapes successives et dans l'ordre et lorsque que l'on passe d'une étape à l'autre cela crée un nouvel événement.
ok mais pourquoi si je fais le test sur '02 - Dossier incomplet' ou égal à 2 dans l'exemple
Count({$<[Nom apprenant] = {"=Num(Left(MaxString([Nom étape]), 2)) = 2"}, [Evénement clôturé]={'NON'}>} DISTINCT [Code événement])
j'obtiens 2 en résultat alors que dans mes données je n'en ai qu'un ?
voir qvw joint
Relis une fois mon explication précédente.
Maintenant on va simuler sur le tableau de donnée ce que fait le set Analysis.:
Maintenant tu te retrouves avec 2 lignes, et c'est sur ces 2 lignes que ton expression va travailler.
Si ton expression est :
Encore une fois, dans le set analysis on ne filtre pas Nom étape, mais nom apprenant qui à comme étape max l'étape 2.
Il ne faut donc pas utiliser Count({$<...>} DISTINCT [Code événement]), mais Count({$<...>} DISTINCT [Nom apprenant])
bonjour,
ah ! je viens de comprendre comment ça marche.
Cela compte les noms d'apprenants pour lesquels la dernière étape est égal au texte et avec un événement non clôturé. Lorsqu'il y a plusieurs étapes pour un même apprenant le DISTINCT n'en compte qu'un.
En tout cas un grand merci pour ta patience.
donc la formule magique est celle-ci pour obtenir le résultat attendu :
Count({<[Nom apprenant] = {"=MaxString([Nom étape]) = '01 - Préinscription portail'"}, [Evénement clôturé]={'NON'}>} DISTINCT [Nom apprenant]) +
Count({<[Nom apprenant] = {"=MaxString([Nom étape]) = '02 - Dossier incomplet'"}, [Evénement clôturé]={'NON'}>} DISTINCT [Nom apprenant])
oui,
Ou cette version qui est plus courte :
Count({$<[Nom apprenant] = {"=Num(Left(MaxString([Nom étape]), 2)) <= 2"}, [Evénement clôturé]={'NON'}>} DISTINCT [Nom apprenant])