PowerBI时间数据处理总结

更新时间:2023-06-23 08:16:36 阅读: 评论:0

PowerBI时间数据处理总结
bebop这两天为⼀个表筛选的问题头疼,先抽个⾝来总结下这段时间⼀直和对战的⼩婊砸=> « ⽇期 »。
⽇期处理可以说是数据处理中最让⼈⼼烦的⼀部分,经常在不明所以的情况下影响其他数据的运算。尤其是财务数据,销售数据,嗯,所以,在Power BI⾥建⽴⼀个时间表,再开启你的分析⽣涯吧。
在我刚⼊门Power BI的第2周,公司就开启了对我的碾压,需要给客户做⼀份动态报表,主要内容是从⽇期⾓度分析业务指标。
需要分析的指标有,Chiffre d’affaire ,Marge, Taux de Marge, Taux de Transformation… 总⽽⾔之就是销售额利润利润率客户转化率订单数量客户流量等等等,我能想到和想不到的指标全部都有 ,然后从⽇期⾓度分析业务指标 :当天,当周,当⽉,当极度,当年,最近12个⽉以及和去年同⽇,同期的⽐较。作为⼀个⼩⽩,实在是怕怕怕怕━((*′д`)⽘(′д`*))━
痛苦的数据筛选/建模/以及各项指标计算过程夹杂着我和DAX的缠绵情缘就先不说了,建⽴了指标集之后,我终于要开始给这些指标穿上时间的外⾐了
noi是什么意思1时间智能
Dim_Date = CALENDAR( 开始⽇期,结束⽇期)
我的⽇期区间选择范围是 从今天⼀直往前推到12个⽉,这个时间段同时也是我的销售表中销售数据的最⼤和最⼩⽇期。所以,选取了销售表内的最⼤和最⼩⽇期作为⽇期表的起⽌,DAX公式为:
cos是什么CALENDAR(MINX(VentesTicket;VentesTicket[DateVentes]);MAXX(VentesTicket;VentesTicket[DateVentes]))
此外,如果需要不同时间段的销售指标,例如每天 1点 /2点/3点 … 每个⼩时的销售额等,有两种⽅法实现:
第⼀种,在时间参考表的⽇期键值中加⼊时刻信息 DAX公式如下:
DateTimeTable=SELECTCOLUMNS(
CROSSJOIN(
//************************************************************
baka
// Date range below. This will generatea table with a [Date] column
//************************************************************
CALENDAR(DATE(2018;01;01);DATE(2018;01;02));
//************************************************************
// Time granduality below. This will generate a table with a [Time]column
//************************************************************
SELECTCOLUMNS(
CROSSJOIN(
SELECTCOLUMNS(GENERATESERIES(0;59;1);"Second";[Value]);
glory hole
SELECTCOLUMNS(GENERATESERIES(0;59;1);"Minute";[Value]);
SELECTCOLUMNS(GENERATESERIES(0;23;1);"Hour";[Value])
)
;
"Time";TIME([Hour];[Minute];[Second])
)
);
//************************************************************
// Custom table columns below.
// This is extracted from the Date and Timecolumns generated abovesnake
//************************************************************
"Date"; FORMAT([Date];"YYYY-MM-DD");
"Time"; FORMAT([Time];"hh:mm:ss");
"DateTime"; [Date]+[Time]
)
然后对每个⽇期键值进⾏分组 IF… ELSE…
第⼆种,在销售数据表格⾥对每⼀条销售记录进⾏分组,再建⽴⼀个时间段的参考表格
⼀个⼩插曲,关于Weeknumber,power bi中欧洲的⽇期 (从周⼀开始算⼀个周的开始),2017年1⽉1号被单独列为第⼀周,⽽从2017年1⽉2号开始算做第⼆周,所以在计算周粒度的指标时,要注意对去年Weeknumber的选择,解决⽅法:
Dax 公式
SemaineN-1 =
VAR CurrentWeek = SELECTEDVALUE (Dim_Date[WeekNumber])
VAR CurrentYear = SELECTEDVALUE (Dim_Date[Année])
VAR CurrentDay =SELECTEDVALUE(Dim_Date[DayOfWeekFull])
仰角>anti是什么意思RETURN
CALCULATE([SemaineN];
北京新东方国际高中
(
FILTER( ALL (Dim_Date);
Dim_Date[DayOfWeekFull]=CurrentDay&& Dim_Date[WeekNumber]=CurrentWeek+1 &&
Dim_Date[Année]=CurrentYear-1)))
或者,⾃⼰在excel中建⽴⼀个正确的⽇期表导⼊
2 ⽇期格式的处理
将数字列转换成时间列有些原始数据对时间的存储采⽤了纯数字形式,例如⽤20170122表⽰2017年1⽉22⽇。但是采⽤这种存储⽅式的数据列在导⼊到Power BI中会被认为是整数类型,将⽆法⾃动转换成⽇期格式,就不能做时间相关运算。要解决该问题,有三种思路,⼀种是在数字形式的⽇期上添加反斜杠“/”,将年⽉⽇分开。例如将20170122变成2017/02/22,之后就能被Power BI⾃动识别转换成⽇期格式了。转换⽅式可以⽤⼀下DAX完成:
DateFormat = LEFT(Store[Date],4)&"/"&MID(Store[Date],5,2)&"/"&RIGHT(Store[Date],2)
另外⼀种⽅式是调⽤DATE函数,直接将数字类型转换成⽇期时间类型。
DateTime = DATE(INT(LEFT(Store[Date],4)),INT(MID(Store[Date],5,2)),INT(RIGHT(Store[Date],2)))
第三种,先转换成text类型再转换为date类型。
marchiori3 神奇的Format函数
极好的参考博客:
如果要显⽰秒  mm,不能⽤Format ( Datekey ;  mm) ⽽是 h :mm
4 由于地区的不同⽇期的格式会有所不同
在⽇期上,到⽬前为⽌遇到这些问题,以后有新的问题会添加进来啦。
我去继续思考让我头疼的问题了ヾ( ̄▽ ̄)Bye~Bye~

本文发布于:2023-06-23 08:16:36,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/154644.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:指标   销售   时间
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图