Accueil – Le CFO masqué › Forums › Power BI › aide ajout de colonne
- This topic has 7 réponses, 2 participants, and was last updated il y a 3 years et 8 months by Kim Leblanc.
-
AuteurArticles
-
24 mars 2021 à 15 h 06 min #88702jp.priveParticipant
Bonjour,
J’ai joint une version simplifié de ma table pour illustrer le problème
J’ai une source de données qui n’est malheureusement pas idéale. Elle collecte des informations sur une unité familiale, mais pour une raison que je ne peux expliquer ou corriger, la source ne réplique pas toujours l’information pour chaque membre de la famille comme ça devrait être le cas.
Par contre, le membre principal contient toujours les données valides et a toujours le Family ID=1
Mon but premier, c’est de valider pour chaque ligne qui a fait le travail en fonction de la présence de date dans différentes colonnes. S’il n’y en a pas alors ce n’est pas moi. Comme les dates ne sont pas toujours collectées adéquatement, je me ramasse avec plusieurs cas ou l’enfant est codé “autre” par ma formule alors que j’ai fait le dossier pour la famille.
J’aimerais donc savoir comment je peux ajouter une étape à mon If, pour vérifier si il existe une autre ligne avec le même “filename” et le “family ID”=1, et si oui simplement copier la valeur de la colonne “who did”
Si ça ne peut pas se faire dans la même colonne ce n’est pas grave, je pourrai les associer.Voici donc la formule de colonne que j’utilise actuellement ajouter une colonne à une table de source sécurisé
Who did = IF(
OR( AND(
NOT(ISBLANK(‘Datamart TaxprepT1V1′[date 1])),
NOT(ISBLANK(‘Datamart TaxprepT1V1′[date 4]))),
OR(AND(
NOT(ISBLANK(‘Datamart TaxprepT1V1′[date 2])),
NOT(ISBLANK(‘Datamart TaxprepT1V1′[date 3]))),
AND(
NOT(ISBLANK(‘Datamart TaxprepT1V1′[date 3])),
NOT(ISBLANK(‘Datamart TaxprepT1V1′[date 1]))))),
“Me”,”Else”)Attachments:
You must be logged in to view attached files.25 mars 2021 à 9 h 37 min #88709Kim LeblancParticipantBonjour,
Personnellement, c’est le genre de transformation que je ferais dans Power Query en créant une référence à ma requête principale et en filtrant sur les ID = 1, puis fusionner cette requête avec la première en utilisant le filename comme élément commun, si la valeur est null c’est qu’il n’y a pas de filename avec un ID =1.
Voir le fichier ci-joint.
Kim
Attachments:
You must be logged in to view attached files.25 mars 2021 à 9 h 45 min #88716jp.priveParticipantBonjour Kim,
effectivement tu n’as pas tord, mais je n’ai pas la main mise sur la source de donnée. Alors je ne peux rien faire à partir de la section “transformer les données” et donc pas de power query pour moi. Je ne peux même pas rafraichir moi-même les données de la table.C’est pour cela que je dois passer par l’ajout de colonne. Ce n’est pas optimal, mais je n’aurai pas d’aide des TI pour améliorer la situation avant plusieurs mois.
En excel, j’ai réussi quelque chose en ayant ma table trié par nom de fichier et ID de famille. Comme ça la recherche V récupère directement en fonction de la première correspondance.
25 mars 2021 à 10 h 19 min #88723Kim LeblancParticipantDans ce cas, la mesure en dax, ressemblerait à ceci:
var FName = (‘Tableau1 3′[Filename])
var Minid = CALCULATE(min([Id]);FILTER(all(‘Tableau1 3’);[Filename]=FName))
var who = CALCULATE(min([WhoDid]);FILTER((ALL(‘Tableau1 3’));[Filename]=FName && [Id] = Minid))
Return
IF(Minid = 1;who;”other”)Voir le fichier joint. J’ai ajouté la mesure dans Power Pivot.
Kim
Attachments:
You must be logged in to view attached files.26 mars 2021 à 10 h 18 min #88751jp.priveParticipantMerci, j’ai adapté la formule pour mon Bi réel et le comportement semble bon
31 mars 2021 à 13 h 29 min #88948jp.priveParticipantBonjour,
j’ai essayé de convertir votre formule pour utiliser une colonne qui contenait des dates au lieu d’un texte.
Malgré différent test, je n’arrive pas à changer le comportement de la VAR who dans le cas d’une date31 mars 2021 à 14 h 19 min #88954jp.priveParticipantBon, j’ai pris le temps de creuser le problème et le message d’erreur que j’avais.
voici comment j’ai eu ma solution. Si jamais vous avez une meilleure proposition, je suis preneur, mais ça semble déjà bien fonctionner
var who = CALCULATE(CONVERT(min([Date In]),STRING),FILTER((ALL(‘Datamart T1V1’)),[Nom du fichier]=FName && [ID du groupe familiale] = Minid))
1 avril 2021 à 8 h 37 min #88988Kim LeblancParticipantJe crois que vous auriez pu utiliser aussi la fonction FORMAT au lieu du CONVERT ça vous laisserait choisir le format désiré. ex: FORMAT(min[Date In],”YYYYMMDD”
Kim
-
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.