注意
不建議將此函式用於 視覺計算 ,因為它可能會傳回毫無意義的結果。
對於日期欄輸入,傳回一個表格,其中包含在目前內容中從指定 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 月。