Powerbi实战--常用新建表代码(单位切换,日期表)
生活随笔
收集整理的這篇文章主要介紹了
Powerbi实战--常用新建表代码(单位切换,日期表)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
單位切換
#Model_Unit = DATATABLE("單位名稱",STRING,"OrderBy_unit",INTEGER,"Value",INTEGER, {{ "無", 1, 1 },{ "萬", 2, 10000 },{ "百萬", 3, 1000000 },{ "億", 4, 100000000 }})日期相關表
創建日期表
Model_日期表 = GENERATE ( CALENDARAUTO(), VAR currdate = [Date] VAR year = YEAR (currdate) VAR quarter = VALUE( FORMAT( currdate, "Q" ) ) VAR quarter1 = "Q" & FORMAT( currdate, "Q" ) VAR month =MONTH( currdate ) VAR month1 =MONTH( currdate ) & "月" VAR weeknum=WEEKNUM(currdate , 2 ) VAR weekday=WEEKDAY(currdate , 2 ) VAR weekname="星期" &RIGHT( FORMAT(currdate , "aaa" ) , 1 ) VAR mday=DAY(currdate ) VAR yday=VALUE( FORMAT(currdate , "y" ) ) VAR yq=year*10+quarter VAR yq1=year&"Y"&quarter&"Q" VAR yw=year*100+weeknum VAR yw1=year&"Y"&weeknum&"W" VAR ym=year*100+month VAR ym1=year&"Y"&month&"M" RETURN ROW ( "年度", year , "季序號",quarter, "季名稱",quarter1, "月序號", month, "月名稱", month1, "周序號", weeknum, "周第幾", weekday, "星期幾", weekname, "年第幾日", yday, "月第幾日", mday, "年季序號", yq, "年季名稱", yq1, "年月序號", ym, "年月名稱", ym1, "年周序號", yw, "年周名稱", yw1 ))日期表
Model_Dates = 'Model_日期表'創建日期區間表
Model_DatesPeriod = // 日期區間表,用于動態篩選日期VAR X = 'Model_Dates' // 設置主日期表VAR PeriodYearLevel = ADDCOLUMNS( SELECTCOLUMNS( X , "區間" , "Y" & FORMAT( [年度] , "0" ) , "日期" , [Date] ) , "區間類型" , "年" , "區間類型OrderBy" , 10 , "區間OrderBy" , YEAR( [日期] ) ) VAR PeriodQuarterLevel = ADDCOLUMNS( SELECTCOLUMNS( X , "區間" , "Y" & FORMAT( [年度] , "0" ) & "Q" & FORMAT( [季序號] , "0" ) , "日期" , [Date] ) , "區間類型" , "季" , "區間類型OrderBy" , 20 , "區間OrderBy" , ( YEAR( [日期] ) * 10 + VALUE( FORMAT( [日期] , "q" ) ) ) * 10 ) VAR PeriodMonthLevel = ADDCOLUMNS( SELECTCOLUMNS( X , "區間" , "Y" & FORMAT( [年度] , "0" ) & "M" & FORMAT( [月序號] , "0" ) , "日期" , [Date] ) , "區間類型" , "月" , "區間類型OrderBy" , 30 , "區間OrderBy" , ( YEAR( [日期] ) * 100 + MONTH( [日期] ) ) * 100 ) VAR PeriodWeekLevel = ADDCOLUMNS( SELECTCOLUMNS( X , "區間" , "Y" & FORMAT( [年度] , "0" ) & "W" & FORMAT( [周序號] , "0" ) , "日期" , [Date] ) , "區間類型" , "周" , "區間類型OrderBy" , 40 , "區間OrderBy" , ( YEAR( [日期] ) * 100 + WEEKNUM( [日期] , 2 ) ) * 1000 ) VAR PeriodDateLevel = ADDCOLUMNS( SELECTCOLUMNS( X , "區間" , FORMAT( [Date] , "yyyy/M/dd" ) , "日期" , [Date] ) , "區間類型" , "日" , "區間類型OrderBy" , 50 , "區間OrderBy" , [日期] ) RETURN UNION( PeriodYearLevel , PeriodQuarterLevel , PeriodMonthLevel , PeriodWeekLevel , PeriodDateLevel )日期計算表
Model_DatesPeriod.XTD = VAR vToday = TODAY() VAR vLastUpdate = [Start:Date.LastDate.All] VAR Period_Today = VAR X = TREATAS( { vToday } , 'Model_日期表'[Date] )VAR PX = TREATAS( { vToday - 1 } , 'Model_日期表'[Date] )VAR TodayX = ADDCOLUMNS( LASTDATE( X ) , "區間類型" , "當日" , "截止到" , "最后一日" , "區間類型排序" , 1 )VAR TodayPX = ADDCOLUMNS( LASTDATE( PX ) , "區間類型" , "當日" , "截止到" , "上一日" , "區間類型排序" , 1 )VAR YesterdayX = ADDCOLUMNS( PREVIOUSDAY( X ) , "區間類型" , "上一日" , "截止到" , "最后一日" , "區間類型排序" , 2 )VAR YesterdayPX = ADDCOLUMNS( PREVIOUSDAY( PX ) , "區間類型" , "上一日" , "截止到" , "上一日" , "區間類型排序" , 2 )VAR WTDX = ADDCOLUMNS( DATESINPERIOD( 'Model_日期表'[Date] , X , - WEEKDAY( X , 2 ) + 1 , DAY ) , "區間類型" , "WTD" , "截止到" , "最后一日" , "區間類型排序" , 3 )VAR WTDPX = ADDCOLUMNS( DATESINPERIOD( 'Model_日期表'[Date] , PX , - WEEKDAY( PX , 2 ) + 1 , DAY ) , "區間類型" , "WTD" , "截止到" , "上一日" , "區間類型排序" , 3 )VAR MTDX = ADDCOLUMNS( DATESMTD( X ) , "區間類型" , "MTD" , "截止到" , "最后一日" , "區間類型排序" , 4 )VAR MTDPX = ADDCOLUMNS( DATESMTD( PX ) , "區間類型" , "MTD" , "截止到" , "上一日" , "區間類型排序" , 4 )VAR QTDX = ADDCOLUMNS( DATESQTD( X ) , "區間類型" , "QTD" , "截止到" , "最后一日" , "區間類型排序" , 5 )VAR QTDPX = ADDCOLUMNS( DATESQTD( PX ) , "區間類型" , "QTD" , "截止到" , "上一日" , "區間類型排序" , 5 )VAR YTDX = ADDCOLUMNS( DATESYTD( X ) , "區間類型" , "YTD" , "截止到" , "最后一日" , "區間類型排序" , 6 )VAR YTDPX = ADDCOLUMNS( DATESYTD( PX ) , "區間類型" , "YTD" , "截止到" , "上一日" , "區間類型排序" , 6 )RETURN UNION( TodayX , TodayPX , YesterdayX , YesterdayPX , WTDX , WTDPX , MTDX , MTDPX , QTDX , QTDPX , YTDX , YTDPX ) VAR Period_LastUpdate = VAR X = TREATAS( { vLastUpdate } , 'Model_日期表'[Date] )VAR PX = TREATAS( { vLastUpdate - 1 } , 'Model_日期表'[Date] )VAR TodayX = ADDCOLUMNS( LASTDATE( X ) , "區間類型" , "當日" , "截止到" , "最后一日" , "區間類型排序" , 1 )VAR TodayPX = ADDCOLUMNS( LASTDATE( PX ) , "區間類型" , "當日" , "截止到" , "上一日" , "區間類型排序" , 1 )VAR YesterdayX = ADDCOLUMNS( PREVIOUSDAY( X ) , "區間類型" , "上一日" , "截止到" , "最后一日" , "區間類型排序" , 2 )VAR YesterdayPX = ADDCOLUMNS( PREVIOUSDAY( PX ) , "區間類型" , "上一日" , "截止到" , "上一日" , "區間類型排序" , 2 )VAR WTDX = ADDCOLUMNS( DATESINPERIOD( 'Model_日期表'[Date] , X , - WEEKDAY( X , 2 ) + 1 , DAY ) , "區間類型" , "WTD" , "截止到" , "最后一日" , "區間類型排序" , 3 )VAR WTDPX = ADDCOLUMNS( DATESINPERIOD( 'Model_日期表'[Date] , PX , - WEEKDAY( PX , 2 ) + 1 , DAY ) , "區間類型" , "WTD" , "截止到" , "上一日" , "區間類型排序" , 3 )VAR MTDX = ADDCOLUMNS( DATESMTD( X ) , "區間類型" , "MTD" , "截止到" , "最后一日" , "區間類型排序" , 4 )VAR MTDPX = ADDCOLUMNS( DATESMTD( PX ) , "區間類型" , "MTD" , "截止到" , "上一日" , "區間類型排序" , 4 )VAR QTDX = ADDCOLUMNS( DATESQTD( X ) , "區間類型" , "QTD" , "截止到" , "最后一日" , "區間類型排序" , 5 )VAR QTDPX = ADDCOLUMNS( DATESQTD( PX ) , "區間類型" , "QTD" , "截止到" , "上一日" , "區間類型排序" , 5 )VAR YTDX = ADDCOLUMNS( DATESYTD( X ) , "區間類型" , "YTD" , "截止到" , "最后一日" , "區間類型排序" , 6 )VAR YTDPX = ADDCOLUMNS( DATESYTD( PX ) , "區間類型" , "YTD" , "截止到" , "上一日" , "區間類型排序" , 6 )RETURN UNION( TodayX , TodayPX , YesterdayX , YesterdayPX , WTDX , WTDPX , MTDX , MTDPX , QTDX , QTDPX , YTDX , YTDPX ) RETURN UNION( ADDCOLUMNS( Period_Today , "相對日期" , "現實日期" ),ADDCOLUMNS( Period_LastUpdate , "相對日期" , "刷新日期" ))總結
以上是生活随笔為你收集整理的Powerbi实战--常用新建表代码(单位切换,日期表)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查php源码授权后门,PHP授权系统+支
- 下一篇: java子类继承父类实际_java子类继