資料型別
整數 Integer
十進位制數 Decimal
日期時間DateTime
布林值Boolean
文字String
//這三個我沒用過
貨幣 Currency
變體Variant
二進位制Binary
運算子
( ) 優先計算 ,函式的括號,元組
+ 日期型別也可直接加, date(2024,1,1)+1 = date(2024,1,2)
−
*
/
=
<> dax裡面沒 != , 只能用這個,或者 前面加 not
>
>=
<
<=
& 字串拼接的 , 和excel一樣
&& [CountryRegion] = "USA" && [Quantity]>0
|| [CountryRegion] = "USA" || [Quantity]>0
IN 注意用花括號 ,[CountryRegion] IN {"USA", "Canada"}
NOT NOT [Quantity] > 0 && not [CountryRegion] IN {"USA", "Canada"}
dax建立新表
{
( "A", 10, 1.5, DATE ( 2017, 1, 1 ), CURRENCY ( 199.99 ), TRUE ),
( "B", 20, 2.5, DATE ( 2017, 1, 2 ), CURRENCY ( 249.99 ), FALSE ),
( "C", 30, 3.5, DATE ( 2017, 1, 3 ), CURRENCY ( 299.99 ), FALSE )
}
計算列和度量值
計算列
計算列是新增到模型中的新列 , 類似excel ,每次載入模型的時候計算(有點耗記憶體) ,不參與篩選 可以理解為以下SQL
select a ,b, a+b as c
from table
其中c就是計算列 , 在使用模型的時候和其他列非計算列一模一樣
度量值
可以稱之為一組資料集的聚合,只能是一個值,這個值根據不同的篩選條件生成不同結果,可以理解為以下SQL:
select sum(a)
from table
where b>1
其中 where條件是可以實時變化的,然後生成不同的結果
變數
只需要兩個關鍵字 VAR RETURN , 必須同時出現
比如下面計算同比:
var a = sum([1])
var b = calculate(sum(1),peryear([date]))
return divide(a-b,b)
使用變數使可讀性增強
常用函式
聚合函式 SUM、AVERAGE、MIN 和 MAX
邏輯函式 AND、FALSE、IF、IFERROR、NOT、TRUE 和 OR
資訊函式 ISBLANK、ISERROR、ISLOGICAL、ISNONTEXT、ISNUMBER 和 ISTEXT
數學函式 INT ,FLOOR,TRUNC
三角函式 COS、COSH、COT、COTH、SIN、SINH、TAN
文字函式 RIGHT, LEFT LEN, LOWER FIND , FORMAT
轉換函式 FORMAT ( DATE ( 2019, 01, 12 ), "yyyy mmm dd" )
日期和時間函式 DAY ( Calendar[Date] ) MONTH YEAR