共用方式為


SAMEPERIODLASTYEAR

適用於:匯出數據行計算數據表量值視覺計算

注意

不建議將此函式用於 視覺計算 ,因為它可能會傳回毫無意義的結果。

對於日期欄輸入,傳回一個表格,其中包含在目前內容中從指定 dates 欄中的日期向前移動一年的日期欄。

對於行事曆輸入,傳回根據行事曆從目前內容中的日期向前移動一年的表格。 表格包含所有主要標記欄和所有時間相關欄。

語法

SAMEPERIODLASTYEAR(<dates> or <calendar>)

參數

詞彙 定義
dates or calendar 包含日期或行事曆參照的資料行

傳回值

對於日期欄輸入,請傳回日期值的單欄資料表。
對於行事曆輸入,請傳回包含所有主要標記資料行和所有時間相關資料行的資料表。

備註

  • dates 自變數可以是下列任一項:

    • 日期/時間數據行的參考,
    • 傳回日期/時間值單一數據行的數據表運算式,
    • 布爾表示式,定義日期/時間值的單一數據行數據表。
  • 布林運算式的條件約束會在 主題中說明,CALCULATE

  • 所傳回日期與此對等公式傳回的日期相同:DATEADD(dates, -1, year)

  • 在匯出數據行或數據列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。

範例

下列範例公式會建立量值,以計算轉銷商銷售的前一年銷售額。

= CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), SAMEPERIODLASTYEAR(DateTime[DateKey]))

特殊行為

當選取範圍包含過去兩天的月份時,SAMEPERIODLASTYEAR 會使用「擴充」語意,並將包含到月底為止的天數。 例如,當選取範圍中包含 2009 年 2 月 27 日和 28 日時,SAMEPERIODLASTYEAR 會傳回 2008 年 2 月 27 日至 29 日。

只有在選取範圍中包含過去兩天的月份時,才會發生此行為。 如果只選取 2 月 27 日,則會移至 2 月 27 日。

= SAMEPERIODLASTYEAR(DateTime[DateKey])

行事曆型時間智慧範例

下列範例公式會建立量值,以計算轉銷商銷售的前一年銷售額。

= CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), SAMEPERIODLASTYEAR(FiscalCalendar))

傳統與行事曆時間智慧之間的行為差異

在比較傳統和行事曆時間智慧時,某些案例可能會產生不同的結果。 例如,在農曆年中,SamePeriodLastYear 會在日期粒度上產生不同的結果。 在基於日曆的時間情報中,將 2008 年 2 月 29 日向後移動一年會導致 2007 年 3 月 1 日,因為它被視為一年中的第 60 天。 在經典的時間情報中,同樣的轉變在 2007 年 2 月 28 日回歸。 因應措施是使用 DATEADD(Calendar, -<number of a year>, month)。 例如,如果一年的行事曆中有 13 個月,請使用 DATEADD(Calendar, -13, month)。 這種方法將按月變化,因此 2008 年 2 月將變為 2007 年 2 月。

時間智慧函式日期和時間函式 PREVIOUSYEARPARALLELPERIOD