Je suis très nouveau à powerpivot et fonctions de DAX et je dois calculer une moyenne mobile sans employer n'importe quelle date / heure DAX fonctionne comme je n'ai aucune date, je n'ai qu'une valeur représentant un des jours. Tout ce que je peux trouver est roulant des instructions moyennes en utilisant les fonctions de date spécifiques et ne peut pas comprendre comment modifier pour mes besoins. J'ai une colonne qui a des valeurs 0,1,2,3. Représentant un nombre de jours. J'ai une colonne avec les valeurs de production correspondantes pour chacun de ces jours. J'ai besoin de connaître la moyenne de 7 jours pour chacun des jours. Évidemment, les 7 premiers jours ne sera pas une moyenne de 7 jours - car il ne sera pas sept jours de données de production. Jusqu'à sept premiers jours, je veux juste la moyenne de 1 jour pour le jour 1, la moyenne de 2 jours pour le jour 2, la moyenne de 3 jours pour le jour 3, etc. Toutes les suggestions seraient extrêmement utiles. Voulez-vous que la moyenne de la production quotidienne totale pour chacun des sept derniers jours, ou la quantité moyenne de production dans votre table source pour les 7 derniers jours, c'est-à-dire. La moyenne des lignes individuelles de la table ou la moyenne des totaux quotidiens d'un exemple de classeur avec une table Excel représentative des données réelles de la table source (censuré au besoin) serait utile Je ne suis pas sûr de comprendre la question. J'ai essayé d'attacher mon fichier - mais il est trop grand. J'ai donc joint un exemple de fichier. Le Tableau I que j'ai inclus ici est un tableau croisé dynamique à partir de powerpivot et chacune des colonnes ont été créées à l'aide d'une mesure calculée. Ce que je voudrais, c'est une autre mesure calculée qui prend le taux de pétrole moyen sans zéro et me donne la moyenne de sept jours dans la colonne H. Ce sont les résultats que je voudrais. Ainsi, le jour 0 sera juste 98 jour 1 - (22298) / 2 jour 2 - (2792298) / 3 jour 3 - (24527922298) / 4 jour 4 - (24624627922298) / 5 jour 5 - (26324624527922298) / 6 jour 6 - (29426324624527922298) / 7 jours 7 - (312297263246245279222) / 7 jours 8 - (294312297263246245279) / 7 jours 9 - (246294312297263246245) / 7 etc. Est-ce que cela fait sens ok alors vous voulez la moyenne des totaux. Pouvez-vous réduire le fichier à un plus petit échantillon de données et afficher que pour que nous puissions voir la structure de données réelles et les mesures actuelles au cas où vous ne pouvez pas fournir un fichier, la formule devrait être quelque chose comme ceci si (countrows (values (Table1Days ) 1, CALCULER (AVERAGEX (VALEURS (Table1Days), Table1Sum de Pas de Zéro Taux moyen d'huile), Table1Days lt VALEURS (Table1Days) ampamp Table1Days gt VALEURS (Table1Days) -7). Okay - Les nozeros table powerpivot apparemment isnt lié à ma table de données source - que je n'ai pas réalisé jusqu'à ce moment, lorsque j'ai mis à jour les données source et table powerpivot n'a pas mis à jour. Mais - j'ai réduit le sourcedata pour inclure seulement 2013 dates et qui semblait le rendre assez petit pour attacher. Ainsi, la table No Zeros est simplement filtrée pour n'inclure que 2013, de sorte qu'elle correspond aux données source même si elles ne sont pas réellement liées. Je reviendrai sur cette question plus tard - je ne suis pas certain qu'il y ait un moyen de le rattacher après le fait -, mais cela n'est pas pertinent. Mesure 1 est où j'ai essayé de créer la moyenne de 7 jours. Merci grappes si vous pouvez comprendre cela je sais que c'est une sorte de gâchis. Formule semble super - une question. Puis-je faire de la somme de zéro le taux moyen de pétrole une autre mesure calculée Ou puis-je faire ce droit dans cette formule My No Zeros Taux moyen de pétrole est le résultat d'une autre mesure calculée donc je ne sais pas où faire cette somme if (countrows (Table1Days)) 1, CALCULATEUR (AVERAGEX (VALEURS (Table1Days), Tableau1 Somme des zéros Taux moyen d'huile), Table1Days lt VALEURS (Table1Days) ampamp Table1Days gt VALEURS (Table1Days) -7). Comme une mesure distincte Il ne semble pas permettre cela. C'est ma formule et elle renvoie une erreur. J'ai essayé sans la fonction de calcul aussi bien - qui a également renvoyé une erreur. Je suppose que la fonction somme veut une colonne et pas une mesure calculée, mais je ne suis pas sûr. Toutes les idées Somme des zéros Taux moyen de pétrole: CALCULEZ (SOMME (pas de zérosNo zéro taux moyen de pétrole)) pour votre mesure la formule oughta be if (countrows (valeurs (ZerosDays)) 1, CALCULER (AVERAGEX , Pas de ZérosNo Zéros Taux moyen de pétrole), Non ZerosDays lt VALEURS (Pas de ZerosDays) ampamp No ZerosDays gt VALEURS (Pas de ZerosDays) -7) blank ()) Powered by vBulletinRef droits réservés. Modifications du forum Par Marco MamdouhDAX comprend quelques fonctions d'agrégation statistique, telles que la moyenne, la variance et l'écart-type. D'autres calculs statistiques typiques exigent que vous écriviez des expressions DAX plus longues. Excel, de ce point de vue, a une langue beaucoup plus riche. Les Patterns statistiques sont une collection de calculs statistiques courants: médiane, mode, moyenne mobile, percentile et quartile. Nous tenons à remercier Colin Banfield, Gerard Brueckl et Javier Guilln, dont les blogs ont inspiré certains des modèles suivants. Exemple de modèle de base Les formules de ce modèle sont les solutions à des calculs statistiques spécifiques. Vous pouvez utiliser les fonctions DAX standard pour calculer la moyenne (moyenne arithmétique) d'un ensemble de valeurs. MOYENNE . Renvoie la moyenne de tous les numéros dans une colonne numérique. AVERAGEA. Renvoie la moyenne de tous les nombres d'une colonne, en traitant à la fois des valeurs textuelles et non numériques (les valeurs de texte non numériques et vides sont comptées comme 0). AVERAGEX. Calculer la moyenne sur une expression évaluée sur une table. Moyenne mobile La moyenne mobile est un calcul pour analyser des points de données en créant une série de moyennes de différents sous-ensembles de l'ensemble de données complet. Vous pouvez utiliser de nombreuses techniques DAX pour implémenter ce calcul. La technique la plus simple consiste à utiliser AVERAGEX, en itérant une table de la granularité souhaitée et en calculant pour chaque itération l'expression qui génère le point de données unique à utiliser dans la moyenne. Par exemple, la formule suivante calcule la moyenne mobile des 7 derniers jours, en supposant que vous utilisez une table Date dans votre modèle de données. En utilisant AVERAGEX, vous calculez automatiquement la mesure à chaque niveau de granularité. Lorsque vous utilisez une mesure qui peut être agrégée (comme SUM), une autre approche basée sur CALCULATE peut être plus rapide. Vous pouvez trouver cette approche alternative dans le modèle complet de moyenne mobile. Vous pouvez utiliser les fonctions DAX standard pour calculer la variance d'un ensemble de valeurs. VAR. S. Retourne la variance des valeurs dans une colonne représentant une population d'échantillon. VAR. P. Renvoie la variance des valeurs dans une colonne représentant la population entière. VARX. S. Retourne la variance d'une expression évaluée sur une table représentant une population d'échantillon. VARX. P. Retourne la variance d'une expression évaluée sur une table représentant la population entière. Écart type Vous pouvez utiliser les fonctions DAX standard pour calculer l'écart-type d'un ensemble de valeurs. STDEV. S. Renvoie l'écart-type des valeurs dans une colonne représentant une population d'échantillon. STDEV. P. Renvoie l'écart-type des valeurs dans une colonne représentant l'ensemble de la population. STDEV. S. Renvoie l'écart-type d'une expression évaluée sur une table représentant une population d'échantillon. STDEV. P. Retourne l'écart-type d'une expression évaluée sur une table représentant l'ensemble de la population. La médiane est la valeur numérique séparant la moitié supérieure d'une population de la moitié inférieure. S'il ya un nombre impair de lignes, la médiane est la valeur moyenne (trier les lignes de la valeur la plus basse à la valeur la plus élevée). S'il y a un nombre pair de lignes, c'est la moyenne des deux valeurs moyennes. La formule ignore les valeurs vierges, qui ne sont pas considérées comme faisant partie de la population. Le résultat est identique à la fonction MEDIAN dans Excel. La figure 1 montre une comparaison entre le résultat renvoyé par Excel et la formule DAX correspondante pour le calcul médian. Figure 1 Exemple de calcul médian dans Excel et DAX. Le mode est la valeur qui apparaît le plus souvent dans un ensemble de données. La formule ignore les valeurs vierges, qui ne sont pas considérées comme faisant partie de la population. Le résultat est identique aux fonctions MODE et MODE. SNGL dans Excel, qui ne renvoient que la valeur minimale lorsqu'il ya plusieurs modes dans l'ensemble des valeurs considérées. La fonction Excel MODE. MULT renverrait tous les modes, mais vous ne pouvez pas l'implémenter comme une mesure dans DAX. La figure 2 compare le résultat renvoyé par Excel avec la formule DAX correspondante pour le calcul du mode. Figure 2 Exemple de calcul de mode dans Excel et DAX. Percentile Le percentile est la valeur en dessous de laquelle un pourcentage donné de valeurs dans un groupe tombe. La formule ignore les valeurs vierges, qui ne sont pas considérées comme faisant partie de la population. Le calcul dans DAX nécessite plusieurs étapes, décrites dans la section Modèle complet, qui montre comment obtenir les mêmes résultats des fonctions Excel PERCENTILE, PERCENTILE. INC et PERCENTILE. EXC. Les quartiles sont trois points qui divisent un ensemble de valeurs en quatre groupes égaux, chaque groupe comprenant un quart des données. Vous pouvez calculer les quartiles à l'aide du modèle de percentiles, en suivant ces correspondances: Premier quartile quartile inférieur 25 e percentile Second quartile médian 50 e percentile Troisième quartile quartile supérieur 75 e percentile Modèle complet Quelques calculs statistiques ont une description plus longue du modèle complet, Vous pouvez avoir différentes implémentations en fonction des modèles de données et d'autres exigences. Moyenne mobile En règle générale, vous évaluez la moyenne mobile en faisant référence au niveau de granularité journalière. Le modèle général de la formule suivante a ces marqueurs: ltnumberofdaysgt est le nombre de jours pour la moyenne mobile. Ltdatecolumngt est la colonne de date de la table de dates si vous en avez une ou la colonne de date du tableau contenant des valeurs s'il n'y a pas de tableau de dates distinct. Ltmeasuregt est la mesure à calculer en tant que moyenne mobile. Le motif le plus simple utilise la fonction AVERAGEX dans DAX, qui considère automatiquement uniquement les jours pour lesquels il existe une valeur. Vous pouvez également utiliser le modèle suivant dans les modèles de données sans tableau de dates et avec une mesure pouvant être agrégée (telle que SOMME) sur toute la période considérée. La formule précédente considère un jour sans données correspondantes comme une mesure ayant la valeur 0. Cela peut se produire uniquement lorsque vous disposez d'une table de dates distincte, qui peut contenir des jours pour lesquels il n'y a pas de transactions correspondantes. Vous pouvez fixer le dénominateur de la moyenne en utilisant uniquement le nombre de jours pour lesquels des transactions sont effectuées en utilisant le modèle suivant, où: ltfacttablegt est la table liée au tableau de dates et contenant les valeurs calculées par la mesure. Vous pouvez utiliser les fonctions DATESBETWEEN ou DATESINPERIOD au lieu de FILTER, mais celles-ci fonctionnent uniquement dans une table de dates régulière, alors que vous pouvez appliquer le modèle décrit ci-dessus également aux tables de dates non régulières et aux modèles qui ne disposent pas d'une table de dates. Par exemple, considérons les différents résultats produits par les deux mesures suivantes. Dans la figure 3, vous pouvez voir qu'il n'y a pas de ventes le 11 septembre 2005. Cependant, cette date est incluse dans la table Date donc, il ya 7 jours (du 11 septembre au 17 septembre) qui n'ont que 6 jours avec les données. Figure 3 Exemple d'un calcul de moyenne mobile en tenant compte et en ignorant les dates sans ventes. La mesure Moyenne mobile 7 jours a un nombre inférieur entre Septembre 11 et Septembre 17, parce qu'il considère Septembre 11 comme un jour avec 0 ventes. Si vous voulez ignorer les jours sans ventes, utilisez la mesure Moyenne mobile 7 jours sans zéro. Cela pourrait être la bonne approche lorsque vous avez une table de date complète, mais vous voulez ignorer les jours sans transactions. En utilisant la formule Moyenne mobile 7 jours, le résultat est correct car AVERAGEX considère automatiquement uniquement les valeurs non vierges. N'oubliez pas que vous pouvez améliorer la performance d'une moyenne mobile en persistant la valeur dans une colonne calculée d'une table avec la granularité souhaitée, comme la date ou la date et le produit. Cependant, l'approche de calcul dynamique avec une mesure offre la possibilité d'utiliser un paramètre pour le nombre de jours de la moyenne mobile (par exemple, remplacer ltnumberofdaysgt par une mesure mettant en œuvre le modèle Table de paramètres). La médiane correspond au 50 e percentile, que vous pouvez calculer en utilisant le pattern Percentile. Cependant, le modèle médian vous permet d'optimiser et de simplifier le calcul médian à l'aide d'une seule mesure, au lieu des différentes mesures requises par le motif Percentile. Vous pouvez utiliser cette approche lorsque vous calculez la médiane des valeurs incluses dans ltvaluecolumngt, comme indiqué ci-dessous: Pour améliorer les performances, vous pouvez persister la valeur d'une mesure dans une colonne calculée, si vous voulez obtenir la médiane pour les résultats de Une mesure dans le modèle de données. Cependant, avant d'effectuer cette optimisation, vous devez implémenter le calcul MedianX basé sur le modèle suivant, à l'aide de ces marqueurs: ltgranularitytablegt est la table qui définit la granularité du calcul. Par exemple, il peut s'agir de la table Date si vous souhaitez calculer la médiane d'une mesure calculée au niveau du jour ou de VALUES (8216DateYearMonth) si vous souhaitez calculer la médiane d'une mesure calculée au niveau du mois. Ltmeasuregt est la mesure à calculer pour chaque ligne de ltgranularitytablet pour le calcul médian. Ltmeasuretablegt est le tableau contenant les données utilisées par ltmeasuregt. Par exemple, si le ltgranularitytablegt est une dimension telle que 8216Date8217, alors ltmeasuretablegt sera 8216Internet Sales8217 contenant la colonne Internet Sales Amount ajoutée par la mesure Internet Total Sales. Par exemple, vous pouvez écrire la médiane des ventes totales d'Internet pour tous les clients dans Adventure Works comme suit: Conseil Le modèle suivant: est utilisé pour supprimer les lignes de ltgranularitytablegt qui n'ont pas de données correspondantes dans la sélection en cours. Il est plus rapide que d'utiliser l'expression suivante: Cependant, vous pouvez remplacer l'expression CALCULATETABLE entière par juste ltgranularitytablegt si vous voulez considérer les valeurs vides de ltmeasuregt comme 0. La performance de la formule MedianX dépend du nombre de lignes dans le Table itérée et sur la complexité de la mesure. Si la performance est mauvaise, vous pouvez persister dans le résultat ltmeasuregt dans une colonne calculée de lttablegt, mais cela supprimera la capacité d'appliquer des filtres au calcul médian au moment de la requête. Percentile Excel a deux implémentations différentes de calcul de centile avec trois fonctions: PERCENTILE, PERCENTILE. INC et PERCENTILE. EXC. Ils renvoient tous le K-ième centile de valeurs, où K est dans la plage de 0 à 1. La différence est que PERCENTILE et PERCENTILE. INC considèrent K comme une gamme inclusive, alors que PERCENTILE. EXC considère la gamme K 0 à 1 comme exclusive . Toutes ces fonctions et leurs implémentations DAX reçoivent une valeur percentile en tant que paramètre, que nous appelons K. Valeur percentile ltKgt est dans la plage de 0 à 1. Les deux implémentations DAX de percentile nécessitent quelques mesures qui sont similaires, mais assez différentes pour exiger Deux ensemble différent de formules. Les mesures définies dans chaque modèle sont: KPerc. La valeur percentile correspond à ltKgt. PercPos. Position du percentile dans l'ensemble trié de valeurs. ValueLow. La valeur en dessous de la position de centile. ValueHigh. La valeur au-dessus de la position de centile. Percentile. Le calcul final du percentile. Vous avez besoin des mesures ValueLow et ValueHigh au cas où le PercPos contient une partie décimale, car alors vous devez interpoler entre ValueLow et ValueHigh afin de retourner la valeur de centile correcte. La figure 4 montre un exemple des calculs effectués avec les formules Excel et DAX, en utilisant les deux algorithmes de percentile (inclusif et exclusif). Figure 4 Calculs de percentiles à l'aide des formules Excel et du calcul DAX équivalent. Dans les sections suivantes, les formules Percentile exécutent le calcul sur les valeurs stockées dans une colonne de table, DataValue, tandis que les formules PercentileX exécutent le calcul sur les valeurs renvoyées par une mesure calculée à une granularité donnée. Le percentil inclusif L'implémentation inclusive du percentil est la suivante. Percentile Exclusive L'implémentation de Percentile Exclusive est la suivante. PercentileX Inclusive L'implémentation de PercentileX Inclusive est basée sur le modèle suivant, à l'aide de ces marqueurs: ltgranularitytablegt est la table qui définit la granularité du calcul. Par exemple, il peut s'agir de la table Date si vous souhaitez calculer le centile d'une mesure au niveau du jour, ou bien si vous souhaitez calculer le centile d'une mesure au niveau du mois, il peut s'agir de VALUES (8216DateYearMonth). Ltmeasuregt est la mesure à calculer pour chaque rangée de ltgranularitytablegt pour le calcul du centile. Ltmeasuretablegt est le tableau contenant les données utilisées par ltmeasuregt. Par exemple, si le ltgranularitytablegt est une dimension telle que 8216Date, 8217 alors le ltmeasuretablegt sera 8216Sales8217 contenant la colonne Amount additionnée par la mesure Total Montant. Par exemple, vous pouvez écrire PercentileXInc du montant total des ventes pour toutes les dates de la table Date comme suit: PercentileX Exclusive L'implémentation PercentileX Exclusive est basée sur le modèle suivant, en utilisant les mêmes marqueurs utilisés dans PercentileX Inclusive: Par exemple, vous Peut écrire le PercentileXExc du montant total des ventes pour toutes les dates dans la table Date comme suit: Me tenir informé sur les modèles à venir (newsletter). Décochez pour télécharger librement le fichier. Publié le 17 mars 2014 par
No comments:
Post a Comment