一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

DAX Patterns | 關(guān)于時(shí)間的標(biāo)準(zhǔn)計(jì)算

 timtxu 2021-08-04

關(guān)于這個(gè)模式

在這個(gè)模式中,我們將向你展示如何使用標(biāo)準(zhǔn)日歷計(jì)算與時(shí)間相關(guān)的計(jì)算,如年初至今、去年同期和百分比增長(zhǎng)。使用標(biāo)準(zhǔn)日歷的最大優(yōu)點(diǎn)是:你可以依賴多個(gè)內(nèi)置的時(shí)間智能函數(shù)。內(nèi)置函數(shù)的設(shè)計(jì)方式是為最常見(jiàn)的需求提供正確的結(jié)果。
?如果內(nèi)置函數(shù)無(wú)法滿足你的需求,或者你正在使用一個(gè)非標(biāo)準(zhǔn)的日歷,那么你應(yīng)該使用常規(guī)的(與時(shí)間無(wú)關(guān)的)DAX函數(shù)來(lái)達(dá)到相同的目標(biāo)。通過(guò)這種方式,你可以隨意定制代碼的結(jié)果。也就是說(shuō),如果你需要自定義計(jì)算,那么還需要使用一組列來(lái)豐富你的日期表,這些列將被DAX公式用于移動(dòng)篩選器。這些自定義計(jì)算將在自定義時(shí)間相關(guān)的計(jì)算模式中進(jìn)行介紹。   
?如果你使用的是常規(guī)的公歷,那么此模式中的公式是產(chǎn)生時(shí)間智能計(jì)算的最簡(jiǎn)單和最有效的方法。請(qǐng)記住,標(biāo)準(zhǔn)的DAX時(shí)間智能函數(shù)只支持常規(guī)的公歷——即一年由12月組成,每個(gè)月包含它的公歷天數(shù)(28~31天),三個(gè)月組成一個(gè)季度,以及我們所習(xí)慣的日歷的所有常規(guī)方面。

介紹時(shí)間智能計(jì)算

為了使用任何時(shí)間智能計(jì)算,你需要一個(gè)格式良好的日期表。日期表必須滿足以下要求:

  • 包含所需年份的所有日期。日期表必須從1月1日開(kāi)始,到12月31日結(jié)束,并包含這個(gè)范圍內(nèi)的所有天數(shù)。如果報(bào)告只引用財(cái)年,那么日期表必須包括從財(cái)年的第一天到最后一天的所有日期。例如:如果2008財(cái)年從2007年7月1日開(kāi)始,那么日期表必須包含從2007年7月1日到2008年6月30日的所有天數(shù)。

  • 需要有一個(gè)具有DateTime 或Date 數(shù)據(jù)類型并且包含唯一值的列。通常這一列命名為Date。雖然Date 列經(jīng)常被用于定義與其他表之間的關(guān)系,但這不是必需的。盡管如此,Date 列必須包含唯一的值,并且應(yīng)該由“標(biāo)記為日期表”特性引用。如果該列還包含時(shí)間部分,則不應(yīng)該使用時(shí)間——例如,時(shí)間應(yīng)該始終是12:00 am。

  • Date 表必須在模型中標(biāo)記為日期表,以防Date 表和其他表之間的關(guān)系(例如示例中的Sales 表)不是基于日期列。

?有幾種不同方法可以構(gòu)建Date 表。只要日期表滿足以上要求,構(gòu)建Date 表的方式并不影響使用標(biāo)準(zhǔn)時(shí)間智能計(jì)算的方式。如果你已經(jīng)有一個(gè)適用于你的報(bào)告的Date 表,只需導(dǎo)入它并在檢查它滿足最低要求之后將其標(biāo)記為日期表。如果你沒(méi)有Date 表,可以使用稍后描述的DAX計(jì)算表創(chuàng)建一個(gè)。
?最佳實(shí)踐是: 將用于時(shí)間智能計(jì)算的Date 表標(biāo)記為日期表。每次在Date 列上應(yīng)用一個(gè)篩選器時(shí),'標(biāo)記為日期表'設(shè)置都會(huì)對(duì)日期表自動(dòng)添加REMOVEFILTERS。這個(gè)操作(在Date列上應(yīng)用一個(gè)篩選器)是由作為CALCULATE的篩選參數(shù)的時(shí)間智能函數(shù)執(zhí)行。如果你使用Date 列定義了Sales 和Date 之間的關(guān)系,DAX會(huì)表現(xiàn)出相同的行為。盡管如此,將'標(biāo)記為日期表'設(shè)置應(yīng)用于日期表是一個(gè)最佳實(shí)踐。如果你有多個(gè)日期表,你可以將所有日期表標(biāo)記為日期表。
?如果沒(méi)有使用'標(biāo)記為日期表'設(shè)置并且沒(méi)有使用日期列定義關(guān)系,那么每當(dāng)在CALCULATE中使用時(shí)間智能函數(shù)時(shí),都必須對(duì)日期表添加REMOVEFILTERS。關(guān)于這個(gè)行為的更多細(xì)節(jié)請(qǐng)瀏覽Power BI Desktop中的時(shí)間智能。

