BI技巧丨矩陣甘特圖

BOSS:白茶朴摊,我們最近有很多項目,能不能做個甘特圖此虑?
白茶:沒問題I醺佟(應(yīng)用市場上隨便找個甘特圖就OK了嘛!)
BOSS:對了朦前,不要那種點進(jìn)來會有點卡介杆,等半天的那種鹃操,要保持速度!
白茶:(#¥%@春哨!&)沒問題荆隘!

日常分析時,當(dāng)我們需要針對某一個連續(xù)事件進(jìn)行進(jìn)度更新的時候赴背,往往會采用甘特圖來進(jìn)行展示椰拒,這樣肉眼看起來直觀,方便一眼定位到目前的項目節(jié)點凰荚。

在應(yīng)用市場中燃观,有兩個應(yīng)用可以幫助大家滿足制作甘特圖的需求:
Gantt和Gantt Chart By MAQSoftware。

除了使用應(yīng)用市場的應(yīng)用以外便瑟,還可以通過內(nèi)置的矩陣缆毁,來實現(xiàn)甘特圖的制作。對比市場的應(yīng)用到涂,內(nèi)置的圖表無論是性能上還是兼容性上都會更優(yōu)一些脊框。
案例數(shù)據(jù):

案例數(shù)據(jù)只有兩張表,一張維度表践啄,索引使用浇雹,一張項目狀態(tài)表。將數(shù)據(jù)導(dǎo)入到PowerBI中往核,模型關(guān)系如下:

白茶模擬的數(shù)據(jù)比較簡單箫爷,但實際應(yīng)用中,會存在項目中斷重啟的情況聂儒,因此為了能夠在完整的維度下展示虎锚,我們需要構(gòu)建一張日期表。

Dim_Data = 
VAR MaxxData =
    MAX (
        MAXX ( ALL ( 'Fact_Status' ), [開始日期] ),
        MAXX ( ALL ( 'Fact_Status' ), [結(jié)束日期] )
    )
VAR MinxData =
    MIN (
        MINX ( ALL ( 'Fact_Status' ), [開始日期] ),
        MINX ( ALL ( 'Fact_Status' ), [結(jié)束日期] )
    )
VAR Result =
    GENERATE (
        CALENDAR ( MinxData, MaxxData ),
        VAR DA = [Date]
        VAR FactYear =
            YEAR ( DA )
        VAR FactQuarter =
            "Q" & FORMAT ( DA, "Q" )
        VAR FactMonth =
            FORMAT ( DA, "M" )
        VAR FactDAY =
            DAY ( DA )
        RETURN
            ROW (
                "年度", FactYear,
                "季度", FactQuarter,
                "月份索引", VALUE ( FactMonth ),
                "月份", FactMonth & "月",
                "日", FactDAY
            )
    )
RETURN
    Result

模型關(guān)系更新如下:

注:新生成的日期表衩婚,不需要和原本的模型建立關(guān)系窜护。

思考一下
接下來需要做什么?
1
2
3
獲取事實表的開始日期和結(jié)束日期非春,再根據(jù)維度表進(jìn)行條件判斷即可柱徙。
編寫如下DAX:
開始日期:

001.StartData = 
MONTH ( SELECTEDVALUE ( 'Fact_Status'[開始日期] ) )

結(jié)束日期:

002.EndData = 
MONTH ( SELECTEDVALUE ( 'Fact_Status'[結(jié)束日期] ) )

維度日期:

003.ConditionData = 
SELECTEDVALUE ( 'Dim_Data'[月份索引] )

條件判斷:

004.ProjectStatus = 
VAR ConditionStatus =
    IF (
        AND (
            [003.ConditionData] >= [001.StartData],
            [003.ConditionData] <= [002.EndData]
        ),
        1,
        0
    )
VAR Result =
    IF (
        AND ( HASONEFILTER ( 'Dim_Sort'[項目階段] ), ConditionStatus = 1 ),
        1,
        BLANK ()
    )
RETURN
    Result

將度量值拉到矩陣中進(jìn)行展示如下:

看起來矩陣已經(jīng)有甘特圖的樣子了,我們繼續(xù)編寫如下代碼:
配色:

005.FillColor = 
IF ( [004.ProjectStatus] = 1, "#00B050", "#FFFFFF" )

將上述度量值奇昙,設(shè)置為矩陣值的背景和字體顏色:

再對矩陣一些細(xì)節(jié)進(jìn)行調(diào)整护侮,展示效果如下:

可以看到,已經(jīng)將甘特圖的樣式储耐,在矩陣中復(fù)現(xiàn)羊初。除了根據(jù)日期節(jié)點進(jìn)行判斷以外,我們也可以加一些其他元素做判斷,例如:項目的狀態(tài)长赞、當(dāng)前日期節(jié)點等晦攒。
這里我們用當(dāng)前日期節(jié)點判斷標(biāo)識一下:

006.FillColorToday = 
VAR TodayMonth =
    MONTH ( TODAY () )
VAR Result =
    IF (
        [004.ProjectStatus] = 1,
        IF ( [003.ConditionData] = TodayMonth, "#FF0000", "#00B050" ),
        "#FFFFFF"
    )
RETURN
    Result

展示效果如下:

這里是白茶,一個PowerBI的初學(xué)者得哆。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脯颜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贩据,更是在濱河造成了極大的恐慌栋操,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乐设,死亡現(xiàn)場離奇詭異讼庇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)近尚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門蠕啄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人戈锻,你說我怎么就攤上這事歼跟。” “怎么了格遭?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵哈街,是天一觀的道長。 經(jīng)常有香客問我拒迅,道長骚秦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任璧微,我火速辦了婚禮作箍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘前硫。我一直安慰自己胞得,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布屹电。 她就那樣靜靜地躺著阶剑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪危号。 梳的紋絲不亂的頭發(fā)上牧愁,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機(jī)與錄音外莲,去河邊找鬼猪半。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的办龄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼淋昭,長吁一口氣:“原來是場噩夢啊……” “哼俐填!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起翔忽,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤英融,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后歇式,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驶悟,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年材失,在試婚紗的時候發(fā)現(xiàn)自己被綠了痕鳍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡龙巨,死狀恐怖笼呆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旨别,我是刑警寧澤诗赌,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站秸弛,受9級特大地震影響铭若,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜递览,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一叼屠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧非迹,春花似錦环鲤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纯命,卻和暖如春西剥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背亿汞。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工瞭空, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓咆畏,卻偏偏與公主長得像南捂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子旧找,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容