ALL มี 2 พฤติกรรม: (1) Table Function – คืนตารางจริงที่มีแถวทั้งหมด ใช้ใน FILTER/COUNTROWS (2) CALCULATE Modifier – ลบตัวกรองออกจาก Filter Context ไม่ได้คืนตาราง ใช้คำนวณ Grand Total และ % สัดส่วน แนะนำใช้ REMOVEFILTERS แทนเพื่อความชัดเจน
DAX functions for Power BI and Power Pivot
ALL มี 2 พฤติกรรม: (1) Table Function – คืนตารางจริงที่มีแถวทั้งหมด ใช้ใน FILTER/COUNTROWS (2) CALCULATE Modifier – ลบตัวกรองออกจาก Filter Context ไม่ได้คืนตาราง ใช้คำนวณ Grand Total และ % สัดส่วน แนะนำใช้ REMOVEFILTERS แทนเพื่อความชัดเจน
ALLEXCEPT มี 2 พฤติกรรม: (1) Table Function – คืนตารางจริงที่มีทุกแถวแต่ยังคง Filter บางคอลัมน์ (2) CALCULATE Modifier – ลบ Filter ทั้งหมดยกเว้นคอลัมน์ที่ระบุ ใช้คำนวณ Sub-total ตาม Dimension เฉพาะ เทียบเท่า ALL(Table) + VALUES(Column) แต่สั้นกว่า
ALLNOBLANKROW มี 2 พฤติกรรม: (1) Table Function – คืนตารางจริงที่มีทุกแถวแต่ตัด Blank Row ออก (2) CALCULATE Modifier – ลบ Filter ทั้งหมดและตัด Blank Row เหมาะใช้เมื่อมี Data Quality Issues ในความสัมพันธ์ เทียบเท่า ALL แต่เพิ่มเงื่อนไข ISBLANK = FALSE
ALLSELECTED มี 2 พฤติกรรม: (1) Table Function – คืนตารางจริงตาม Shadow Filter Context (Slicer/Page Filter) (2) CALCULATE Modifier – ลบ Filter ภายใน Visual แต่คง Filter จากภายนอก เหมาะคำนวณ Visual Total และ % สัดส่วนใน Visual ไม่มี REMOVEFILTERS เวอร์ชันที่ทำงานเหมือน ALLSELECTED
BLANK คืนค่าว่างเปล่า (Empty Value) ซึ่งแตกต่างจาก 0 หรือ " " โดยใช้สำหรับระบุว่าไม่มีค่าใดๆ หรือเป็นส่วนหนึ่งของการจัดการข้อผิดพลาดและเงื่อนไขการแสดงผล
ฟังก์ชันที่สำคัญที่สุดใน DAX ใช้ประเมิน Expression ภายใต้ Filter Context ที่ถูกปรับเปลี่ยน เข้าใจลึกซึ้งเรื่อง Context Transition, Filter Arguments (Table vs Boolean), และลำดับการประเมินผล (Order of Evaluation) เพื่อควบคุมการคำนวณได้อย่างแม่นยำ
ฝาแฝดของ CALCULATE ที่คืนค่าเป็น 'ตาราง' ใช้ประเมิน Table Expression ภายใต้ Filter Context ที่ถูกปรับเปลี่ยน รองรับ Context Transition และ Filter Modifiers ทุกประการ
CALENDAR สร้างตารางที่มีคอลัมน์ Date เพียงคอลัมน์เดียว โดยประกอบด้วยวันที่ต่อเนื่องกันตั้งแต่วันเริ่มต้น (StartDate) ถึงวันสิ้นสุด (EndDate) ใช้สำหรับสร้าง Dimension Table สำหรับเรื่องเวลา
CALENDARAUTO สร้างตารางที่มีคอลัมน์ Date โดยอัตโนมัติ โดยอ้างอิงจากช่วงวันที่ Min/Max ของคอลัมน์ Date ทั้งหมดใน Data Model (ยกเว้น Calculated Column) โดยจะเริ่มที่ 1 ม.ค. ของปีแรก และจบที่ 31 ธ.ค. ของปีสุดท้ายเสมอ
CONCATENATEX วนลูปในตารางเพื่อนำผลลัพธ์ของ Expression ในแต่ละแถวมาเชื่อมต่อกันเป็นข้อความเดียว สามารถกำหนดตัวคั่น (Delimiter) และเรียงลำดับผลลัพธ์ก่อนเชื่อมได้
CROSSJOIN สร้างตารางใหม่โดยการรวมแถวทั้งหมดจากตารางที่ระบุ โดยสร้างทุก Combination ที่เป็นไปได้ (ทุกแถวจากตารางแรกจับคู่กับทุกแถวจากตารางที่สอง) ผลลัพธ์คือตารางที่มีจำนวนแถวเท่ากับผลคูณของจำนวนแถวของแต่ละตาราง
DATEADD คืนค่าตารางวันที่ ที่ถูกเลื่อนออกไปจากช่วงวันที่ใน Context ปัจจุบัน ตามจำนวน (NumberOfIntervals) และหน่วย (Interval) ที่กำหนด เช่น เลื่อนย้อนหลัง 1 เดือน หรือเลื่อนไปข้างหน้า 1 ปี
DATESBETWEEN คืนค่าตารางวันที่ ที่อยู่ระหว่าง StartDate และ EndDate ที่กำหนด (รวมวันเริ่มและวันจบด้วย)
DATESINPERIOD คืนค่าตารางวันที่ในช่วงเวลาที่กำหนด โดยเริ่มจาก StartDate และขยายไปตาม NumberOfIntervals (ไปข้างหน้าหรือย้อนหลัง) นิยมใช้ทำ Moving Average หรือ Rolling Sum
DATESMTD คืนค่าตารางวันที่คอลัมน์เดียว ซึ่งประกอบด้วยวันที่ตั้งแต่วันที่ 1 ของเดือนนั้นๆ จนถึงวันที่ล่าสุดใน Context ปัจจุบัน
DATESQTD คืนค่าตารางวันที่คอลัมน์เดียว ซึ่งประกอบด้วยวันที่ตั้งแต่วันที่ 1 ของไตรมาสนั้นๆ จนถึงวันที่ล่าสุดใน Context ปัจจุบัน
DATESYTD คืนค่าตารางวันที่คอลัมน์เดียว ซึ่งประกอบด้วยวันที่ตั้งแต่วันที่ 1 มกราคม ของปีนั้นๆ จนถึงวันที่ล่าสุดใน Context ปัจจุบัน (Year-to-Date intervals) นิยมใช้เป็น Filter ใน CALCULATE
DISTINCT คืนค่าตารางที่มีคอลัมน์เดียว (หรือทั้งตาราง) ซึ่งประกอบด้วยค่าที่ไม่ซ้ำกันจากคอลัมน์ที่ระบุ โดยไม่รวม Blank Row ที่เกิดจาก Referencial Integrity Violation (Invalid Relationship)
DISTINCTCOUNT นับจำนวนค่าที่ไม่ซ้ำกันในคอลัมน์ที่ระบุ โดยนับรวมค่า BLANK ด้วย (หากมี)
EARLIER คืนค่าของคอลัมน์ที่ถูกอ้างอิงในการประมวลผล Row Context ที่อยู่ "ก่อนหน้า" (Outer Row Context) มีประโยชน์ในการคำนวณที่ต้องเปรียบเทียบค่าของแถวปัจจุบันกับค่าของแถวก่อนหน้าในการวนลูป
HASONEVALUE คืนค่า TRUE หากคอลัมน์ที่ระบุใน Filter Context ปัจจุบันมีเพียงค่าที่ไม่ซ้ำกันเพียงค่าเดียว หากมีหลายค่า, ไม่มีค่า, หรือมีค่า BLANK จะคืนค่า FALSE
KEEPFILTERS เป็น Filter Modifier ที่ใช้ภายใน CALCULATE เพื่อระบุว่าตัวกรองใหม่ที่เพิ่มเข้าไป ควรถูกรวม (Intersect) กับตัวกรองที่มีอยู่เดิม แทนที่จะไปเขียนทับตัวกรองเดิม
LEFT คืนค่าตัวอักษรจำนวนหนึ่งจากจุดเริ่มต้นของข้อความ (ด้านซ้าย) ตามจำนวนที่ระบุ
LOOKUPVALUE คืนค่า Scalar จาก Result_ColumnName โดยการค้นหาค่า Match_Value ใน Search_ColumnName นิยมใช้เมื่อไม่มี Relationship ระหว่างตาราง หรือเมื่อต้องค้นหาค่าจากหลายคอลัมน์