建立計算結果欄
您可以撰寫 DAX 公式,以便將計算結果欄新增至模型中的任何資料表。 計算結果欄公式必須傳回純量或單一值。
匯入模型中的計算結果欄有其成本:這種資料表會增加模型儲存大小,並延長資料重新整理時間。 這是因為當計算結果欄與重新整理資料表有公式相依性時,計算結果欄會重新計算。
在 [資料檢視] 的 [欄位] 窗格中,確認已選取 Due Date 資料表。 在建立計算結果欄之前,請先將 Date 資料行重新命名為 Due Date。
現在,您可以將計算結果欄新增至 Due Date 資料表。 若要建立計算結果欄,請在 [資料表工具] 內容功能區中,從 [計算] 群組內選取 [新增資料行]。
在公式列中,輸入下列計算結果欄定義,然後按下 [Enter]。
Due Fiscal Year =
"FY"
& YEAR('Due Date'[Due Date])
+ IF(
MONTH('Due Date'[Due Date]) > 6,
1
)
計算結果欄定義會將 Due Fiscal Year 資料行新增至 Due Date 資料表。 下列步驟說明 Microsoft Power BI 如何評估計算結果欄公式:
- 加法運算子 (+) 會在文字串連運算子 (&) 之前受到評估。
-
YEAR
DAX 函式會傳回到期日年份的整數值。 - 當到期日月數為 7-12 (7 月到 12 月) 時,
IF
DAX 函式會傳回此值,否則會傳回空白。 (舉例來說,由於 Adventure Works 的會計年度是 7 月至 6 月,所以日曆年度最後六個月會使用下一個日曆年度做為會計年度。) - 年度值會新增至
IF
函式所傳回的值,這是值 1 或空白。 如果此值為空白,會隱含轉換為零 (0),以便加入來產生會計年度值。 - 文字值
"FY"
與會計年度值串連,會隱含地轉換成文字。
使用下列定義來新增第二個計算結果欄:
Due Fiscal Quarter =
'Due Date'[Due Fiscal Year] & " Q"
& IF(
MONTH('Due Date'[Due Date]) <= 3,
3,
IF(
MONTH('Due Date'[Due Date]) <= 6,
4,
IF(
MONTH('Due Date'[Due Date]) <= 9,
1,
2
)
)
)
計算結果欄定義會將 Due Fiscal Quarter 資料行新增至 Due Date 資料表。
IF
函式會傳回季度數 (第 1 季為 7 月至 9 月),而結果會串連到 Due Fiscal Year 資料行值和常值文字 Q
。
使用下列定義來新增第三個計算結果欄:
Due Month =
FORMAT('Due Date'[Due Date], "yyyy mmm")
計算結果欄定義會將 Due Month 資料行新增至 Due Date 資料表。
FORMAT
DAX 函式會使用格式字串將 Due Date 資料行值轉換成文字。 在此情況下,格式字串會產生描述年份和縮寫月份名稱的標籤。
注意
有許多使用者定義的日期/時間格式存在。 如需詳細資訊,請參閱 FORMAT 函式的自訂日期和時間格式。
使用下列定義來新增第四個計算結果欄:
Due Full Date =
FORMAT('Due Date'[Due Date], "yyyy mmm, dd")
使用下列定義來新增第五個計算結果欄:
MonthKey =
(YEAR('Due Date'[Due Date]) * 100) + MONTH('Due Date'[Due Date])
MonthKey 計算結果欄會將到期日年份乘以值 100,然後新增到期日的月數。 這會產生一個數值,可用來按照時間順序排序 Due Month 的文字值。
確認 Due Date 資料表有六個資料行。 第一個資料行是在建立計算資料表時所新增,而其他五個資料行則是新增為計算結果欄。
為了讓 Due Date 資料表的設計更加完善,可採取以下動作:
- 依據 Due Date 資料行,排序 Due Full Date 資料行。
- 依據 MonthKey 資料行,排序 Due Month 資料行。
- 隱藏 MonthKey 資料行。
- 建立名為 Fiscal 的階層,並包含下列層級:
- Due Fiscal Year
- Due Fiscal Quarter
- Due Month
- Due Full Date
- 使用 Due Date 資料行,將 Due Date 資料表標記為 Date 資料表。