Thursday 23 February 2017

Déplacement Moyenne Puissance Bi

Post navigation Calculer une moyenne mobile dans PowerPivot Il ya deux semaines, j'ai promis de parler de la façon de générer une moyenne mobile dans PowerPivot, mais la semaine dernière, j'ai été sidetracked en vous parlant d'une façon cool d'afficher des vidéos YouTube sur vos pages SharePoint en utilisant un web Partie trouvé sur CodePlex que certains de mes membres de l'équipe de travail ont trouvé. Il a été si facile à mettre en œuvre, j'ai juste eu à le partager avec vous tous. Cependant, en revenant à la question du calcul d'une moyenne mobile, la première question pourrait être ce qui est une moyenne mobile et pourquoi voudriez-vous en utiliser un. Une moyenne mobile est simplement la somme de deux ou plusieurs valeurs dépendant du temps dans lesquelles la somme est alors divisée par le nombre de valeurs utilisées. Par exemple, si je parlais des cours des actions, je voudrais peut-être utiliser quelque chose comme une moyenne mobile de 7 jours pour amortir l'effet des pointes de jours individuels ou des baisses dans le cours des actions qui ne sont pas indicatifs de la tendance générale des stocks. (Certains investisseurs à long terme utilisent des moyennes mobiles même période plus longue.) Cela ne signifie pas que si un stock plombe ou monte que je resterais assis jusqu'à ce que la moyenne mobile me dit d'agir. Tout bon investisseur stock vous dira qu'il ya beaucoup d'autres facteurs internes et externes à une entreprise qui pourrait forcer votre main pour vendre ou acheter un stock particulier. Mais le point est, et c'est la réponse à la deuxième question, une moyenne mobile atténue le caractère aléatoire afin que je puisse plus facilement voir le schéma global des nombres que je suis suivi. Ok, donc supposons que je travaille pour Contoso et je voulais savoir si les ventes sont en hausse, en baisse ou généralement plat. Si je regarde les ventes quotidiennes, les chiffres sont susceptibles de fluctuer à la hausse et à la baisse dans aucun modèle particulier qui m'empêche de repérer une tendance globale. La figure suivante montre les ventes quotidiennes de Contoso Contoso sur une période de 3 mois pendant l'été 2008. J'ai choisi de montrer les données sous forme de graphique pour aider à montrer comment les ventes fluctuent de jour en révélant des informations que je pourrais ne pas pouvoir voir aussi facilement si j'avais Créé une table des mêmes valeurs. Bien sûr, je pourrais tracer une année entière ou plus, mais pour voir des jours individuels, je devrais élargir le diagramme sensiblement. Cependant, même avec cette période plus courte, je peux voir que les ventes fluctuent assez bien. Mais je pourrais demander sont les ventes augmentant, diminuant ou restant les mêmes. Si j'ai un bon oeil, je pourrais dire que les ventes de pointe vers la fin de Juillet, puis retomber un peu que le graphique se déplace en août. Mais ce n'est pas aussi évident que le fait qu'il ya beaucoup de fluctuations quotidiennes. Alors, comment puis-je visualiser les tendances avec les ventes moyennes mobiles. Maintenant, dans le but de cette illustration, je vais créer une moyenne mobile de quatre jours, mais honnêtement, il n'y a pas un bon nombre de périodes dans une moyenne mobile. En fait, je devrais expérimenter différentes périodes de temps pour voir quelle période me permet de repérer non seulement les tendances globales, mais aussi dans ce cas où je suis affichant les ventes des magasins, aux changements saisonniers. Je sais déjà que si je affiche des données par jour, je peux utiliser la formule suivante pour calculer les ventes quotidiennes de notre canal de magasin. (Oui, je pourrais simplement utiliser SalesAmount et appliquer une trancheuse de canal pour utiliser uniquement les ventes en magasin, mais laissez-les suivre l'exemple.) Je peux ensuite utiliser cette mesure calculée pour calculer les ventes des jours précédents pour une journée en créant la mesure suivante. StoreSales1DayAgo: CALCULATE (StoreSales, DATEADD (DimDateDateKey, -1, jour)) Vous pourriez deviner que la formule pour calculer les ventes pour il ya deux jours et il ya trois jours respectivement sont: StoreSales2DayAgo: CALCULATE (StoreSales, DATEADD (DimDateDateKey, Avec ces quatre valeurs calculées pour chaque jour, je peux calculer la somme de ces valeurs et diviser par 4 pour obtenir une moyenne mobile de 4 jours en utilisant la méthode de calcul de la valeur moyenne de 4 jours. La valeur calculée suivante: FourDayAverage: (StoreSales StoreSales1DayAgo StoreSales2DayAgo StoreSales3DayAgo) 4.0 Maintenant, si je retourne à ma page graphique, je verrais que Excel met à jour la liste des champs pour inclure les nouvelles mesures calculées. Si j'ajoute ensuite le champ FourDayAverage à la boîte Valeurs en créant une deuxième série dans le graphique, j'ai maintenant à la fois les ventes quotidiennes réelles et la moyenne mobile de quatre jours affichée dans le même graphique. Le seul problème est que je voudrais également changer le format de graphique pour afficher les ventes quotidiennes (mes premières séries de données) en colonnes et ma moyenne mobile (ma deuxième série de données) comme une ligne. Lorsque je clique droit sur le graphique et sélectionnez Modifier le type de graphique, je peux sélectionner Combo comme le type de graphique comme indiqué dans la figure suivante. Dans ce cas, le graphe Clustered Column Line est exactement ce que je veux. Parce que j'ai ajouté la série de la moyenne mobile à la zone Valeurs dernière, elle devient par défaut la ligne et toutes les autres séries de données apparaissent sous forme de colonnes groupées. Puisque je n'ai qu'une seule valeur pour chaque jour, le graphique montre une colonne individuelle par jour. Si j'avais entré ma série de données dans la zone Valeurs dans le mauvais ordre, je pourrais simplement utiliser cette boîte de dialogue pour sélectionner le type de graphique pour chaque série. Lorsque je clique sur OK dans cette boîte de dialogue, mon graphique ressemble maintenant à la suivante qui montre plus clairement la plus de la tendance globale et moins de fluctuation quotidienne. Mais attendez, est-il un moyen plus facile de le faire Pourquoi oui, il est. Mais pour apprendre comment faire cela, vous devrez attendre la semaine prochaine. Post navigation Mes archives E-mail Abonnement Thèmes que je parle de plusieurs façons d'aborder ce. Voici un couple pour vous. Ces deux requièrent une table Date complète, séparée de votre table de données principale (faits). 1. Calc la moyenne sur les 84 derniers jours (12 semaines complètes) comme ceci. Où AvgSalesAmt est une moyenne simple de SalesAmount pour vos transactions. FILTER capture simplement l'ensemble des dates qui se trouvent dans cette fenêtre de 84 jours à partir de la date MAX. 2. Calculez la moyenne des 12 dernières semaines en fonction d'un numéro séquentiel semaine dans votre tableau de date. Le numéro de séquence de la semaine commencerait à 1 pour la toute première semaine de votre table de dates et se poursuivrait sur toutes les années du tableau (pas de réinitialisation à la fin de l'année). Semaine Sequence peut être accompli comme cela dans DAX. Note: il serait plus efficace d'obtenir ce pré-calculé à partir d'une dimension de date relationnelle ou en SQL. Peu importe, si vous avez besoin de le faire dans DAX, cela fonctionne. Le DimDateCalendarYearWeek est au format quotyyyy-wwquot. Cela vous donnera une séquence commençant par 1. Ensuite, vous pouvez calculer 12 semaines à la fin avec ceci: Laissez-moi savoir si cela aide. Brent Greenwood, MS, MCITP, CBIP S'il vous plaît marquer les réponses correctes et les messages utiles brentgreenwood. blogspot Édité par Brent Greenwood Éditeur Jeudi 16 mai 2013 14h18 Proposé comme réponse par Elvis Long Microsoft contingent personnel, Modérateur vendredi 17 mai 2013 7:28 AM Marqué comme réponse par Elvis Long Personnel de contingent de Microsoft, Modérateur Lundi, mai 27, 2013 2:58 AM Le jeudi 16 mai 2013 14:18 Plusieurs façons d'aborder ceci. Voici un couple pour vous. Ces deux requièrent une table Date complète, séparée de votre table de données principale (faits). 1. Calc la moyenne sur les 84 derniers jours (12 semaines complètes) comme ceci. Où AvgSalesAmt est une moyenne simple de SalesAmount pour vos transactions. FILTER capture simplement l'ensemble des dates qui se trouvent dans cette fenêtre de 84 jours à partir de la date MAX. 2. Calculez la moyenne des 12 dernières semaines en fonction d'un numéro séquentiel semaine dans votre tableau de date. Le numéro de séquence de la semaine commencerait à 1 pour la toute première semaine de votre table de dates et se poursuivrait sur toutes les années du tableau (pas de réinitialisation à la fin de l'année). Semaine Sequence peut être accompli comme cela dans DAX. Note: il serait plus efficace d'obtenir ce pré-calculé à partir d'une dimension de date relationnelle ou en SQL. Peu importe, si vous avez besoin de le faire dans DAX, cela fonctionne. Le DimDateCalendarYearWeek est au format quotyyyy-wwquot. Cela vous donnera une séquence commençant par 1. Ensuite, vous pouvez calculer 12 semaines à la fin avec ceci: Laissez-moi savoir si cela aide. Brent Greenwood, MS, MCITP, CBIP S'il vous plaît marquer les réponses correctes et les messages utiles brentgreenwood. blogspot Édité par Brent Greenwood Éditeur Jeudi 16 mai 2013 14h18 Proposé comme réponse par Elvis Long Microsoft contingent personnel, Modérateur vendredi 17 mai 2013 7:28 AM Marqué comme réponse par Elvis Long Personnel de contingent de Microsoft, Modérateur lundi, mai 27, 2013 2:58 AM Jeudi, 16 mai 2013 14:18 PMRolling 12 Mois Moyenne en DAX Calculer la moyenne mobile de 12 mois en DAX regarde Comme une tâche simple, mais il cache une certaine complexité. Cet article explique comment écrire la meilleure formule évitant les pièges courants en utilisant les fonctions d'intelligence temporelle. Nous commençons par le modèle de données AdventureWorks habituel, avec les produits, les ventes et la table Calendrier. Le calendrier a été marqué comme une table de calendrier (il est nécessaire de travailler avec n'importe quelle fonction de renseignement de temps) et nous avons construit une hiérarchie simple année-mois-date. Avec cette mise en place, il est très facile de créer un premier tableau croisé dynamique montrant les ventes au fil du temps: Lors de l'analyse des tendances, si les ventes sont sujettes à la saisonnalité ou, plus généralement, si vous souhaitez supprimer l'effet des pics et des baisses de ventes, La technique courante est celle de calculer la valeur sur une période donnée, habituellement 12 mois, et de la moyenne. La moyenne mobile sur 12 mois fournit un indicateur régulier de la tendance et il est très utile dans les graphiques. Compte tenu d'une date, nous pouvons calculer la moyenne mobile de 12 mois avec cette formule, qui a encore quelques problèmes que nous allons résoudre plus tard: Le comportement de la formule est simple: il calcule la valeur de Ventes après avoir créé un filtre sur le calendrier qui Indique exactement une année complète de données. Le noyau de la formule est le DATESBETWEEN, qui retourne un ensemble inclusif de dates entre les deux frontières. Le plus bas est: Le lire du plus profond: si nous montrons des données pour un mois, par exemple juillet 2007, nous prenons la dernière date visible en utilisant LASTDATE, qui retourne le dernier jour en juillet 2007. Puis nous utilisons NEXTDAY pour prendre le 1er D'août 2007 et nous utilisons finalement SAMEPERIODLASTYEAR pour le décaler d'un an, le 1er août 2006. La limite supérieure est simplement LASTDATE, c'est-à-dire fin juillet 2007. Si nous utilisons cette formule dans un tableau croisé dynamique, le résultat semble très bien, mais nous Un problème pour la dernière date: En fait, comme vous pouvez le voir sur la figure, la valeur est correctement calculée jusqu'en 2008. Ensuite, il n'y a pas de valeur en 2009 (ce qui est correct, nous n'avons pas de ventes en 2009), mais il ya Une valeur surprenante sur Décembre 2010, où notre formule montre le grand total au lieu d'une valeur vierge, comme on s'y attend. En fait, en décembre, LASTDATE retourne le dernier jour de l'année et NEXTDAY devrait revenir le 1er Janvier 2011. Mais NEXTDAY est une fonction d'intelligence de temps et il est prévu de retourner des ensembles de dates existantes. Ce fait n'est pas très évident et il vaut quelques mots plus. Les fonctions d'intelligence temporelle n'effectuent pas de calculs sur les dates. Si vous souhaitez prendre le jour après une date donnée, vous pouvez simplement ajouter 1 à n'importe quelle colonne de date, et le résultat sera le jour suivant. Au lieu de cela, les fonctions de renseignement temporel changent de date et de retour dans le temps. Ainsi, NEXTDAY prend son entrée (dans notre cas une table à une rangée avec le 31 décembre 2010) et le décale un jour plus tard. Le problème est que le résultat devrait être le 1er janvier 2011 mais, comme la table Calendrier ne contient pas cette date, le résultat est BLANK. Ainsi, notre expression calcule les ventes avec une limite inférieure vierge, qui signifie le début du temps, ce qui donne comme résultat le grand total des ventes. Pour corriger la formule, il suffit de changer l'ordre d'évaluation de la limite inférieure: Comme vous pouvez le voir, maintenant NEXTDAY est appelé après le décalage d'un an de retour. De cette façon, nous prenons 31 décembre 2010, déplacer au 31 Décembre 2009 et prendre le lendemain, qui est le 1er Janvier 2010: une date existante dans le tableau calendrier. Le résultat est maintenant attendu: à ce stade, il suffit de diviser ce nombre par 12 pour obtenir la moyenne mobile. Mais, comme vous pouvez facilement l'imaginer, nous ne pouvons pas toujours le diviser par 12. En fait, au début de la période, il n'y a pas 12 mois à agréger, mais un nombre inférieur. Nous devons calculer le nombre de mois pour lesquels il ya des ventes. Cela peut être réalisé en utilisant le filtrage croisé de la table de calendrier avec la table des ventes après que nous avons appliqué le nouveau contexte de 12 mois. Nous définissons une nouvelle mesure qui calcule le nombre de mois existants au cours de la période de 12 mois: Vous pouvez voir dans la figure suivante que la mesure Months12M calcule une valeur correcte: Il vaut la peine de noter que la formule ne fonctionne pas si vous choisissez une période Plus de 12 mois, car le nom CalendarMonthName n'a que 12 valeurs. Si vous avez besoin de périodes plus longues, vous aurez besoin d'utiliser une colonne YYYYMM pour être en mesure de compter plus de 12. La partie intéressante de cette formule qui utilise le filtrage croisé est le fait qu'il calcule le nombre de mois disponibles, même lorsque vous filtre en utilisant d'autres les attributs. Si, par exemple, vous sélectionnez la couleur bleue à l'aide d'une trancheuse, les ventes commencent en juillet 2007 (pas en 2005, comme c'est le cas pour de nombreuses autres couleurs). En utilisant le filtre croisé sur les ventes, la formule calcule correctement qu'en juillet 2007, il ya un seul mois de ventes disponibles pour Blue: à ce stade, la moyenne mobile est juste un DIVIDE away: quand nous l'utilisons dans une table pivotante, nous avons encore Ont un petit problème: en fait, la valeur est calculée également pour les mois pour lesquels il n'y a pas de ventes (c'est-à-dire les mois à venir): Cela peut être résolu à l'aide d'une instruction IF pour empêcher la formule de montrer les valeurs lorsqu'il n'y a pas de ventes. Je n'ai rien contre la FI, mais pour les adeptes de la performance parmi vous, il vaut toujours la peine de se rappeler que la FI pourrait être un tueur de performance, car elle pourrait forcer le moteur DAX formule à kick in. , En règle générale, la meilleure façon de supprimer la valeur lorsqu'il n'y a pas de vente est de s'appuyer sur des formules de moteur de stockage pur comme celui-ci: Comparer un graphique en utilisant le Avg12M avec un autre qui montre les ventes, vous pouvez facilement apprécier comment la moyenne mobile Décrit les tendances d'une manière beaucoup plus propre: Me tenir au courant des articles à venir (bulletin). Décochez pour télécharger librement le fichier.


No comments:

Post a Comment