Accueil – Le CFO masqué › Forums › Power BI › Obtenir une valeur d’une colonne filtrée sur autres colonnes
- Ce sujet contient 3 réponses, 2 participants et a été mis à jour pour la dernière fois par Xavier Allart, le il y a 2 années.
-
AuteurMessages
-
28 décembre 2022 à 15 h 26 min #124298Capucine BenierParticipant
Bonjour,
Je cherche à récupérer une valeur d’une colonne, basé sur une condition d’une autre Colonne.
*Mise en contexte* :
Table Transaction : donne les transactions (entrantes = Receipt/sortantes=Issue)
– le numéro d’article (ItemId) (colonne cachée)
– la date de la transaction (DatePhysical) (colonne cachée)
– le type de la transaction (TransactionType)
– Le numéro associé au type de transaction (Number)Table Dim_Item_Info :
ItemIdTable DateTransaction :
Date*Besoin* :
Récupérer, pour un article donné,
– la date de sa dernière transaction de sortie (statusIssue<>””)
– le type de transaction associé
– le numéro du type de transaction associé*Efforts déployés 🙂 * :
J’ai créé les mesures suivantes :LastIssue_TransactionDate =
CALCULATE(
MAX(‘Transaction'[DatePhysical].[Date]),
FILTER(‘Transaction’,’Transaction'[StatusIssue] <> “”))
–> semble fonctionnerLastIssue_TransactionType =
CALCULATE(
LASTNONBLANK(
‘Transaction'[TransactionType],
[LastIssue_TransactionDate]),
FILTER(‘Transaction’,’Transaction'[StatusIssue]<>””))
–> ne prend aucunement en compte le filtre ni la dernière date de transaction relative à l’articleLastIssue_Number =
CALCULATE(
LASTNONBLANK(
‘Transaction'[Number],
[LastIssue_TransactionDate]),
FILTER(
‘Transaction’,
‘Transaction'[StatusIssue]<>””))
–> idemLastIssue_Number2 =
LOOKUPVALUE(
‘Transaction'[Number],
‘Transaction'[DatePhysical],
[LastIssue_TransactionDate],
“Nope”)
–> je comprends pas vraiment le comportement obtenu ici..*Documents joints*
Je ne peux malheureusement pas partager le fichier qui est confidentiel,
Vous trouverez cependant deux imprime écran :
CAPT1 : transactions pour un article
– en bleu les filtres que je souhaiterais appliquer
– en rouge : les résultats que j’obtiens suivant si j’utilise first/lastnonblank
– en vert : les résultats que je souhaiterais obtenirCAPT2 : Résultat actuellement obtenu avec les mesures plus haut
Serait-il possible de m’expliquer pourquoi les mesures actuelles ne fonctionnent pas et m’indiquer la meilleure manière pour répondre à mon besoin ?
Rq : il peut y avoir plusieurs transactions pour un même article avec des types et numéros de transactions différents, cela n’est pas très important tant que j’en ai un de la liste (premier ou dernier)
Rq : L’exemple ci-contre est filtré sur un ItemId spécifique mais mon besoin s’étend à la liste de tous les articles
**Serait-il possible de m’expliquer pourquoi les mesures actuelles ne fonctionnent pas et m’indiquer la meilleure manière pour répondre à mon besoin ?**
Merci
Attachments:
You must be logged in to view attached files.29 décembre 2022 à 10 h 07 min #124318Xavier AllartParticipantBonjour
Je vous propose les mesures suivantes, si le tableau reste trié comme sur l’exemple du recent au plus ancien
LastIssue_TransactionType =
CALCULATE(
MIN(Tableau1[TransactionType]),
FILTER(Tableau1,Tableau1[statusIssue] <> “”))LastIssue_Number =
CALCULATE(
MIN(Tableau1[Number]),
FILTER(Tableau1,Tableau1[statusIssue] <> “”))Cordialement
2 janvier 2023 à 8 h 49 min #124370Capucine BenierParticipantBonjour Xavier,
Merci pour votre réponse.Cependant ceci ne répond pas à mon besoin car l’information récupérée sera le minimum, indépendamment de la date.
Dans l’exemple ci-joint,
Number : cela va rapporter l’information suivante : “M0098197”
Transaction : il se trouve que l’information est la bonne mais c’est une coincidence, car “Production Line” est alphabétiquement placé avant “Purchase”…3 janvier 2023 à 3 h 42 min #124389Xavier AllartParticipantBonjour
Voici une autre solution avec l’ajout d’une colonne index et de 3 nouvelles mesures et plus de LastIssue_Date, à tester.
LastIssue_Date =
CALCULATE(
MAX(Tableau1_2[DatePhysical]),
FILTER(Tableau1_2,Tableau1_2[statusIssue] <> “”))Index_LastIssue =
CALCULATE(
MIN(Tableau1_2[Index]),
FILTER(Tableau1_2,Tableau1_2[statusIssue] <> “”))Index_TransactionType =
VAR index = [Index_LastIssue]
RETURN
CALCULATE(
MIN(Tableau1_2[TransactionType]),
FILTER(Tableau1_2,Tableau1_2[Index] = index))Index_Number =
VAR index = [Index_LastIssue]
RETURN
CALCULATE(
MIN(Tableau1_2[Number]),
FILTER(Tableau1_2,Tableau1_2[Index] = index))Bonne et heureuse année 2023
CordialementAttachments:
You must be logged in to view attached files. -
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.