什么是標(biāo)準(zhǔn)的DAX時(shí)間智能函數(shù)?

標(biāo)準(zhǔn)的時(shí)間智能函數(shù)是表函數(shù),它返回一列用于作為CALCULATE的篩選參數(shù)的日期值??梢酝ㄟ^(guò)編寫一個(gè)比較復(fù)雜的篩選表達(dá)式來(lái)獲得和時(shí)間智能函數(shù)相同的結(jié)果。例如,DATESYTD 函數(shù)返回從同一年中的第一天到當(dāng)前篩選上下文中可見(jiàn)的最后一天之間的所有日期。

?等同于下面的FILTER表達(dá)式:


?有很多時(shí)間智能函數(shù),我們將在這個(gè)模式中呈現(xiàn)它們中的大部分。請(qǐng)注意:時(shí)間智能函數(shù)應(yīng)該作為CALCULATE的篩選參數(shù),并且有時(shí)你將借助變量來(lái)實(shí)現(xiàn)這一點(diǎn)。在迭代函數(shù)中使用時(shí)間智能函數(shù)是危險(xiǎn)的,因?yàn)闀?huì)觸發(fā)隱式的上下文轉(zhuǎn)換, 并且從轉(zhuǎn)換而來(lái)的篩選上下文中檢索可見(jiàn)的日期。關(guān)于這個(gè)行為的更多細(xì)節(jié)請(qǐng)瀏覽DAX Guide文檔: https://ide/datesytd/。   
?以下是使用時(shí)間智能函數(shù)的最佳實(shí)踐的快速指南:

  • 僅在CALCULATE / CALCULATETABLE的篩選器參數(shù)中使用像DATESYTD這樣的時(shí)間智能函數(shù),或者使用時(shí)間智能函數(shù)將篩選器分配于變量。

  • 在返回值的DAX表達(dá)式中使用標(biāo)量函數(shù)—也稱為標(biāo)量表達(dá)式,如EDATE和EOMONTH。這些函數(shù)不是時(shí)間智能函數(shù),可以在行上下文中計(jì)值的表達(dá)式中使用。

  • 使用CONVERT將日期轉(zhuǎn)換為數(shù)字,反之亦然。

  • 請(qǐng)瀏覽https://ide/獲得有關(guān)時(shí)間智能函數(shù)的最新完整清單。

?DAX初學(xué)者經(jīng)?;煜龝r(shí)間智能函數(shù)和正則標(biāo)量時(shí)間函數(shù)。這種混淆會(huì)導(dǎo)致一些常見(jiàn)的錯(cuò)誤,可以通過(guò)遵循以下建議來(lái)避免:

  • 不要使用DATEADD返回前一天或第二天,你可以使用簡(jiǎn)單的數(shù)學(xué)運(yùn)算符實(shí)現(xiàn)。

  • 不要在標(biāo)量表達(dá)式中使用PREVIOUSDAY計(jì)算前一天。你只需從日期上減去一天,就可以在標(biāo)量表達(dá)式中獲取前一天。

  • 不要使用EOMONTH作為篩選器參數(shù),而要使用ENDOFMONTH 。EOMONTH是一個(gè)標(biāo)量表達(dá)式。ENDOFMONTH是一個(gè)時(shí)間智能函數(shù)。始終要注意函數(shù)的返回類型:只有表函數(shù)是時(shí)間智能函數(shù),并且不應(yīng)該在標(biāo)量表達(dá)式中使用時(shí)間智能函數(shù)。

