oguruma
XLDnaute Occasionnel
Bonjour
pour faire suite à ce post https://excel-downloads.com/threads...un-element-dans-une-sous-liste-v2-0.20083542/
il est possible de faire une évaluation par tranche selon un barème.
Exemple de barème :
ListRank =
{
{(x)=>x=0, "Robuste"},
{(x)=> x<=5, "Fiable"},
{(x)=> x<=10, "Fragile"},
{(x)=> x<=15, "Peu fiable"},
{(x)=> x<=20, "Non fiable"},
{(x)=> x>20, "Inqualifiable"}
},
On imagine que l'on doive qualifier des applications dans une certification de données selon le nombre d'incidents enregistrés sur une période.
La liste présentée ci-dessus parle d'elle-même.
Cette liste est facilement transposable dans un barème tarifaire avec l'application d'une remise selon un volume d'achats et de renvoyer un pourcentage ou un coefficient qui sera appliqué sur un montant.
Ces données peuvent être issues d'un fichier texte, le but étant de l'importer dans la foulée de l'évaluer pour appliquer ce barème. Certes on peut faire cela sous Excel de multiples manières mais l'intérêt de cette solution c'est qu'elle présente ZERO formule Excel. Donc par exemple un gain de performances Excel si on importe un très gros fichier. Tout se passe dans PowerQuery avec en résultat un fichier Excel plus light dépourvu de formules.
La fonction fnEvaluateByRankInterval
Exemple de requête :
L'évaluation s'effectue ici :
pour faire suite à ce post https://excel-downloads.com/threads...un-element-dans-une-sous-liste-v2-0.20083542/
il est possible de faire une évaluation par tranche selon un barème.
Exemple de barème :
ListRank =
{
{(x)=>x=0, "Robuste"},
{(x)=> x<=5, "Fiable"},
{(x)=> x<=10, "Fragile"},
{(x)=> x<=15, "Peu fiable"},
{(x)=> x<=20, "Non fiable"},
{(x)=> x>20, "Inqualifiable"}
},
On imagine que l'on doive qualifier des applications dans une certification de données selon le nombre d'incidents enregistrés sur une période.
La liste présentée ci-dessus parle d'elle-même.
Cette liste est facilement transposable dans un barème tarifaire avec l'application d'une remise selon un volume d'achats et de renvoyer un pourcentage ou un coefficient qui sera appliqué sur un montant.
Ces données peuvent être issues d'un fichier texte, le but étant de l'importer dans la foulée de l'évaluer pour appliquer ce barème. Certes on peut faire cela sous Excel de multiples manières mais l'intérêt de cette solution c'est qu'elle présente ZERO formule Excel. Donc par exemple un gain de performances Excel si on importe un très gros fichier. Tout se passe dans PowerQuery avec en résultat un fichier Excel plus light dépourvu de formules.
La fonction fnEvaluateByRankInterval
PowerQuery:
let fnEvaluateByRankInterval =
(
pValue as any,
pList as list
) as any =>
let
Result = List.First(List.Select(pList, (v) => v{0}(pValue))){1}
in
Result
in
fnEvaluateByRankInterval
Exemple de requête :
PowerQuery:
let
Source = Excel.CurrentWorkbook(){[Name="TB_INCIDENTS"]}[Content],
TypeModif = Table.TransformColumnTypes(Source,{{"NBR_INCIDENTS", Int64.Type}, {"APPLI", type text}}),
ListRank =
{
{(x)=>x=0, "Robuste"},
{(x)=> x<=5, "Fiable"},
{(x)=> x<=10, "Fragile"},
{(x)=> x<=15, "Peu fiable"},
{(x)=> x<=20, "Non fiable"},
{(x)=> x>20, "Inqualifiable"}
},
EvalIncidents = Table.AddColumn(TypeModif, "EVALUATION", each fnEvaluateByRankInterval([NBR_INCIDENTS],ListRank))
in
EvalIncidents
L'évaluation s'effectue ici :
PowerQuery:
EvalIncidents = Table.AddColumn(TypeModif, "EVALUATION", each fnEvaluateByRankInterval([NBR_INCIDENTS],ListRank))
Pièces jointes
Dernière édition: