0
votes

Colonne Power Bi Datte Colonne personnalisée pour filtrer

J'ai une table de calendrier en puissance bi liée à deux autres tables, une avec occupation par date et une autre avec une occupation prédite par date. La deuxième table va bien dans le futur.

Je souhaite que le rapport ait une gamme de 15 jours, 7 jours avant aujourd'hui et 7 jours dans le futur. J'ai essayé de créer une colonne personnalisée en utilisant:

reportrange = si (Datesbetween (calendrier [SQL_Date], (aujourd'hui () - 7), (aujourd'hui () + 7)), 1,0)

Je reçois une réponse "Aucune erreur de syntaxe n'a été détectée". Aucune erreur de syntaxe

Mais quand je clique sur "OK", je reçois une barre / avertissement jaune: "Expression.Error: Le nom" si "n'était pas reconnu. Assurez-vous que c'est orthographié correctement."

Quelqu'un peut-il aider avec cela? Merci!


0 commentaires

4 Réponses :


0
votes

Vous essayez d'utiliser une colonne de langue PowerQuery M via l'éditeur de colonne personnalisé. Cela ne fonctionnera pas dans M. Vous devrez créer une mesure dans DAX pour effectuer le calcul.

Dans votre DAX, vous pouvez utiliser DATESBETWEEN, Selon cet exemple : P>

=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESBETWEEN(DateTime[DateKey],  
    DATE(2007,6,1),  
    DATE(2007,8,31)  
  ))  


3 commentaires

Je l'ai mis dans une nouvelle mesure: Reportrange = Datesbetween (calendrier [SQL_Date], (aujourd'hui () - 7), (aujourd'hui () + 7))


Aucune erreur mais ne peut pas l'utiliser pour limiter la plage de date de rapport.


Vous devrez l'utiliser dans le cadre d'une mesure, je n'ai pas la syntaxe exacte à la main, mais quelque chose comme: Total de la semaine dernière = calculer (somme (mytable.cost]), toutes (dates), Datesbetween (aujourd'hui, aujourd'hui - 7))



0
votes

Pour les filtres "Rolling" Je l'ai trouvé très utile de construire des colonnes offset génériques pour la journée / semaine / mois / trimestre dans votre table de date. Avec cela, vous pouvez filtrer facilement un par exemple Visual E.G. Avec "Semaine offset"> 1 et "Semaine offset" <-1 pour faire rouler 2 semaines Vues ... Détails HOWTO peut être trouver ici: https://radacad.com/offset-columns-for-the-Tatable-flexibilité -In-Relative-Date-filtrage-for-Power-BI


0 commentaires

1
votes

Vous devez écrire des colonnes personnalisées dans l'éditeur de requête dans M code M , pas Dax.

Quelque chose comme ça peut fonctionner: xxx

Vous préférez utiliser Filtrage de la date relative à la place.


2 commentaires

Oui, c'était l'approche qui a fonctionné ... du moins pour moi! Si Number.from (DateTime.Fixedlocalnow () - [SQL_Date])> = -7 et numéro.from (DateTime.fixedlocalnow () - [SQL_Date]) <= 7 puis 1 autre 0


Je ne l'ai pas écrit comme si j'avais voulu. J'ai mis à jour la réponse mais votre approche semble raisonnable aussi.



0
votes

Si vous voulez simplement filtrer les données entrant dans le rapport, vous pouvez utiliser un filtre.

Vous pouvez le faire dans l'éditeur avancé, échantillon ci-dessous. P>

let
    Source = BillingData,
    #"Removed Other Columns" = Table.SelectColumns(Source,{"Date"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Removed Other Columns",{{"Date", type date}}),
    #"Removed Duplicates" = Table.Distinct(#"Changed Type"),
    #"Filtered Rows" = Table.SelectRows(#"Removed Duplicates", each Date.IsInPreviousNDays(Date.AddDays(DateTime.LocalNow(), 7), 14))
in
    #"Filtered Rows"


0 commentaires