禁用自動(dòng)日期/時(shí)間

Power BI自動(dòng)為模型中的每個(gè)日期或日期時(shí)間類型的列創(chuàng)建一個(gè)日期表。然而, 我們
我們強(qiáng)烈建議禁用Power BI自動(dòng)創(chuàng)建的日期表,并取而代之,導(dǎo)入或創(chuàng)建一個(gè)顯式的日期表。關(guān)于這一建議的更多細(xì)節(jié)請(qǐng)瀏覽文章Automatic time intelligence in Power BI。
?自動(dòng)日期表的存在還啟用了一種被稱為列變體的特殊語(yǔ)法。它表現(xiàn)為: 在日期列后有一個(gè)點(diǎn),后面再跟著一個(gè)自動(dòng)創(chuàng)建的日期表中的列。

?當(dāng)對(duì)一個(gè)自動(dòng)日期表使用Power BI快速度量值時(shí), Power BI快速度量值大量使用了列變體。我們不依賴于在Power BI中自動(dòng)創(chuàng)建的日期表,因?yàn)槲覀兿M麑?duì)模型保持最大的靈活性和最大的控制。列變體的語(yǔ)法不支持作為模型一部分的日期表,因此,也不能自動(dòng)創(chuàng)建。

標(biāo)準(zhǔn)時(shí)間智能函數(shù)的局限性

標(biāo)準(zhǔn)時(shí)間智能函數(shù)適用于常規(guī)的公歷。在本章節(jié)中列出了它們的幾個(gè)限制。當(dāng)你的需求和這些限制不兼容時(shí),你需要另外的模式(請(qǐng)參閱 Custom time-related calculations 和 Week-related calculations)。

  • 年從1月1日開(kāi)始。對(duì)于從一個(gè)不同日期開(kāi)始的財(cái)年日歷的支持有限。而且,每個(gè)財(cái)年的第一天必須是同一天并且由于與閏年有關(guān)的歷史bug不能是3月1日。

  • 季度總是在1月、4月、7月和10月的第一天開(kāi)始。一個(gè)季度的日期范圍不能被修改。

  • 月總是一個(gè)日歷月

  • 標(biāo)準(zhǔn)時(shí)間智能函數(shù)可能無(wú)法正確地篩選附加列,例如Day of Week或Working Day。關(guān)于可能的解決方案的更多細(xì)節(jié),將在本章后面的'篩選其他日期屬性'中介紹。

?因此,標(biāo)準(zhǔn)時(shí)間智能計(jì)算不支持許多高級(jí)計(jì)算,比如對(duì)于周的計(jì)算。這些高級(jí)計(jì)算需要自定義日歷。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    日本午夜一本久久久综合| 久热99中文字幕视频在线| 成人午夜激情免费在线| 91超频在线视频中文字幕| 成年女人午夜在线视频 | 高跟丝袜av在线一区二区三区| 日韩精品视频香蕉视频| 国产精品尹人香蕉综合网| 香港国产三级久久精品三级| 尹人大香蕉中文在线播放| 91免费一区二区三区| 久久热在线视频免费观看| 国产一区欧美午夜福利| 久久精品亚洲情色欧美| 中文字幕乱码一区二区三区四区| 欧美一区二区三区性视频| 国产精品熟女乱色一区二区| 国产精品丝袜一二三区| 亚洲欧美日本成人在线| 国产日韩欧美在线播放| 人妻内射在线二区一区| 午夜福利视频偷拍91| 99久久精品免费精品国产| 欧美做爰猛烈叫床大尺度| 日韩特级黄片免费观看| 亚洲国产精品一区二区毛片| 日韩免费国产91在线| 日韩一区二区三区久久| 亚洲一区二区精品久久av| 免费观看日韩一级黄色大片| 国产一区一一一区麻豆| 欧美日韩国产免费看黄片| 国产午夜福利一区二区| 日本免费一级黄色录像| 亚洲精品熟女国产多毛| 国产av精品一区二区| 熟女少妇一区二区三区蜜桃| 国产欧美日产久久婷婷| 在线欧美精品二区三区| 一区二区三区国产日韩| 亚洲中文字幕在线观看四区|