<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          PowerBI 通用萬能日歷模板,想干嘛就干嘛

          共 2762字,需瀏覽 6分鐘

           ·

          2020-09-30 13:24

          又一個終極應用誕生了,當然,這個早就有了,今天做一個發(fā)布。

          我們知道在 PowerBI 中,默認的日歷是非常丑陋以及有很多限制的,而自定義可視化圖表中的控件也并不完美。

          因此,我們有必要自己打造一套 PowerBI 日歷控件。

          在寫作本文時,對日歷模板的使用已經(jīng)有了更多的玩法,為了有一個穩(wěn)固的起點,我們從基礎版本來進行構(gòu)造。后續(xù)文章,我們再來進一步提升這個日歷模板的能力。

          開始

          現(xiàn)來看一個一般的日歷的樣子,例如,在你的 Windows 右下角就有一個日歷,如下:

          我們可以發(fā)現(xiàn):

          1、這是一個表格布局,因此,可以考慮矩陣來實現(xiàn)。

          2、在每個單元格內(nèi)都可以有更豐富的內(nèi)容。

          布局

          通過觀察可以發(fā)現(xiàn):

          1、頭部表示周內(nèi)日期的名字

          2、行需要有 6 行,這點非常重要

          行是必須要有 6 行的,有人說,不需要,因為 5 行就可以容納 35 日,而一個月最多 31 日,因此,5 行就夠了。非也,在極端情況下,某月1日可以在某周日,這就導致該月的第 30 日會出現(xiàn)在第 6 行。

          為此,我們只需要構(gòu)建和 Windows 一樣的日歷結(jié)構(gòu)即可。

          構(gòu)建基本結(jié)構(gòu)

          我們來構(gòu)建日歷頭部,如下:

          Calendar.Matrix.Header =

          // 步驟1. 建立該表
          // 步驟2. 案列排序

          SELECTCOLUMNS(
          {
          ( "Mon" , "一" , 1 ),
          ( "Tue" , "二" , 2 ),
          ( "Wed" , "三" , 3 ),
          ( "Thu" , "四" , 4 ),
          ( "Fri" , "五" , 5 ),
          ( "Sat" , "六" , 6 ),
          ( "Sun" , "日" , 7 )
          } , "DayNameEN" , [Value1] , "DayNameCN" , [Value2] , "DayIndex" , [Value3] )

          再來構(gòu)建日歷的行,如下:

          Calendar.Matrix.Row =
          SELECTCOLUMNS(
          {
          1,2,3,4,5,6
          } , "Index" , [Value] )

          用這個結(jié)構(gòu)生成一個日歷,則有:

          這樣,初步的結(jié)構(gòu)就有了。

          構(gòu)建日期度量值

          我們需要知道每一天的日歷內(nèi)的日期,如下:

          給出度量值如下:

          Calendar.Cell.Date.Value =
          VAR _date_base = MIN( 'Calendar'[Date] )
          VAR _position_number =
          VAR _row = SELECTEDVALUE( 'Calendar.Matrix.Row'[Index] )
          VAR _column = SELECTEDVALUE( 'Calendar.Matrix.Header'[DayIndex] )
          RETURN ( _row - 1 ) * 7 + _column
          RETURN _date_base - WEEKDAY( _date_base , 2 ) + _position_number

          這樣,就有了具體的日期了。

          簡化顯示如下:

          Calendar.Cell.Date.Display =
          FORMAT( [Calendar.Cell.Date.Value] , "dd" )

          則有:

          調(diào)配顏色

          將字體和背景做一個簡單處理,如下:

          設置顏色的度量值如下:

          Calendar.Cell.Color.BG =
          VAR _date_value = [Calendar.Cell.Date.Value]
          RETURN
          IF(
          YEAR( _date_value ) = SELECTEDVALUE( 'Calendar'[YearNumber] ) &&
          MONTH( _date_value ) = SELECTEDVALUE( 'Calendar'[MonthNumber] ) ,
          "#6C89B1" , "#A0ADCA"
          )

          以及:

          Calendar.Cell.Color.Font =
          VAR _date_value = [Calendar.Cell.Date.Value]
          RETURN
          IF(
          YEAR( _date_value ) = SELECTEDVALUE( 'Calendar'[YearNumber] ) &&
          MONTH( _date_value ) = SELECTEDVALUE( 'Calendar'[MonthNumber] ) ,
          "#FFFFFF" , "#EEEEEE"
          )

          至此我們的日歷就已經(jīng)打造好了。

          日歷的擴展

          如果我們想知道基于日歷的某些重要信息,例如:同時顯示當日內(nèi)的很多信息,例如:銷售額,新客戶數(shù)等。

          將擴展的內(nèi)容以度量值表示,如下:

          Calendar.Cell.Content =
          VAR _kpi_value = CALCULATE( [KPI] , TREATAS( { [Calendar.Cell.Date.Value] } , 'Calendar'[Date] ) , ALL( 'Calendar' ) )
          RETURN
          "當日KPI:" & UNICHAR( 10 ) &
          FORMAT( _kpi_value , "#,#" )

          則有:

          再進一步簡化為:

          我們知道聰明的你馬上就可以舉一反三出各種應用了,沒有錯,可以做包括警報之類的很多效果,例如:

          這非常容易,我們只需要對觸發(fā)了某些條件的內(nèi)容染色即可。

          總結(jié)

          我們通過觀察對比,在 PowerBI 中使用 DAX 打造了完全自定義的日歷模板,該模板非常強大,可以按照任何形式顯示任何內(nèi)容,尤其是可以高亮任何我們希望高亮顯示的部分,這將非常有現(xiàn)實意義。

          這僅僅是我們的 1.0 版本。

          留一個問題給到讀者小伙伴吧,如何將這個日歷模板進行擴展,使其可以支持農(nóng)歷以及節(jié)假日。

          在訂閱了BI佐羅講授的《BI進行時》課程區(qū),除了可以下載本文案例,觀看視頻講解,還將為小伙伴提前分享萬能日歷模板的 2.0 版,支持農(nóng)歷,支持節(jié)假日版。

          讓數(shù)據(jù)真正成為你的力量

          Create value?through?simple and?easy?with fun?by PowerBI

          Excel BI?|?DAX Pro?|?DAX?權(quán)威指南?|?線下VIP學習

          掃碼與PBI精英一起學習,驗證碼:data2020

          PowerBI MVP 帶你正確而高效地學習 PowerBI
          點擊“閱讀原文”,即刻開始

          瀏覽 65
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青青青青操 | 操屄网久久 | www.污污 | 影音先锋成人资源AV在线观看 | Ts另类人妖一二三 |