概述
Power BI 是一個(gè)統(tǒng)一、可擴(kuò)展的自助服務(wù)和企業(yè)商業(yè)智能 (BI) 平臺。您可以利用它連接到任何數(shù)據(jù)并實(shí)現(xiàn)數(shù)據(jù)可視化,并將視覺對象無縫融入您的日常應(yīng)用中。
數(shù)據(jù)分析表達(dá)式 (DAX) 是在 Analysis Services、Power BI 以及 Excel 中的 Power Pivot 使用的公式表達(dá)式語言。 DAX 公式包括函數(shù)、運(yùn)算符和值,用于對表格數(shù)據(jù)模型中相關(guān)表和列中的數(shù)據(jù)執(zhí)行高級計(jì)算和查詢。
計(jì)算
DAX 公式在度量值、計(jì)算列、計(jì)算表和行級別安全性中使用。
度量值
度量值是動(dòng)態(tài)計(jì)算公式,其結(jié)果會根據(jù)上下文更改。 度量值在支持使用多個(gè)屬性(如 Power BI 報(bào)表或 Excel 數(shù)據(jù)透視表或數(shù)據(jù)透視圖)組合和篩選模型數(shù)據(jù)的報(bào)表中使用。 度量值是通過使用模型設(shè)計(jì)器中的 DAX 公式欄來創(chuàng)建的。
度量值中的公式可以使用通過自動(dòng)求和功能自動(dòng)創(chuàng)建的標(biāo)準(zhǔn)聚合函數(shù)(如 COUNT 或 SUM),你也可以通過使用 DAX 公式欄來定義自己的公式。 命名度量值可作為參數(shù)傳遞給其他度量值。
在公式欄中為某一度量值定義公式時(shí),工具提示功能會顯示當(dāng)前上下文中的總結(jié)果預(yù)覽,但除此之外,在任何位置都不會立即輸出結(jié)果。 您不能立即看到計(jì)算的(篩選)結(jié)果的原因是,在沒有上下文的情況下無法確定度量值的結(jié)果。 若要計(jì)算度量值,需要一個(gè)可以提供上下文的報(bào)表客戶端應(yīng)用程序,在檢索與每個(gè)單元相關(guān)的數(shù)據(jù)然后針對每個(gè)單元計(jì)算表達(dá)式時(shí)需要該應(yīng)用程序提供的上下文。 該客戶端可能是 Excel 數(shù)據(jù)透視表或數(shù)據(jù)透視圖、Power BI 報(bào)表或 SQL Server Management Studio (SSMS) 中 DAX 查詢中的表表達(dá)式。
度量值用于一些最常見的數(shù)據(jù)分析。 簡單匯總(如總和、平均值、最小值、最大值和計(jì)數(shù))可以通過“字段”框進(jìn)行設(shè)置。
度量值的計(jì)算結(jié)果也始終隨著你與的報(bào)表的交互而改變,以便進(jìn)行快速和動(dòng)態(tài)的臨時(shí)數(shù)據(jù)瀏覽。
計(jì)算
DAX 公式在度量值、計(jì)算列、計(jì)算表和行級別安全性中使用。
度量值
度量值是動(dòng)態(tài)計(jì)算公式,其結(jié)果會根據(jù)上下文更改。
度量值在支持使用多個(gè)屬性(如 Power BI 報(bào)表或 Excel 數(shù)據(jù)透視表或數(shù)據(jù)透視圖)組合和篩選模型數(shù)據(jù)的報(bào)表中使用。 度量值是通過使用模型設(shè)計(jì)器中的 DAX 公式欄來創(chuàng)建的。
度量值中的公式可以使用通過自動(dòng)求和功能自動(dòng)創(chuàng)建的標(biāo)準(zhǔn)聚合函數(shù)(如 COUNT 或 SUM),你也可以通過使用 DAX 公式欄來定義自己的公式。 命名度量值可作為參數(shù)傳遞給其他度量值。
在公式欄中為某一度量值定義公式時(shí),工具提示功能會顯示當(dāng)前上下文中的總結(jié)果預(yù)覽,但除此之外,在任何位置都不會立即輸出結(jié)果。 您不能立即看到計(jì)算的(篩選)結(jié)果的原因是,在沒有上下文的情況下無法確定度量值的結(jié)果。 若要計(jì)算度量值,需要一個(gè)可以提供上下文的報(bào)表客戶端應(yīng)用程序,在檢索與每個(gè)單元相關(guān)的數(shù)據(jù)然后針對每個(gè)單元計(jì)算表達(dá)式時(shí)需要該應(yīng)用程序提供的上下文。 該客戶端可能是 Excel 數(shù)據(jù)透視表或數(shù)據(jù)透視圖、Power BI 報(bào)表或 SQL Server Management Studio (SSMS) 中 DAX 查詢中的表表達(dá)式。
無論客戶端是什么,都會對結(jié)果中的每個(gè)單元格運(yùn)行單獨(dú)的查詢。 也就是說,數(shù)據(jù)透視表中行標(biāo)題和列標(biāo)題的每種組合,或 Power BI 報(bào)表中切片器和篩選器的每種選擇,都會生成不同的數(shù)據(jù)子集,并根據(jù)該子集計(jì)算度量值。
例如,使用這個(gè)非常簡單的度量值公式:
Total Sales = SUM([Sales Amount])
當(dāng)用戶將 TotalSales 度量值放入報(bào)表中,然后將“產(chǎn)品”表中的“產(chǎn)品類別”列放入篩選器中時(shí),將計(jì)算并顯示每個(gè)產(chǎn)品類別的“銷售額”總和。
與計(jì)算列不同,度量值的語法包括公式前面的度量值名稱。 在剛才提供的示例中,名稱 Total Sales 出現(xiàn)在公式之前。 創(chuàng)建度量值后,名稱及其定義將顯示在報(bào)表客戶端應(yīng)用程序字段列表中,并且根據(jù)透視和角色,可供模型的所有用戶使用。
計(jì)算列
計(jì)算列是這樣的列:在模型設(shè)計(jì)器中添加到現(xiàn)有表,然后用于創(chuàng)建定義列值的 DAX 公式。
當(dāng)計(jì)算列包含有效的 DAX 公式時(shí),輸入公式后就會立即為每行計(jì)算值。 然后,將值存儲在內(nèi)存中數(shù)據(jù)模型中。
例如,在“日期”表中,在公式欄中輸入公式后:
= [Calendar Year] & " Q" & [Calendar Quarter]
表中每行的值是通過從(同一個(gè)“日期”表中的)“日歷年”列獲取值來計(jì)算的,添加一個(gè)空格和大寫字母 Q,然后添加(同一個(gè)“日期”表中的)“日歷季度”列的值。 然后就會立即計(jì)算并顯示計(jì)算列中每行的結(jié)果,例如 2017 Q1 。 僅當(dāng)處理(刷新)表或任何相關(guān)表,或從內(nèi)存中卸載模型然后重新加載時(shí)(如關(guān)閉和重新打開 Power BI Desktop 文件時(shí)),才會重新計(jì)算列值。
計(jì)算表
計(jì)算表是一個(gè)基于公式表達(dá)式的計(jì)算對象,派生自同一個(gè)模型中的所有或部分其他表。
DAX 公式定義表值,而非從數(shù)據(jù)源中查詢值并將值加載到新表的列中。
計(jì)算表在角色扮演維度中非常有用。
例如“日期”表,如 OrderDate、ShipDate 或 DueDate,具體取決于外鍵關(guān)系。 通過為 ShipDate 顯式創(chuàng)建計(jì)算表,將獲得可用于查詢的獨(dú)立表,該表與任何其他表一樣完全可操作。 在配置篩選的行集或其他現(xiàn)有表中列的子集或超集時(shí),計(jì)算表也很有用。 這樣可以在創(chuàng)建表的變體以支持特定方案時(shí)保持原始表不變。
計(jì)算表支持與其他表之間的關(guān)系。 計(jì)算表中的列具有數(shù)據(jù)類型、格式設(shè)置,并能歸屬于數(shù)據(jù)類別。 可以像對任何其他表一樣,對計(jì)算表進(jìn)行命名、顯示或隱藏。 如果計(jì)算表從其中提取數(shù)據(jù)的任何表刷新或更新,則將重新計(jì)算計(jì)算表。
行級安全性
使用行級別安全性時(shí),DAX 公式的計(jì)算結(jié)果必須為 TRUE/FALSE 布爾值條件,以定義特定角色成員的查詢結(jié)果可以返回哪些行。 例如,對于“銷售”角色的成員,具有以下 DAX 公式的“客戶”表:
= Customers[Country] = "USA"
“銷售”角色的成員將只能查看美國客戶的數(shù)據(jù),而聚合(如 SUM)只返回美國客戶的數(shù)據(jù)。 行級別安全性在 Excel 中的 Power Pivot 中不可用。
使用 DAX 公式定義行級別安全性時(shí),將創(chuàng)建一個(gè)允許的行集。 這不會拒絕對其他行的訪問;相反,它們只是不作為允許的行集的一部分返回。 其他角色可允許訪問 DAX 公式所排除的行。 如果用戶是其他角色的成員,且該角色的行級別安全性允許訪問該特定行集,則該用戶可以查看該行的數(shù)據(jù)。
行級別安全性應(yīng)用于指定的行以及相關(guān)行。 如果表具有多個(gè)關(guān)系,則篩選器將對處于活動(dòng)狀態(tài)的關(guān)系應(yīng)用安全性。 行級別安全性公式將與為相關(guān)表定義的其他公式相交。
查詢
可以在 SQL Server Management Studio (SSMS) 和 DAX Studio (daxstudio.org) 等開放源代碼工具中創(chuàng)建和運(yùn)行 DAX 查詢。 不同于 DAX 計(jì)算公式只能在表格數(shù)據(jù)模型中創(chuàng)建,DAX 查詢也可以針對 Analysis Services 多維模型運(yùn)行。 與多維數(shù)據(jù)表達(dá)式 (MDX) 查詢相比,DAX 查詢通常更易于編寫,而且效率更高。
DAX 查詢是一個(gè)語句,類似于 T-SQL 中的 SELECT 語句。 DAX 查詢的最基本類型是計(jì)算語句 。 例如,
EVALUATE
( FILTER ( 'DimProduct', [SafetyStockLevel] < 200 ) )
ORDER BY [EnglishProductName] ASC
在結(jié)果中返回一個(gè)表,該表僅列出 SafetyStockLevel 小于 200 的產(chǎn)品,按 EnglishProductName 升序排序。
可以創(chuàng)建度量值作為查詢的一部分。 度量值僅在查詢期間存在。
公式
DAX 公式對于在計(jì)算列和度量值中創(chuàng)建計(jì)算以及使用行級別安全性保護(hù)數(shù)據(jù)方面非常重要。 要為計(jì)算列和度量值創(chuàng)建公式,請使用模型設(shè)計(jì)器窗口頂部的公式欄或 DAX 編輯器。 要為行級別安全性創(chuàng)建公式,請使用“角色管理器”或“管理角色”對話框。
公式基礎(chǔ)知識
DAX 公式可以很簡單,也可以非常復(fù)雜。
下面顯示了一些可以在計(jì)算列中使用的簡單公式示例。
Formula 定義
= TODAY() 在計(jì)算列的每一行中插入今天的日期。
= 3 在計(jì)算列的每一行中插入值 3。
= [Column1] + [Column2] 將 [Column1] 和 [Column2] 的同一行中的值相加,并將結(jié)果放置在同一行的計(jì)算列中。
無論所創(chuàng)建的公式是簡單的還是復(fù)雜的,都可以按照以下步驟生成公式:
每個(gè)公式必須以等號 (=) 開頭。 可以鍵入或選擇一個(gè)函數(shù)名稱,也可以鍵入一個(gè)表達(dá)式。 開始鍵入所需函數(shù)或名稱的前幾個(gè)字母,自動(dòng)完成功能將顯示可用函數(shù)、表和列的列表。 按 Tab 鍵將自動(dòng)完成列表中的項(xiàng)添加到公式中。 還可以單擊 Fx 按鈕顯示可用函數(shù)的列表 。 要從下拉列表中選擇一個(gè)函數(shù),請使用箭頭鍵突出顯示該項(xiàng),然后單擊“確定”將該函數(shù)添加到公式中 。 通過從可能的表和列下拉列表中選擇參數(shù),或者通過鍵入值,為函數(shù)提供參數(shù)。 檢查語法錯(cuò)誤:確保所有括號都成對,并且正確引用了列、表和值。 按 Enter 鍵接受該公式。
在計(jì)算列中,只要輸入公式并驗(yàn)證公式,列就會填充值。 在度量值中,按 Enter 鍵會將度量值定義與表一起保存。 如果公式無效,將顯示錯(cuò)誤。
在公式中使用多個(gè)函數(shù)
您可以嵌套函數(shù),這意味著您可以使用一個(gè)函數(shù)的結(jié)果作為另一個(gè)函數(shù)的參數(shù)。 在計(jì)算列中,最多可以嵌套 64 個(gè)級別的函數(shù)。 但是,嵌套可能會導(dǎo)致很難創(chuàng)建公式或者排除公式問題。 許多函數(shù)設(shè)計(jì)為僅用作嵌套函數(shù)。 這些函數(shù)返回一個(gè)表,該表不能直接保存為結(jié)果,而必須作為表函數(shù)的輸入提供。 例如,函數(shù) SUMX、AVERAGEX 和 MINX 全都要求將表作為第一個(gè)參數(shù)。
函數(shù)概述
函數(shù)是表達(dá)式中的命名公式。 大多數(shù)函數(shù)都包含必需和可選的實(shí)參(亦稱為“形參”)作為輸入。 函數(shù)在執(zhí)行后返回值。 DAX 包括一些函數(shù),可用于使用日期和時(shí)間執(zhí)行計(jì)算、創(chuàng)建條件值、處理字符串、基于關(guān)系執(zhí)行查找以及循環(huán)訪問表以執(zhí)行遞歸計(jì)算。 如果您熟悉 Excel 公式,會發(fā)現(xiàn) Excel 公式與 DAX 公式中的多數(shù)函數(shù)都極為相似。
DAX 公式在以下方面顯著不同:
DAX 函數(shù)始終引用完整的列或表。 如果您想要僅使用表或列中的特定值,則可以向公式中添加篩選器。 如果需要逐行自定義計(jì)算,DAX 可提供允許您使用當(dāng)前行值或相關(guān)值作為一種參數(shù)來執(zhí)行計(jì)算(因上下文而異)的函數(shù)。 要了解這些函數(shù)的工作原理,請參閱本文中的上下文。 DAX 包含的許多函數(shù)都將返回表,而不是返回值。 表不會顯示在報(bào)告客戶端中,而是用于向其他函數(shù)提供輸入。 例如,您可以檢索一個(gè)表,然后對該表中的非重復(fù)值進(jìn)行計(jì)數(shù),或者計(jì)算多個(gè)已篩選表或列的動(dòng)態(tài)總和。 DAX 函數(shù)包含多種“時(shí)間智能”函數(shù)。 利用這些函數(shù),您可以定義或選擇日期范圍,并基于這些日期或范圍執(zhí)行動(dòng)態(tài)計(jì)算。 例如,您可以比較并行時(shí)段內(nèi)的總和。
聚合函數(shù)
聚合函數(shù)計(jì)算由表達(dá)式定義的列或表中所有行的(標(biāo)量)值,例如計(jì)數(shù)、求和、平均值、最小值或最大值。
屬于此類別的函數(shù)
函數(shù) 說明
APPROXIMATEDISTINCTCOUNT 在列中返回唯一值的估計(jì)計(jì)數(shù)。
AVERAGE 返回列中所有數(shù)字的平均值(算術(shù)平均值)。
AVERAGEA 返回列中值的平均值(算術(shù)平均值)。
AVERAGEX 計(jì)算針對表進(jìn)行計(jì)算的一組表達(dá)式的平均值(算術(shù)平均值)。
COUNT 計(jì)算指定列中包含非空值的行數(shù)。
COUNTA 計(jì)算指定列中包含非空值的行數(shù)。
COUNTAX 在對表計(jì)算表達(dá)式的結(jié)果時(shí)統(tǒng)計(jì)非空白結(jié)果數(shù)。
COUNTBLANK 對列中的空白單元格數(shù)目進(jìn)行計(jì)數(shù)。
COUNTROWS 統(tǒng)計(jì)指定表中或由表達(dá)式定義的表中的行數(shù)。
COUNTX 在針對表計(jì)算表達(dá)式的結(jié)果時(shí),對包含數(shù)字或計(jì)算結(jié)果為數(shù)字的表達(dá)式的行數(shù)目進(jìn)行計(jì)數(shù)。
DISTINCTCOUNT 對列中的非重復(fù)值數(shù)目進(jìn)行計(jì)數(shù)。
DISTINCTCOUNTNOBLANK 對列中的非重復(fù)值數(shù)目進(jìn)行計(jì)數(shù)。
MAX 返回列中或兩個(gè)標(biāo)量表達(dá)式之間的最大數(shù)字值。
MAXA 返回列中的最大值。
MAXX 針對表的每一行計(jì)算表達(dá)式,并返回最大數(shù)字值。
MIN 返回列中或兩個(gè)標(biāo)量表達(dá)式之間的最小數(shù)字值。
MINA 返回列中的最小值,包括任何邏輯值和以文本表示的數(shù)字。
MINX 返回針對表中的每一行計(jì)算表達(dá)式而得出的最小數(shù)值。
PRODUCT 返回列中的數(shù)的乘積。
PRODUCTX 返回為表中的每一行計(jì)算的表達(dá)式的積。
SUM 對某個(gè)列中的所有數(shù)值求和。
SUMX 返回為表中的每一行計(jì)算的表達(dá)式的和。
日期和時(shí)間函數(shù)
這些函數(shù)有助于創(chuàng)建基于日期和時(shí)間的計(jì)算。 DAX 中很多函數(shù)都與 Excel 日期和時(shí)間函數(shù)類似。 不過 DAX 函數(shù)使用日期/時(shí)間數(shù)據(jù)類型,可以將列中的值用作參數(shù) 。
屬于此類別的函數(shù)
函數(shù) 說明
CALENDAR 返回一個(gè)表,其中有一個(gè)包含一組連續(xù)日期的名為“Date”的列。
CALENDARAUTO 返回一個(gè)表,其中有一個(gè)包含一組連續(xù)日期的名為“Date”的列。
DATE 以日期/時(shí)間格式返回指定的日期。
DATEDIFF 返回兩個(gè)日期之間的間隔邊界的計(jì)數(shù)。
DATEVALUE 將文本格式的日期轉(zhuǎn)換為日期/時(shí)間格式的日期。
DAY 返回一月中的日期,1 到 31 之間的數(shù)字。
EDATE 返回在開始日期之前或之后指定月份數(shù)的日期。
EOMONTH 以日期/時(shí)間格式返回指定月份數(shù)之前或之后的月份的最后一天的日期。
HOUR 以數(shù)字形式返回小時(shí)值,0 (12:00 A.M.) 到 23 (11:00 P.M.) 之間的數(shù)字。
MINUTE 給定日期和時(shí)間值,以數(shù)字形式返回分鐘值,0 到 59 之間的數(shù)字。
MONTH 以數(shù)字形式返回月份值,1(一月)到 12(十二月)之間的數(shù)字。
NETWORKDAYS 返回兩個(gè)日期之間的整個(gè)工作日數(shù)。
NOW 以日期/時(shí)間格式返回當(dāng)前日期和時(shí)間。
QUARTER 將季度返回為從 1 到 4 的數(shù)值。
SECOND 以數(shù)字形式返回時(shí)間值的秒數(shù),0 到 59 之間的數(shù)字。
TIME 將以數(shù)值形式給定的小時(shí)、分鐘和秒值轉(zhuǎn)換為日期/時(shí)間格式的時(shí)間。
TIMEVALUE 將文本格式的時(shí)間轉(zhuǎn)換為日期/時(shí)間格式的時(shí)間。
TODAY 返回當(dāng)前日期。
UTCNOW 返回當(dāng)前的 UTC 日期和時(shí)間
UTCTODAY 返回當(dāng)前的 UTC 日期。
WEEKDAY 返回指示日期屬于星期幾的數(shù)字,1 到 7 之間的數(shù)字。
WEEKNUM 根據(jù) return_type 值返回給定日期和年份的周數(shù)。
YEAR 返回日期的年份,1900 到 9999 之間的四位整數(shù)。
YEARFRAC 計(jì)算由兩個(gè)日期之間的整日數(shù)表示的年份分?jǐn)?shù)。
篩選器函數(shù)
DAX 中的篩選器和值函數(shù)是最復(fù)雜且功能強(qiáng)大的函數(shù),并且與 Excel 函數(shù)有很大的不同。 查找函數(shù)通過使用表和關(guān)系進(jìn)行工作,與數(shù)據(jù)庫類似。 篩選函數(shù)可用于操作數(shù)據(jù)上下文來創(chuàng)建動(dòng)態(tài)計(jì)算。
屬于此類別的函數(shù)
函數(shù) 說明
ALL 返回表中的所有行或列中的所有值,同時(shí)忽略可能已應(yīng)用的任何篩選器。
ALLCROSSFILTERED 清除應(yīng)用于表的所有篩選器。
ALLEXCEPT 刪除表中所有上下文篩選器,已應(yīng)用于指定列的篩選器除外。
ALLNOBLANKROW 從關(guān)系的父表中,返回除空白行之外的所有行或列的所有非重復(fù)值,并且忽略可能存在的所有上下文篩選器。
ALLSELECTED 刪除當(dāng)前查詢的列和行中的上下文篩選器,同時(shí)保留所有其他上下文篩選器或顯式篩選器。
CALCULATE 在已修改的篩選器上下文中計(jì)算表達(dá)式。
CALCULATETABLE 在已修改的篩選器上下文中計(jì)算表表達(dá)式。
EARLIER 返回所述列的外部計(jì)算傳遞中指定列的當(dāng)前值。
EARLIEST 返回指定列的外部計(jì)算傳遞中指定列的當(dāng)前值。
FILTER 返回一個(gè)表,用于表示另一個(gè)表或表達(dá)式的子集。
KEEPFILTERS 計(jì)算 CALCULATE 或 CALCULATETABLE 函數(shù)時(shí),修改應(yīng)用篩選器的方式。
LOOKUPVALUE 返回滿足搜索條件所指定的所有條件的行的值。 函數(shù)可以應(yīng)用一個(gè)或多個(gè)搜索條件。
REMOVEFILTERS 清除指定表或列中的篩選器。
SELECTEDVALUE 如果篩選 columnName 的上下文后僅剩下一個(gè)非重復(fù)值,則返回該值。 否則,返回 alternateResult。
財(cái)務(wù)函數(shù)
DAX 中的財(cái)務(wù)函數(shù)用于執(zhí)行財(cái)務(wù)計(jì)算的公式,如凈現(xiàn)值和回報(bào)率。 這些函數(shù)類似于 Microsoft Excel 中使用的財(cái)務(wù)函數(shù)。
屬于此類別的函數(shù)
函數(shù) 描述
ACCRINT 返回支付定期利息的證券的應(yīng)計(jì)利息。
ACCRINTM 返回支付到期利息的證券的應(yīng)計(jì)利息。
AMORDEGRC 返回每個(gè)會計(jì)期間的折舊。 類似于 AMORLINC,但根據(jù)資產(chǎn)的使用壽命應(yīng)用折舊系數(shù)。
AMORLINC 返回每個(gè)會計(jì)期間的折舊。
COUPDAYBS 返回從息票期開始到結(jié)算日之間的天數(shù)。
COUPDAYS 返回包含結(jié)算日的息票期內(nèi)的天數(shù)。
COUPDAYSNC 返回從結(jié)算日到下一個(gè)息票日的天數(shù)。
COUPNCD 返回結(jié)算日之后的下一個(gè)息票日。
COUPNUM 返回結(jié)算日和到期日之間應(yīng)付的息票數(shù),舍入到最接近的整息票數(shù)。
COUPPCD 返回結(jié)算日之前的上一個(gè)息票日。
CUMIPMT 返回 start_period 和 end_period 之間為貸款支付的累計(jì)利息。
CUMPRINC 返回 start_period 和 end_period 之間為貸款支付的累計(jì)本金。
DB 使用固定余額遞減法返回指定期間資產(chǎn)的折舊。
DDB 使用雙倍余額遞減法或你指定的一些其他方法返回指定期間的資產(chǎn)折舊。
DISC 返回證券的貼現(xiàn)率。
DOLLARDE 將以整數(shù)部分加小數(shù)部分表示的美元價(jià)格(如 1.02)轉(zhuǎn)換為以小數(shù)表示的美元價(jià)格。
DOLLARFR 將以整數(shù)部分加小數(shù)部分表示的美元價(jià)格(如 1.02)轉(zhuǎn)換為以小數(shù)表示的美元價(jià)格。
DURATION 返回假定面值為 $100 的麥考利久期。
EFFECT 返回給定名義年利率和每年的復(fù)利期數(shù)下的實(shí)際年利率。
FV 根據(jù)固定利率計(jì)算投資的未來價(jià)值。
INTRATE 返回一次性付息的證券的利率。
IPMT 返回基于定期固定付款和固定利率計(jì)算得出的給定投資周期內(nèi)支付的利息。
ISPMT 按照等額本金計(jì)算貸款(或投資)在指定期限內(nèi)支付(或收?。┑睦ⅰ?br> MDURATION 返回修改后的證券(假定面值為 $100)麥考利久期。
NOMINAL 返回在給定實(shí)際利率和每年復(fù)利期數(shù)的情況下的名義年利率。
NPER 返回基于定期固定付款和固定利率計(jì)算得出的投資周期數(shù)。
ODDFPRICE 返回每 $100 面值的首期息票日不固定(短期或長期)的證券的價(jià)格。
ODDFYIELD 返回首期息票日不固定(長期或短期)的證券的收益率。
ODDLPRICE 返回末期息票日不固定(長期或短期)的證券每 $100 面值的價(jià)格。
ODDLYIELD 返回末期息票日不固定(長期或短期)的證券的收益率。
PDURATION 返回投資達(dá)到指定值所需的期數(shù)。
PMT 根據(jù)固定的付款期數(shù)和固定利率計(jì)算貸款的付款額。
PPMT 返回基于定期固定付款和固定利率計(jì)算得出的給定投資周期的本金付款。
PRICE 返回支付定期利息的證券的每 $100 面值的價(jià)格。
PRICEDISC 返回每 $100 面值的貼現(xiàn)證券的價(jià)格。
PRICEMAT 返回到期支付利息的每 $100 面值的證券的價(jià)格。
PV 根據(jù)固定利率計(jì)算貸款或投資的現(xiàn)值。
RATE 返回年金的每個(gè)周期的利率。
RECEIVED 返回一次性付息的證券到期收回的金額。
RRI 返回投資增長的等效利率。
SLN 返回一段時(shí)間內(nèi)資產(chǎn)的直線折舊。
SYD 返回指定期間內(nèi)資產(chǎn)的年限總額折舊。
TBILLEQ 返回國庫券的債券等值收益率。
TBILLPRICE 返回每 $100 面值的國庫券的價(jià)格。
TBILLYIELD 返回國庫券的收益率。
VDB 使用雙倍余額遞減法或你指定的其他一些方法,返回你指定的任何期間(包括部分期間)的資產(chǎn)折舊。
XIRR 返回不一定具有周期性的現(xiàn)金流時(shí)間表的內(nèi)部收益率。
XNPV 返回不一定具有周期性的現(xiàn)金流時(shí)間表的現(xiàn)值。
YIELD 返回支付定期利息的證券的收益率。
YIELDDISC 返回貼現(xiàn)證券的年收益率。
YIELDMAT 返回支付到期利息的證券的年收益率。
信息函數(shù)
DAX 信息函數(shù)查看作為參數(shù)提供的單元格或行,并告訴你此值是否與預(yù)期類型匹配。 例如,如果引用的值包含錯(cuò)誤,則 ISERROR 函數(shù)返回 TRUE。
屬于此類別的函數(shù)
函數(shù) 說明
COLUMNSTATISTICS 返回關(guān)于模型中每張表每一列的統(tǒng)計(jì)信息表。
CONTAINS 如果所有引用列的值存在或包含在這些列中,則返回 true;否則,該函數(shù)返回 false。
CONTAINSROW 如果表中存在或包含一行值,則返回 TRUE,否則返回 FALSE。
CONTAINSSTRING 返回 TRUE 或 FALSE,指示一個(gè)字符串是否包含另一個(gè)字符串。
CONTAINSSTRINGEXACT 返回 TRUE 或 FALSE,指示一個(gè)字符串是否包含另一個(gè)字符串。
CUSTOMDATA 返回連接字符串中 CustomData 屬性的內(nèi)容。
HASONEFILTER 如果 columnName 上的直接篩選值的數(shù)目為一個(gè),則返回 TRUE;否則,返回 FALSE。
HASONEVALUE 如果篩選 columnName 的上下文后僅剩下一個(gè)非重復(fù)值,則返回 TRUE。 否則返回 FALSE。
ISAFTER 此函數(shù)為布爾函數(shù),它會模仿 Start At 子句的行為,并為滿足所有條件參數(shù)的行返回 true。
ISBLANK 檢查值是否為空白,并返回 TRUE 或 FALSE。
ISCROSSFILTERED 如果篩選相同或相關(guān)表中的 columnName 或其他列,則返回 TRUE。
ISEMPTY 檢查表是否為空。
ISERROR 檢查值是否錯(cuò)誤,并返回 TRUE 或 FALSE。
ISEVEN 如果 number 為偶數(shù),則返回 TRUE;如果為奇數(shù),則返回 FALSE。
ISFILTERED 如果直接篩選 columnName,則返回 TRUE。
ISINSCOPE 當(dāng)指定的列在級別的層次結(jié)構(gòu)內(nèi)時(shí),返回 True。
ISLOGICAL 檢查值是否為邏輯值(TRUE 或 FALSE),并返回 TRUE 或 FALSE。
ISNONTEXT 檢查值是否為非文本(空單元格為非文本),并返回 TRUE 或 FALSE。
ISNUMBER 檢查值是否為數(shù)值,并返回 TRUE 或 FALSE。
ISODD 如果數(shù)字為奇數(shù),則返回 TRUE;如果數(shù)字為偶數(shù),則返回 FALSE。
ISONORAFTER 此函數(shù)為布爾函數(shù),它會模仿 Start At 子句的行為,并為滿足所有條件參數(shù)的行返回 true。
ISSELECTEDMEASURE 由表達(dá)式中的計(jì)算項(xiàng)用于確定上下文中的度量值是度量值列表中指定的度量值之一。
ISSUBTOTAL 使用 SUMMARIZE 表達(dá)式另外創(chuàng)建一列;如果該行包含作為參數(shù)提供的列的小計(jì)值,則返回 True,否則返回 False。
ISTEXT 檢查值是否為文本,并返回 TRUE 或 FALSE。
NONVISUAL 將 SUMMARIZECOLUMNS 表達(dá)式中的值篩選器標(biāo)記為不可見。
SELECTEDMEASURE 由表達(dá)式的計(jì)算項(xiàng)用于引用上下文中的度量值。
SELECTEDMEASUREFORMATSTRING 由表達(dá)式的計(jì)算項(xiàng)目用于檢索上下文中度量值的格式字符串。
SELECTEDMEASURENAME 由表達(dá)式的計(jì)算項(xiàng)目用于按名稱確定上下文中的度量值。
USERCULTURE 返回當(dāng)前用戶的區(qū)域設(shè)置。
USERNAME 從在連接時(shí)提供給系統(tǒng)的憑據(jù)中返回域名和用戶名。
USEROBJECTID 返回當(dāng)前用戶的對象 ID 或 SID。
USERPRINCIPALNAME 返回用戶主體名稱。
邏輯函數(shù)
邏輯函數(shù)對表達(dá)式有效,用于返回表達(dá)式中值或集的信息。 例如,可以使用 IF 函數(shù)檢查表達(dá)式的結(jié)果并創(chuàng)建條件結(jié)果。
屬于此類別的函數(shù)
函數(shù) 說明
AND 檢查兩個(gè)參數(shù)是否均為 TRUE,如果兩個(gè)參數(shù)都是 TRUE,則返回 TRUE。
BITAND 返回兩個(gè)數(shù)字的按位“AND”。
BITLSHIFT 返回一個(gè)按指定位數(shù)向左移動(dòng)的數(shù)字。
BITOR 返回兩個(gè)數(shù)字的按位“OR”。
BITRSHIFT 返回一個(gè)按指定位數(shù)向右移動(dòng)的數(shù)字。
BITXOR 返回兩個(gè)數(shù)字的按位“XOR”。
COALESCE 返回第一個(gè)計(jì)算結(jié)果不為 BLANK 的表達(dá)式。
FALSE 返回邏輯值 FALSE。
IF 檢查條件,如果為 TRUE,則返回一個(gè)值,否則返回第二個(gè)值。
IF.EAGER 檢查條件,如果為 TRUE,則返回一個(gè)值,否則返回第二個(gè)值。 使用 eager 執(zhí)行計(jì)劃,該計(jì)劃將始終執(zhí)行分支表達(dá)式,而不考慮條件表達(dá)式。
IFERROR 計(jì)算表達(dá)式,如果表達(dá)式返回錯(cuò)誤,則返回指定的值
NOT 將 FALSE 更改為 TRUE,或者將 TRUE 更改為 FALSE。
或者 檢查某一個(gè)參數(shù)是否為 TRUE,如果是,則返回 TRUE。
SWITCH 針對值列表計(jì)算表達(dá)式,并返回多個(gè)可能的結(jié)果表達(dá)式之一。
TRUE 返回邏輯值 TRUE。
數(shù)學(xué)和三角函數(shù)
數(shù)據(jù)分析表達(dá)式 (DAX) 中的數(shù)學(xué)函數(shù)與 Excel 數(shù)學(xué)函數(shù)和三角函數(shù)非常相似。 本節(jié)列出了 DAX 提供的數(shù)學(xué)函數(shù)。
屬于此類別的函數(shù)
函數(shù) 說明
ABS 返回某一數(shù)字的絕對值。
ACOS 返回某一數(shù)字的反余弦值(又稱逆余弦值)。
ACOSH 返回某一數(shù)字的反雙曲余弦值。
ACOT 返回某一數(shù)字的反余切值(又稱逆余切值)。
ACOTH 返回某一數(shù)字的反雙曲余切值。
ASIN 返回某一數(shù)字的反正弦值(又稱逆正弦值)。
ASINH 返回某一數(shù)字的反雙曲正弦值。
ATAN 返回某一數(shù)字的反正切值(又稱逆正切值)。
ATANH 返回某一數(shù)字的反雙曲正切值。
CEILING 將數(shù)值向上舍入為最接近的整數(shù)或最接近的基數(shù)倍數(shù)。
CONVERT 將一種數(shù)據(jù)類型的表達(dá)式轉(zhuǎn)換為另一種數(shù)據(jù)類型的表達(dá)式。
COS 返回給定角度的余弦值。
COSH 返回某一數(shù)字的雙曲余弦值。
COT 返回以弧度為單位指定的角度的余切值。
COTH 返回雙曲角的雙曲余切值。
CURRENCY 計(jì)算參數(shù)并以貨幣數(shù)據(jù)類型的形式返回結(jié)果。
DEGREES 將弧度轉(zhuǎn)換成角度。
DIVIDE 執(zhí)行除法運(yùn)算,并在被 0 除時(shí)返回備用結(jié)果或 BLANK()。
EVEN 返回向上舍入到最接近的偶數(shù)的數(shù)字。
EXP 返回 e 的指定次方。
FACT 返回一個(gè)數(shù)字的階乘,等于序列 123*…*(以給定數(shù)字結(jié)尾)。
FLOOR 向零方向?qū)?shù)值向下舍入為最接近的基數(shù)倍數(shù)。
GCD 返回兩個(gè)或多個(gè)整數(shù)的最大公約數(shù)。
INT 將數(shù)值向下舍入到最接近的整數(shù)。
ISO.CEILING 將數(shù)值向上舍入為最接近的整數(shù)或最接近的基數(shù)倍數(shù)。
LCM 返回整數(shù)的最小公倍數(shù)。
LN 返回某一數(shù)字的自然對數(shù)。
LOG 根據(jù)指定的底數(shù)返回?cái)?shù)字的對數(shù)。
LOG10 返回某一數(shù)字以 10 為底的對數(shù)。
MOD 返回一個(gè)被除數(shù)除以一個(gè)除數(shù)后所得的余數(shù)。 結(jié)果的符號始終與除數(shù)的符號相同。
MROUND 返回舍入到所需倍數(shù)的一個(gè)數(shù)字。
ODD 返回向上舍入到最接近的奇數(shù)的數(shù)字。
PI 返回 Pi 值 3.14159265358979,精確到 15 位。
POWER 返回某一數(shù)字的乘冪結(jié)果。
QUOTIENT 執(zhí)行除法運(yùn)算,并僅返回除法運(yùn)算結(jié)果的整數(shù)部分。
RADIANS 將度轉(zhuǎn)換為弧度。
RAND 返回大于或等于 0 并且小于 1 的隨機(jī)數(shù)字(平均分布)。
RANDBETWEEN 返回指定的兩個(gè)數(shù)值之間的一個(gè)隨機(jī)數(shù)。
ROUND 將數(shù)值舍入到指定的位數(shù)。
ROUNDDOWN 向零的方向向下舍入某一數(shù)字。
ROUNDUP 按遠(yuǎn)離 0(零)的方向向上舍入某一數(shù)字。
SIGN 確定列中數(shù)字、計(jì)算結(jié)果或值的符號。
SIN 返回給定角度的正弦值。
SINH 返回某一數(shù)字的雙曲正弦值。
SQRT 返回某一數(shù)字的平方根。
SQRTPI 返回 (數(shù)字 * pi) 的平方根。
TAN 返回給定角度的正切值。
TANH 返回某一數(shù)字的雙曲正切值。
TRUNC 通過刪除數(shù)字的小數(shù)或分?jǐn)?shù)部分將數(shù)字截?cái)酁檎麛?shù)。
其他函數(shù)
這些函數(shù)執(zhí)行無法定義為任何類別的唯一操作。
屬于此類別的函數(shù)
函數(shù) 說明
BLANK 返回空白。
ERROR 引發(fā)錯(cuò)誤并顯示錯(cuò)誤消息。
EVALUATEANDLOG 返回第一個(gè)參數(shù)的值,并將其記錄在 DAX 評估日志探查器事件中。
TOCSV 以 CSV 格式的字符串形式返回表。
TOJSON 以 JSON 格式的字符串形式返回表。
關(guān)系函數(shù)
此類別中的函數(shù)用于管理和利用表之間的關(guān)系。
屬于此類別的函數(shù)
函數(shù) 描述
CROSSFILTER 指定要用于計(jì)算兩列之間存在的關(guān)系的交叉篩選方向。
RELATED 從其他表返回相關(guān)值。
RELATEDTABLE 在給定篩選器修改的上下文中計(jì)算表表達(dá)式。
USERELATIONSHIP 指定要在特定計(jì)算中使用的關(guān)系,如 columnName1 與 columnName2 之間存在的關(guān)系。
統(tǒng)計(jì)函數(shù)
統(tǒng)計(jì)函數(shù)計(jì)算與統(tǒng)計(jì)分布和概率相關(guān)的值,如標(biāo)準(zhǔn)偏差和排列數(shù)。
屬于此類別的函數(shù)
函數(shù) 說明
BETA.DIST 返回 beta 分布。
BETA.INV 返回逆 beta 累積概率密度函數(shù) (BETA.DIST)。
CHISQ.DIST 返回卡方分步。
CHISQ.DIST.RT 返回卡方分布的右尾概率。
CHISQ.INV 返回卡方分布的左尾逆概率。
CHISQ.INV.RT 返回卡方分布的右尾逆概率。
COMBIN 返回給定項(xiàng)數(shù)的組合數(shù)。
COMBINA 返回給定項(xiàng)數(shù)的組合數(shù)(包含重復(fù))。
CONFIDENCE.NORM 置信區(qū)間是一個(gè)值范圍。
CONFIDENCE.T 使用學(xué)生的 t 分布返回總體平均值的置信區(qū)間。
EXPON.DIST 返回指數(shù)分布。
GEOMEAN 返回列中數(shù)字的幾何平均值。
GEOMEANX 返回針對表中的每一行計(jì)算的表達(dá)式的幾何平均值。
LINEST 使用最小二乘法計(jì)算最適合給定數(shù)據(jù)的直線。
LINESTX 使用最小二乘法計(jì)算最適合給定數(shù)據(jù)的直線。 針對表中每一行進(jìn)行計(jì)算的表達(dá)式的數(shù)據(jù)結(jié)果。
MEDIAN 返回列中數(shù)字的中值。
MEDIANX 返回針對表中的每一行計(jì)算的表達(dá)式的中值。
NORM.DIST 返回指定平均值和標(biāo)準(zhǔn)偏差的正態(tài)分布。
NORM.INV 指定平均值和標(biāo)準(zhǔn)偏差的逆正態(tài)累積分布。
NORM.S.DIST 返回標(biāo)準(zhǔn)正態(tài)分布(平均值為 0,標(biāo)準(zhǔn)偏差為 1)。
NORM.S.INV 返回逆標(biāo)準(zhǔn)正態(tài)累積分布。
PERCENTILE.EXC 返回范圍中值的第 k 個(gè)百分點(diǎn),其中 k 的范圍為 0 到 1(不含 0 和 1)。
PERCENTILE.INC 返回范圍中值的第 k 個(gè)百分點(diǎn),其中 k 的范圍為 0 到 1(含 0 和 1)。
PERCENTILEX.EXC 返回針對表中的每一行計(jì)算的表達(dá)式的百分位數(shù)。
PERCENTILEX.INC 返回針對表中的每一行計(jì)算的表達(dá)式的百分位數(shù)。
PERMUT 返回可從數(shù)字對象中選擇的給定數(shù)目對象的排列數(shù)。
POISSON.DIST 返回泊松分布。
RANK.EQ 返回某個(gè)數(shù)字在數(shù)字列表中的排名。
RANKX 針對 table 參數(shù)中每一行,返回某個(gè)數(shù)字在數(shù)字列表中的排名 。
SAMPLE 返回指定表中 N 行的樣本。
STDEV.P 返回整個(gè)總體的標(biāo)準(zhǔn)偏差。
STDEV.S 返回樣本總體的標(biāo)準(zhǔn)偏差。
STDEVX.P 返回整個(gè)總體的標(biāo)準(zhǔn)偏差。
STDEVX.S 返回樣本總體的標(biāo)準(zhǔn)偏差。
T.DIST 返回學(xué)生的左尾 t 分布。
T.DIST.2T 返回學(xué)生的雙尾 t 分布。
T.DIST.RT 返回學(xué)生的右尾 t 分布。
T.INV 返回學(xué)生的左尾逆 t 分布。
T.INV.2t 返回學(xué)生的雙尾逆 t 分布。
VAR.P 返回整個(gè)總體的方差。
VAR.S 返回樣本總體的方差。
VARX.P 返回整個(gè)總體的方差。
VARX.S 返回樣本總體的方差。
文本函數(shù)
數(shù)據(jù)分析表達(dá)式 (DAX) 包括一組文本函數(shù),這些函數(shù)基于 Excel 中的字符串函數(shù)庫,但已對其進(jìn)行了修改以與表格模型中的表和列一起使用。 本部分介紹 DAX 語言中提供的文本功能。
屬于此類別的函數(shù)
函數(shù) 說明
COMBINEVALUES 將兩個(gè)或更多個(gè)文本字符串聯(lián)接成一個(gè)文本字符串。
CONCATENATE 將兩個(gè)文本字符串聯(lián)接成一個(gè)文本字符串。
CONCATENATEX 連接為表中的每一行計(jì)算的表達(dá)式的結(jié)果。
EXACT 比較兩個(gè)文本字符串,如果它們完全相同,則返回 TRUE;否則返回 FALSE。
FIND 返回一個(gè)文本字符串在另一個(gè)文本字符串中的起始位置。
FIXED 將數(shù)值舍入到指定的小數(shù)位數(shù)并將結(jié)果返回為文本。
FORMAT 根據(jù)所指定的格式將值轉(zhuǎn)換為文本。
LEFT 從文本字符串開頭返回指定數(shù)量的字符。
LEN 返回文本字符串中的字符數(shù)。
LOWER 將文本字符串中的所有字母都轉(zhuǎn)換為小寫。
MID 在提供開始位置和長度的情況下,從文本字符串中間返回字符串。
REPLACE REPLACE 根據(jù)指定的字符數(shù),將部分文本字符串替換為不同的文本字符串。
REPT 按給定次數(shù)重復(fù)文本。
RIGHT RIGHT 根據(jù)指定的字符數(shù)返回文本字符串中的最后一個(gè)或幾個(gè)字符。
SEARCH 返回按從左向右的讀取順序首次找到特定字符或文本字符串的字符編號。
SUBSTITUTE 在文本字符串中將現(xiàn)有文本替換為新文本。
TRIM 刪除文本中除單詞之間的單個(gè)空格外的所有空格。
UNICHAR 返回由數(shù)值引用的 Unicode 字符。
UNICODE 返回與文本字符串的首個(gè)字符對應(yīng)的數(shù)字代碼。
UPPER 將文本字符串轉(zhuǎn)換為全大寫字母。
VALUE 將表示數(shù)值的文本字符串轉(zhuǎn)換為數(shù)值。
時(shí)間智能函數(shù)
數(shù)據(jù)分析表達(dá)式 (DAX) 還包括“時(shí)間智能函數(shù)”,這些時(shí)間智能函數(shù)通過使用時(shí)間段(包括日、月、季度和年)使您能夠?qū)?shù)據(jù)進(jìn)行操作,然后生成和比較針對這些時(shí)段的計(jì)算。
屬于此類別的函數(shù)
函數(shù) 說明
CLOSINGBALANCEMONTH 計(jì)算當(dāng)前上下文中該月最后一個(gè)日期的表達(dá)式。
CLOSINGBALANCEQUARTER 計(jì)算當(dāng)前上下文中該季度最后一個(gè)日期的表達(dá)式。
CLOSINGBALANCEYEAR 計(jì)算當(dāng)前上下文中該年份最后一個(gè)日期的表達(dá)式。
DATEADD 返回一個(gè)表,此表包含一列日期,日期從當(dāng)前上下文中的日期開始按指定的間隔數(shù)向未來推移或者向過去推移。
DATESBETWEEN 返回一個(gè)包含一列日期的表,這些日期以指定開始日期,一直持續(xù)到指定的結(jié)束日期。
DATESINPERIOD 返回一個(gè)表,此表包含一列日期,日期以指定的開始日期開始,并按照指定的日期間隔一直持續(xù)到指定的數(shù)字。
DATESMTD 返回一個(gè)表,此表包含當(dāng)前上下文中該月份至今的一列日期。
DATESQTD 返回一個(gè)表,此表包含當(dāng)前上下文中該季度至今的一列日期。
DATESYTD 返回一個(gè)表,此表包含當(dāng)前上下文中該年份至今的一列日期。
ENDOFMONTH 返回當(dāng)前上下文中指定日期列的月份的最后一個(gè)日期。
ENDOFQUARTER 為指定的日期列返回當(dāng)前上下文的季度最后一日。
ENDOFYEAR 返回當(dāng)前上下文中指定日期列的年份的最后一個(gè)日期。
FIRSTDATE 返回當(dāng)前上下文中指定日期列的第一個(gè)日期。
FIRSTNONBLANK 返回按當(dāng)前上下文篩選的 column 列中的第一個(gè)值,其中表達(dá)式不為空
LASTDATE 返回當(dāng)前上下文中指定日期列的最后一個(gè)日期。
LASTNONBLANK 返回按當(dāng)前上下文篩選的 column 列中的最后一個(gè)值,其中表達(dá)式不為空。
NEXTDAY 根據(jù)當(dāng)前上下文中的 dates 列中指定的第一個(gè)日期返回一個(gè)表,此表包含從第二天開始的所有日期的列。
NEXTMONTH 根據(jù)當(dāng)前上下文中的 dates 列中的第一個(gè)日期返回一個(gè)表,此表包含從下個(gè)月開始的所有日期的列。
NEXTQUARTER 根據(jù)當(dāng)前上下文中的 dates 列中指定的第一個(gè)日期返回一個(gè)表,其中包含下季度所有日期的列。
NEXTYEAR 根據(jù) dates 列中的第一個(gè)日期,返回一個(gè)表,表中的一列包含當(dāng)前上下文中明年的所有日期。
OPENINGBALANCEMONTH 計(jì)算當(dāng)前上下文中該月份第一個(gè)日期的表達(dá)式。
OPENINGBALANCEQUARTER 計(jì)算當(dāng)前上下文中該季度第一個(gè)日期的表達(dá)式。
OPENINGBALANCEYEAR 計(jì)算當(dāng)前上下文中該年份第一個(gè)日期的表達(dá)式。
PARALLELPERIOD 返回一個(gè)表,此表包含一列日期,表示與當(dāng)前上下文中指定的 dates 列中的日期平行的時(shí)間段,日期是按間隔數(shù)向未來推移或者向過去推移的。
PREVIOUSDAY 返回一個(gè)表,此表包含的某一列中所有日期所表示的日期均在當(dāng)前上下文的 dates 列中的第一個(gè)日期之前。
PREVIOUSMONTH 根據(jù)當(dāng)前上下文中的 dates 列中的第一個(gè)日期返回一個(gè)表,此表包含上一月份所有日期的列。
PREVIOUSQUARTER 根據(jù)當(dāng)前上下文中的 dates 列中的第一個(gè)日期返回一個(gè)表,此表包含上一季度所有日期的列。
PREVIOUSYEAR 基于當(dāng)前上下文中的“日期”列中的最后一個(gè)日期,返回一個(gè)表,該表包含上一年所有日期的列。
SAMEPERIODLASTYEAR 返回一個(gè)表,其中包含指定 dates 列中的日期在當(dāng)前上下文中前一年的日期列。
STARTOFMONTH 返回當(dāng)前上下文中指定日期列的月份的第一個(gè)日期。
STARTOFQUARTER 為指定的日期列返回當(dāng)前上下文中季度的第一個(gè)日期。
STARTOFYEAR 返回當(dāng)前上下文中指定日期列的年份的第一個(gè)日期。
TOTALMTD 計(jì)算當(dāng)前上下文中該月份至今的表達(dá)式的值。
TOTALQTD 計(jì)算當(dāng)前上下文中該季度至今的日期的表達(dá)式的值。
TOTALYTD 計(jì)算當(dāng)前上下文中表達(dá)式的 year-to-date 值。
表操作函數(shù)
屬于此類別的函數(shù)
函數(shù) 說明
ADDCOLUMNS 將計(jì)算列添加到給定的表或表表達(dá)式。
ADDMISSINGITEMS 向表添加多個(gè)列中的項(xiàng)組合(如果它們不存在)。
CROSSJOIN 返回一個(gè)表,其中包含參數(shù)中所有表的所有行的笛卡爾乘積。
CURRENTGROUP 從 GROUPBY 表達(dá)式的 table 參數(shù)中返回一組行。
DATATABLE 提供用于聲明內(nèi)聯(lián)數(shù)據(jù)值集的機(jī)制。
DETAILROWS 計(jì)算為度量值定義的詳細(xì)信息行表達(dá)式并返回?cái)?shù)據(jù)。
DISTINCT 列 返回由一列組成的表,其中包含與指定列不同的值。
DISTINCT 表 通過刪除另一個(gè)表或表達(dá)式中的重復(fù)行返回表。
EXCEPT 返回一個(gè)表的行,這些行未在另一個(gè)表中出現(xiàn)。
FILTERS 返回由直接作為篩選器應(yīng)用到 columnName 的值組成的表。
GENERATE 返回一個(gè)表,其中包含 table1 中的每一行與在 table1 的當(dāng)前行的上下文中計(jì)算 table2 所得表之間的笛卡爾乘積 。
GENERATEALL 返回一個(gè)表,其中包含 table1 中的每一行與在 table1 的當(dāng)前行的上下文中計(jì)算 table2 所得表之間的笛卡爾乘積 。
GENERATESERIES 返回包含算術(shù)序列值的單列表。
GROUPBY 與 SUMMARIZE 函數(shù)類似,GROUPBY 不會對它添加的任何擴(kuò)展列執(zhí)行隱式 CALCULATE。
IGNORE 通過省略 BLANK/NULL 計(jì)算中的特定表達(dá)式,修改 SUMMARIZECOLUMNS。
INTERSECT 返回兩個(gè)表的行交集,保留重復(fù)項(xiàng)。
NATURALINNERJOIN 執(zhí)行一個(gè)表與另一個(gè)表的內(nèi)部聯(lián)接。
NATURALLEFTOUTERJOIN 使用 RightTable 執(zhí)行與 LeftTable 的聯(lián)接。
ROLLUP 通過向由 groupBy_columnName 參數(shù)定義的列的結(jié)果添加匯總行,修改 SUMMARIZE 的行為。
ROLLUPADDISSUBTOTAL 通過向基于 groupBy_columnName 列的結(jié)果添加匯總行/小計(jì)行,修改 SUMMARIZECOLUMNS 的行為。
ROLLUPISSUBTOTAL 將匯總組與 ADDMISSINGITEMS 表達(dá)式內(nèi)的 ROLLUPADDISSUBTOTAL 添加的列進(jìn)行配對。
ROLLUPGROUP 通過向由 groupBy_columnName 參數(shù)定義的列的結(jié)果添加匯總行,修改 SUMMARIZE 和 SUMMARIZECOLUMNS 的行為。
ROW 返回一個(gè)具有單行的表,其中包含針對每一列計(jì)算表達(dá)式得出的值。
SELECTCOLUMNS 將計(jì)算列添加到給定的表或表表達(dá)式。
SUBSTITUTEWITHINDEX 返回表示作為參數(shù)提供的兩個(gè)表的左半聯(lián)接的表。
SUMMARIZE 返回一個(gè)摘要表,顯示對一組函數(shù)的請求總數(shù)。
SUMMARIZECOLUMNS 返回一組組的摘要表。
表構(gòu)造函數(shù) 返回包含一列或多列的表。
TOPN 返回指定表的前 N 行。
TREATAS 將表表達(dá)式的結(jié)果作為篩選器應(yīng)用于無關(guān)表中的列。
UNION 從一對表創(chuàng)建聯(lián)合(聯(lián)接)表。
VALUES 返回單列表,其中包含指定表或列中的非重復(fù)值。
變量
可以使用 VAR 在表達(dá)式中創(chuàng)建變量。 從技術(shù)上講,VAR 不是函數(shù),而是用于將表達(dá)式的結(jié)果存儲為命名變量的關(guān)鍵字。 然后,可以將該變量作為參數(shù)傳遞給其他度量值表達(dá)式。 例如:
VAR
TotalQty = SUM ( Sales[Quantity] )
Return
IF (
TotalQty > 1000,
TotalQty * 0.95,
TotalQty * 1.25
)
在本示例中,可以將 TotalQty 作為命名變量傳遞給其他表達(dá)式。 變量可以是任何標(biāo)量數(shù)據(jù)類型,包括表。 在 DAX 公式中使用變量的功能非常強(qiáng)大。
數(shù)據(jù)類型
您可以將數(shù)據(jù)從可能支持不同數(shù)據(jù)類型的眾多不同數(shù)據(jù)源導(dǎo)入到模型中。 將數(shù)據(jù)導(dǎo)入模型時(shí),數(shù)據(jù)將轉(zhuǎn)換為表格模型數(shù)據(jù)類型之一。 當(dāng)在計(jì)算中使用模型數(shù)據(jù)時(shí),數(shù)據(jù)則會因計(jì)算的持續(xù)時(shí)間和輸出而轉(zhuǎn)換為 DAX 數(shù)據(jù)類型。 當(dāng)您創(chuàng)建一個(gè) DAX 公式時(shí),該公式中使用的項(xiàng)將自動(dòng)確定返回的值數(shù)據(jù)類型。
DAX 支持以下數(shù)據(jù)類型:
模型中的數(shù)據(jù)類型 DAX 中的數(shù)據(jù)類型 描述
整數(shù) 一個(gè) 64 位(八字節(jié))整數(shù)值 1、2 沒有小數(shù)位的數(shù)字。 整數(shù)可以是正數(shù)或負(fù)數(shù),但必須是介于 -9,223,372,036,854,775,808 (-2^63) 和 9,223,372,036,854,775,807 (2^63-1) 之間的整數(shù)。
十進(jìn)制數(shù) 一個(gè) 64 位(八字節(jié))實(shí)數(shù) 1、2 實(shí)數(shù)是可具有小數(shù)位的數(shù)字。 實(shí)數(shù)涵蓋很廣范圍的值:
從 -1.79E +308 到 -2.23E -308 的負(fù)值
零
從 2.23E -308 到 1.79E + 308 的正值
但是,有效位數(shù)限制為 17 個(gè)小數(shù)位。
布爾 布爾 True 或 False 值。
文本 String 一個(gè) Unicode 字符數(shù)據(jù)字符串。 可以是字符串,或以文本格式表示的數(shù)字或日期。
日期 日期/時(shí)間 采用接受的日期-時(shí)間表示形式的日期和時(shí)間。
有效值是 1900 年 3 月 1 日后的所有日期。
貨幣 貨幣 貨幣數(shù)據(jù)類型允許值介于 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 之間,并且具有四個(gè)小數(shù)位的固定精度。
空值 空白 空白是 DAX 中的一種數(shù)據(jù)類型,表示并替代 SQL 中的 Null。 您可以通過使用 BLANK 函數(shù)創(chuàng)建空白,并通過使用邏輯函數(shù) ISBLANK 測試是否存在空白。
表格數(shù)據(jù)模型還包括表數(shù)據(jù)類型,作為許多 DAX 函數(shù)的輸入或輸出。 例如,F(xiàn)ILTER 函數(shù)采用表作為輸入,并輸出僅包含滿足篩選條件的行的另一個(gè)表。 通過組合表函數(shù)與聚合函數(shù),您可以對動(dòng)態(tài)定義的數(shù)據(jù)集執(zhí)行復(fù)雜計(jì)算。
盡管數(shù)據(jù)類型通常都是自動(dòng)設(shè)置的,但還是需要了解數(shù)據(jù)類型,尤其是它們?nèi)绾螒?yīng)用到 DAX 公式,這一點(diǎn)非常重要。 舉例來說,公式中的錯(cuò)誤或是意外結(jié)果通常都是因?yàn)閷?shù)中指定的數(shù)據(jù)類型使用了不該使用的特定運(yùn)算符而導(dǎo)致的。 例如,公式 = 1 & 2返回結(jié)果為 12 的字符串。 但是公式 = “1” + "2"返回的結(jié)果為整數(shù) 3。
上下文
上下文是在創(chuàng)建 DAX 公式時(shí)需要了解的重要概念。 您可以通過上下文執(zhí)行動(dòng)態(tài)分析,因?yàn)楣降慕Y(jié)果會發(fā)生更改以反映當(dāng)前行或單元選擇以及任何相關(guān)數(shù)據(jù)。 了解上下文并有效使用上下文對構(gòu)建高性能的動(dòng)態(tài)分析和解決公式中的問題至關(guān)重要。
可以在不同的上下文中計(jì)算表格模型中的公式,這取決于其他設(shè)計(jì)元素:
數(shù)據(jù)透視表或報(bào)表中應(yīng)用的篩選器
公式中定義的篩選器
使用公式中的特殊函數(shù)指定的關(guān)系
有許多類型的上下文:“行上下文” 、“查詢上下文” 和“篩選上下文”。
行上下文
可以將行上下文視為“當(dāng)前行”。 如果您在計(jì)算列中創(chuàng)建某一公式,則該公式的“行上下文”將包括來自當(dāng)前行中所有列的值。 如果該表與其他表相關(guān),則上下文還包括來自另一個(gè)表中與當(dāng)前行相關(guān)的所有值。
例如,假設(shè)創(chuàng)建將同一表中的兩列(Freight 和 Tax)的值相加的計(jì)算列 = [Freight] + [Tax]。 此公式僅自動(dòng)獲取指定列中當(dāng)前行的值。
行上下文還會依照已定義的表之間的任何關(guān)系(包括使用 DAX 公式在計(jì)算列中定義的關(guān)系)來確定相關(guān)表中與當(dāng)前行關(guān)聯(lián)的行。
例如,下面的公式使用 RELATED 函數(shù)根據(jù)訂單的發(fā)貨目的地從相關(guān)表提取稅金值。 通過使用當(dāng)前表中的區(qū)域值,在相關(guān)表中查找該區(qū)域,然后從相關(guān)表中獲取該區(qū)域的稅率,從而確定稅金值。
= [Freight] + RELATED('Region'[TaxRate])
此公式從 Region 表中獲取當(dāng)前區(qū)域的稅率,并將其與 Freight 列中的值相加。 在 DAX 公式中,您無需了解或指定連接各表的特定關(guān)系。
多行上下文
DAX 包括對表執(zhí)行迭代計(jì)算的函數(shù)。 這些函數(shù)可以具有多個(gè)當(dāng)前行,其中每個(gè)行都有自己的行上下文。 實(shí)際上,可以利用這些函數(shù)創(chuàng)建用于以遞歸方式對內(nèi)部和外部循環(huán)進(jìn)行操作的公式。
例如,假設(shè)您的模型包含一個(gè) Products 表和一個(gè) Sales 表。 用戶可能想要遍歷整個(gè) Sales 表,該表中全都是涉及多個(gè)產(chǎn)品的交易,并且您還要找到在任何一個(gè)交易中為每個(gè)產(chǎn)品訂購的最大數(shù)量。
使用 DAX,您可以生成返回正確值的單個(gè)公式,并且只要用戶向表中添加數(shù)據(jù),結(jié)果就自動(dòng)更新。
= MAXX(FILTER(Sales,[ProdKey] = EARLIER([ProdKey])),Sales[OrderQty])
有關(guān)此公式的詳細(xì)示例,請參閱 EARLIER。
總之,該 EARLIER 函數(shù)存儲來自當(dāng)前運(yùn)算之前的運(yùn)算中的行上下文。 在任何時(shí)候,該函數(shù)都在內(nèi)存中存儲兩組上下文:一組上下文表示公式的內(nèi)部循環(huán)的當(dāng)前行,另一組上下文表示公式的外部循環(huán)的當(dāng)前行。 DAX 自動(dòng)在兩個(gè)循環(huán)之間饋送值,以便您可以創(chuàng)建復(fù)雜的聚合。
查詢上下文
“查詢上下文”是指為公式隱式檢索的數(shù)據(jù)子集。 例如,當(dāng)用戶將度量值或字段放入報(bào)表時(shí),引擎將檢查行標(biāo)題、列標(biāo)題、切片器和報(bào)表篩選器,以確定上下文。 然后,對模型數(shù)據(jù)運(yùn)行必要的查詢以獲取正確的數(shù)據(jù)子集,進(jìn)行公式定義的計(jì)算,接著在報(bào)表中填充值。
由于上下文會根據(jù)放置公式的位置而更改,因此公式的結(jié)果也會更改。 例如,假設(shè)你創(chuàng)建一個(gè)對“銷售”表“利潤”列中的值求和的公式:= SUM(‘Sales’[Profit]) 。 如果在“銷售”表中的計(jì)算列中使用此公式,則該公式的結(jié)果對于整個(gè)表將是相同的,因?yàn)楣降牟樵兩舷挛氖冀K是“銷售”表的整個(gè)數(shù)據(jù)集 。 結(jié)果將包含所有區(qū)域、所有產(chǎn)品、所有年份等的利潤。
但是,用戶通常不希望看到數(shù)百次相同的結(jié)果,而是希望獲得特定年份、特定國家/地區(qū)、特定產(chǎn)品或這些條件任意組合下的利潤,然后獲取總計(jì)。
在報(bào)表中,通過篩選、添加或刪除字段以及使用切片器來更改上下文。 對于每個(gè)更改,為將在其中計(jì)算度量值的查詢上下文。 因此,對于每個(gè)單元,在不同的“查詢上下文”中計(jì)算在度量值中使用的相同公式。
篩選器上下文
“篩選上下文”是指每個(gè)列中允許存在的一組值,或可屬于從相關(guān)表中檢索到的值的一組值。 可以對設(shè)計(jì)器或表示層(報(bào)表和數(shù)據(jù)透視表)中的列應(yīng)用篩選器。 也可以通過公式中的篩選表達(dá)式來顯式定義篩選器。
通過在公式中使用參數(shù),為列或表中允許存在的值集指定篩選約束時(shí),將添加“篩選上下文”。 基于其他上下文(如行上下文或查詢上下文)應(yīng)用篩選上下文。
在表格模型中,可通過多種方式來創(chuàng)建篩選上下文。 在可使用該模型的客戶端的上下文(如 Power BI 報(bào)表)中,用戶可以通過在行標(biāo)題和列標(biāo)題上添加切片器或報(bào)表篩選器來動(dòng)態(tài)創(chuàng)建篩選器。 還可以在公式中直接指定篩選表達(dá)式來執(zhí)行以下操作:指定相關(guān)的值、篩選用作輸入的表或動(dòng)態(tài)獲取計(jì)算中使用的值的上下文。 您還可以完全清除或有選擇地清除特定列上的篩選器。 這在創(chuàng)建用于計(jì)算總計(jì)的公式時(shí)很有用。
確定公式中的上下文
在創(chuàng)建一個(gè) DAX 公式時(shí),首先會測試該公式的語法是否有效,然后測試該公式以確保其包含的列和表的名稱位于當(dāng)前上下文中。 如果找不到該公式指定的任一列或表,則將返回錯(cuò)誤。
如前所述,通過使用模型中的可用表、表之間的所有關(guān)系和所應(yīng)用的所有篩選器來確定驗(yàn)證(和重新計(jì)算操作)期間的上下文。
例如,如果剛剛將一些數(shù)據(jù)導(dǎo)入到一個(gè)新表中,而該表未與任何其他表關(guān)聯(lián)(并且尚未應(yīng)用任何篩選器),則當(dāng)前上下文是表中的完整列集。 如果通過關(guān)系將該表與其他表鏈接,則當(dāng)前上下文將包括相關(guān)的表。 如果將該表中的某個(gè)列添加到一個(gè)報(bào)表中,該報(bào)表具有切片器并且可能具有一些報(bào)表篩選器,則公式的上下文是報(bào)表的每個(gè)單元中的數(shù)據(jù)子集。
上下文是一個(gè)很有用的概念,但也可能導(dǎo)致很難排除公式問題。 我們建議您從簡單的公式和關(guān)系入手,了解上下文的工作原理。 下一節(jié)提供了一些示例,說明公式如何使用不同類型的上下文來動(dòng)態(tài)返回結(jié)果。
運(yùn)算符
DAX 語言在公式中使用四種不同類型的運(yùn)算符:
對值進(jìn)行比較,并返回一個(gè)邏輯 TRUE\FALSE 值的比較運(yùn)算符。
執(zhí)行返回?cái)?shù)值的算術(shù)運(yùn)算的算術(shù)運(yùn)算符。
聯(lián)接兩個(gè)或更多文本字符串的文本連接運(yùn)算符。
將兩個(gè)或更多表達(dá)式組合起來以返回單個(gè)結(jié)果的邏輯運(yùn)算符。
使用表和列
表格數(shù)據(jù)模型中的表與 Excel 表類似,但在處理數(shù)據(jù)和公式的方式上有所不同:
公式只使用表和列,而不使用各個(gè)單元格、范圍引用或數(shù)組。
公式可以使用關(guān)系從相關(guān)表中獲取值。 檢索到的值始終與當(dāng)前行值相關(guān)。
您不能像在 Excel 工作表中一樣使用不規(guī)則或“不齊整”的數(shù)據(jù)。 表中每行所包含的列數(shù)必須相同。 然而,一些列中可以包含空值。 Excel 數(shù)據(jù)表和表格模型數(shù)據(jù)表不能互換。
由于為每列都設(shè)置了數(shù)據(jù)類型,該列中的每個(gè)值必須同屬一種類型。
在公式中引用表和列
可以通過名稱來引用任何表和列。 例如,下面的公式說明如何通過使用“完全限定”的名稱來引用兩個(gè)表中的列:
= SUM('New Sales'[Amount]) + SUM('Past Sales'[Amount])
計(jì)算公式時(shí),模型設(shè)計(jì)器首先檢查常規(guī)語法,然后根據(jù)當(dāng)前上下文中的可能列和表檢查所提供的列和表的名稱。 如果名稱不明確或者列或表無法找到,則您將收到有關(guān)公式的錯(cuò)誤(在發(fā)生錯(cuò)誤的單元格中,用 #ERROR 字符串代替數(shù)據(jù)值)。 要詳細(xì)了解表、列和其他對象的命名要求,請參閱 DAX 語法中的命名要求。
表關(guān)系
通過在表之間創(chuàng)建關(guān)系,可以在計(jì)算中使用其他表中的相關(guān)值。 例如,可以使用計(jì)算列來確定與當(dāng)前經(jīng)銷商相關(guān)的所有裝運(yùn)記錄,然后對每個(gè)記錄的裝運(yùn)成本求和。 但在許多情況下,關(guān)系可能沒有必要。 可以在公式中使用 LOOKUPVALUE 函數(shù),以在 result_columnName 中返回符合 search_column 和 search_value 參數(shù)中指定條件的行的值。
很多 DAX 函數(shù)都要求兩個(gè)表或多個(gè)表之間存在關(guān)系,以便定位所引用的列并返回有意義的結(jié)果。 其他函數(shù)將嘗試確定關(guān)系;但是,為獲得最佳結(jié)果,您始終應(yīng)盡量創(chuàng)建關(guān)系。 表格數(shù)據(jù)模型支持表之間的多個(gè)關(guān)系。 為避免混淆或不正確的結(jié)果,一次只將一個(gè)關(guān)系指定為活躍關(guān)系,但可以根據(jù)需要更改活躍關(guān)系以便在計(jì)算中遍歷數(shù)據(jù)中的不同連接。 可使用 USERELATIONSHIP 函數(shù)指定一個(gè)或多個(gè)要在特定計(jì)算中使用的關(guān)系。
使用關(guān)系時(shí),必須遵守以下公式設(shè)計(jì)規(guī)則:
當(dāng)表通過關(guān)系進(jìn)行連接時(shí),必須確保用作鍵的兩列具有匹配的值。 不會強(qiáng)制實(shí)施引用完整性,因此可以在鍵列中具有不匹配的值并仍創(chuàng)建關(guān)系。 如果發(fā)生這種情況,您應(yīng)注意空值或不匹配值可能會影響公式的結(jié)果。
使用關(guān)系在模型中鏈接表時(shí),可以擴(kuò)大公式的計(jì)算范圍(或“上下文”)。 因添加新表、新關(guān)系或因活動(dòng)關(guān)系改變而引起的上下文變化可能會導(dǎo)致結(jié)果發(fā)生意外變化。 有關(guān)詳細(xì)信息,請參閱本文中的上下文。
處理和刷新
處理和重新計(jì)算是兩個(gè)獨(dú)立但相關(guān)的運(yùn)算。 在設(shè)計(jì)包含復(fù)雜公式、大量數(shù)據(jù)或從外部數(shù)據(jù)源獲取的數(shù)據(jù)的模型時(shí),應(yīng)充分了解這些概念。
處理(刷新)使用外部數(shù)據(jù)源中的新數(shù)據(jù)更新模型中的數(shù)據(jù)。
“重新計(jì)算”是對公式結(jié)果進(jìn)行更新的過程,用于反映對公式本身的任何更改以及基礎(chǔ)數(shù)據(jù)中的更改。 重新計(jì)算會以下列方式影響性能:
對計(jì)算列中的值進(jìn)行計(jì)算并存儲在模型中。 若要更新計(jì)算列中的值,必須使用以下三個(gè)處理命令之一處理該模型 —“處理全部”、“處理數(shù)據(jù)”或“處理重新計(jì)算”。 每當(dāng)您更改公式時(shí),必須始終針對整個(gè)列重新計(jì)算公式的結(jié)果。
每當(dāng)用戶向數(shù)據(jù)透視表添加度量值或打開報(bào)表時(shí),都會動(dòng)態(tài)計(jì)算度量值計(jì)算的值;當(dāng)用戶修改上下文時(shí),度量值返回的值將更改。 度量值的結(jié)果將始終反映內(nèi)存中緩存中的最新內(nèi)容。
處理和重新計(jì)算對行級別安全性公式?jīng)]有影響,除非重新計(jì)算的結(jié)果返回不同的值,從而確定行是否可由角色成員查詢。
更新
DAX 處于持續(xù)改進(jìn)中。 新函數(shù)和已更新的函數(shù)隨下一次發(fā)布更新一起發(fā)布,通常每月一次。 首先更新服務(wù),然后更新已安裝的應(yīng)用程序,如 Power BI Desktop、Excel、SQL Server Management Studio (SSMS) 和 Visual Studio Analysis Services 項(xiàng)目擴(kuò)展 (SSDT)。 SQL Server Analysis Services 隨下一次累積更新一起更新。 與 Power BI Desktop 更新一致,新函數(shù)將首先在 DAX 函數(shù)引用中進(jìn)行公布和說明。
并非所有函數(shù)都在早期版本的 SQL Server Analysis Services 和 Excel 中受支持。
疑難解答
如果在定義公式時(shí)遇到錯(cuò)誤,公式可能會包含“語法錯(cuò)誤” 、“語義錯(cuò)誤” 或“計(jì)算錯(cuò)誤”。
語法錯(cuò)誤最容易解決。 它們通常涉及缺少括號或逗號。
當(dāng)語法正確,但引用的值或列在公式的上下文中沒有意義時(shí),會發(fā)生另一種類型的錯(cuò)誤。 此類語義和計(jì)算錯(cuò)誤可能是由于下列任何問題導(dǎo)致的:文章來源:http://www.zghlxwxcb.cn/news/detail-479105.html
公式中引用不存在的列、表或函數(shù)。 公式似乎正確,但在數(shù)據(jù)引擎提取數(shù)據(jù)時(shí),它會發(fā)現(xiàn)類型不匹配,并引發(fā)錯(cuò)誤。 公式將數(shù)量或類型不正確的參數(shù)傳遞給函數(shù)。 公式中引用有錯(cuò)誤的其他列,因此它的值無效。 公式會引用尚未處理的列,這意味著,它有元數(shù)據(jù),但沒有用于計(jì)算的實(shí)際數(shù)據(jù)。
在前四種情況中,DAX 標(biāo)記包含無效公式的整個(gè)列。 在最后一種情況中,DAX 會灰顯該列,以便指示該列處于未處理的狀態(tài)中。文章來源地址http://www.zghlxwxcb.cn/news/detail-479105.html
到了這里,關(guān)于Microsoft Power Platform 基礎(chǔ)到實(shí)戰(zhàn)(3)-Power BI (1)-數(shù)據(jù)分析表達(dá)式 DAX(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!