คลังสูตรExcel 80 · DAX 95 · M 15
หน้าแรก › DAX สำหรับ Power BI

95 ฟังก์ชัน · รวมโมเดล ความสัมพันธ์ และฟังก์ชันตาราง

DAX สำหรับ Power BI

ทุกหน้ามีรายงานตัวอย่างที่คลิกได้ ผังโมเดลที่ให้เห็นตัวกรองไหลจนเป็นตัวเลข สูตร Excel ที่ได้คำตอบเดียวกัน แบบทดสอบ และไฟล์ฝึกที่ตรวจคำตอบเอง

3 เรื่องที่ DAX ต่างจาก Excel

ไม่มีช่อง มีแต่คอลัมน์และตาราง

Excel อ้าง F5:F14 แต่ DAX อ้าง 'ยอดขาย'[จำนวน] ทั้งคอลัมน์ ไม่มีการลากสูตร

Measure คำนวณใหม่ทุกช่อง

Measure เดียวใช้ได้ทุกแถวของรายงาน เพราะคำนวณใหม่ตามตัวกรองของแต่ละช่อง

ตัวกรองมาจากรายงาน

เงื่อนไขแบบ SUMIFS มาจากแถว คอลัมน์ และ Slicer แล้วไหลผ่านความสัมพันธ์ไปถึงตารางยอดขาย CALCULATE ใช้เปลี่ยนตัวกรองนั้น

สรุปค่า (Aggregation)

SUMรวมตัวเลขทุกค่าในคอลัมน์ ตามแถวที่เหลือหลังตัวกรองของรายงานพื้นฐานแบบ 1 · ใช้ได้เหมือนกันAVERAGEหาค่าเฉลี่ยของตัวเลขในคอลัมน์ ค่าว่าง (BLANK) ไม่ถูกนับ แต่ 0 ถูกนับพื้นฐานแบบ 1 · ใช้ได้เหมือนกันMINหาค่าน้อยที่สุดในคอลัมน์ ใช้กับตัวเลขและวันที่ เช่น วันที่สั่งซื้อครั้งแรกพื้นฐานแบบ 1 · ใช้ได้เหมือนกันMAXหาค่ามากที่สุดในคอลัมน์ ใช้กับตัวเลขและวันที่ เช่น วันที่สั่งซื้อล่าสุดพื้นฐานแบบ 1 · ใช้ได้เหมือนกันCOUNTROWSนับจำนวนแถวของตาราง ตามแถวที่เหลือหลังตัวกรอง ใช้นับจำนวนคำสั่งซื้อหรือจำนวนรายการพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันDISTINCTCOUNTนับจำนวนค่าที่ไม่ซ้ำในคอลัมน์ เช่น จำนวนลูกค้าที่สั่งซื้อพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันSUMXคำนวณสูตรทีละแถวของตาราง แล้วรวมผลของทุกแถว ใช้เมื่อค่าที่ต้องการรวมยังไม่มีเป็นคอลัมน์พื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันAVERAGEXคำนวณสูตรทีละแถวของตาราง แล้วหาค่าเฉลี่ยของผลลัพธ์ เช่น ยอดเฉลี่ยต่อคำสั่งซื้อกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันMAXXคำนวณนิพจน์ทีละแถวของตาราง แล้วหาค่ามากที่สุด ข้ามค่าว่าง เช่น มูลค่าคำสั่งซื้อที่ใหญ่ที่สุด หรือยอดของสินค้าขายดีที่สุดพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันMINXคำนวณนิพจน์ทีละแถวของตาราง แล้วหาค่าน้อยที่สุด ข้ามค่าว่าง เช่น มูลค่าคำสั่งซื้อที่เล็กที่สุดพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันCOUNTXนับแถวที่นิพจน์ได้ค่าที่ไม่ว่าง (ตัวเลข วันที่ หรือข้อความ) ใช้นับตามเงื่อนไขที่ต้องคำนวณ เช่น คำสั่งซื้อที่มีส่วนลดพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันMEDIANหาค่ามัธยฐาน (ค่ากลางเมื่อเรียงลำดับ) ของตัวเลขในคอลัมน์ ไม่ถูกดึงด้วยค่าที่สูงหรือต่ำผิดปกติเหมือนค่าเฉลี่ยพื้นฐานแบบ 1 · ใช้ได้เหมือนกันMEDIANXคำนวณนิพจน์ทีละแถวของตาราง แล้วหาค่ามัธยฐาน เช่น มูลค่าคำสั่งซื้อที่อยู่ตรงกลางกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันPERCENTILEX.INCคำนวณนิพจน์ทีละแถวของตาราง แล้วหาค่าเปอร์เซ็นไทล์ที่ k (0 ถึง 1 รวมปลาย) เช่น P90 ของมูลค่าคำสั่งซื้อกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันCOUNTนับแถวที่คอลัมน์มีค่า (ตัวเลข วันที่ หรือข้อความ) ข้ามค่าว่าง ไม่มีค่าให้นับได้ค่าว่างใหม่พื้นฐานแบบ 2 · ชื่อเดียวกัน ทำงานต่างกันCOUNTAนับแถวที่คอลัมน์ไม่ว่าง ทุกชนิดข้อมูลรวมถึง TRUE/FALSE ไม่มีค่าให้นับได้ค่าว่างใหม่พื้นฐานแบบ 1 · ใช้ได้เหมือนกันCOUNTBLANKนับแถวที่คอลัมน์ว่าง ไม่นับ 0 ถ้ามีแถวแต่ไม่มีค่าว่างได้ 0 ถ้าไม่มีแถวเลยได้ค่าว่างใหม่พื้นฐานแบบ 2 · ชื่อเดียวกัน ทำงานต่างกัน

คณิตศาสตร์

ตรรกะและตัวแปร

IFตรวจเงื่อนไข แล้วให้ค่าหนึ่งเมื่อจริง อีกค่าหนึ่งเมื่อเท็จ ถ้าไม่ใส่ค่าเมื่อเท็จจะได้ค่าว่างพื้นฐานแบบ 1 · ใช้ได้เหมือนกันSWITCHเทียบค่ากับรายการตัวเลือกแล้วคืนผลของตัวที่ตรง ใช้ SWITCH(TRUE(), …) เพื่อตรวจหลายเงื่อนไขตามลำดับแทน IF ซ้อนกลางแบบ 1 · ใช้ได้เหมือนกันVARตั้งชื่อให้ค่าระหว่างคำนวณด้วย VAR แล้วใช้ใน RETURN ทำให้สูตรอ่านง่าย และคำนวณค่านั้นครั้งเดียวกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันCOALESCEคืนค่าแรกที่ไม่ว่างจากรายการที่ให้ ใช้แทนค่าว่างด้วย 0 หรือค่าสำรองในสูตรสั้นกว่า IF กับ ISBLANKพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันANDได้ TRUE เมื่อทั้งสองเงื่อนไขเป็นจริง รับได้สองเงื่อนไขเท่านั้น ถ้ามีมากกว่านั้นใช้ตัวดำเนินการ &&พื้นฐานแบบ 1 · ใช้ได้เหมือนกันORได้ TRUE เมื่อเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง รับได้สองเงื่อนไขเท่านั้น ถ้ามีมากกว่านั้นใช้ตัวดำเนินการ ||พื้นฐานแบบ 1 · ใช้ได้เหมือนกันBLANKคืนค่าว่าง (BLANK) ใช้ซ่อนตัวเลขที่ไม่ต้องการแสดง แถวที่ทุก Measure ว่าง Power BI จะไม่แสดงแถวนั้นพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันIFERRORคืนค่าสำรองเมื่อนิพจน์เกิด Error มีใน DAX แต่ Microsoft แนะนำให้ป้องกัน Error ด้วยวิธีอื่น เช่น DIVIDE หรือ alternateResultใหม่กลางแบบ 2 · ชื่อเดียวกัน ทำงานต่างกันNOTกลับค่าตรรกะ TRUE เป็น FALSE และ FALSE เป็น TRUE ใช้เขียนเงื่อนไขกลับด้าน เช่น ยังไม่ถึงเป้า หรือ มียอดขายใหม่พื้นฐานแบบ 1 · ใช้ได้เหมือนกัน

ตัวกรอง (Filter)

CALCULATEคำนวณสูตรภายใต้ตัวกรองที่เพิ่ม เปลี่ยน หรือเอาออกจากตัวกรองของรายงาน เป็นฟังก์ชันที่ใช้มากที่สุดใน DAXกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันFILTERคืนตารางที่มีเฉพาะแถวที่ตรงเงื่อนไข ใช้เป็นตัวกรองใน CALCULATE หรือส่งให้ฟังก์ชันที่รับตาราง เช่น COUNTROWSกลางแบบ 2 · ชื่อเดียวกัน ทำงานต่างกันALLคืนตารางหรือคอลัมน์โดยไม่สนตัวกรอง ใช้ใน CALCULATE เพื่อเอาตัวกรองออก เช่น หายอดรวมทุกภาคเพื่อคิดสัดส่วนกลางแบบ 5 · มีเฉพาะใน DAXREMOVEFILTERSเอาตัวกรองออกจากตารางหรือคอลัมน์ ใช้เป็นตัวปรับตัวกรองใน CALCULATE หรือ CALCULATETABLE ใช้เป็นตารางไม่ได้ ชื่อบอกความหมายตรงกว่า ALLกลางแบบ 5 · มีเฉพาะใน DAXALLSELECTEDเอาตัวกรองจากแถวและคอลัมน์ของ visual ออก แต่เก็บสิ่งที่ผู้ใช้เลือกใน Slicer ไว้ ใช้คิดสัดส่วนต่อยอดรวมที่เห็นใน visualกลางแบบ 5 · มีเฉพาะใน DAXALLEXCEPTเอาตัวกรองทุกคอลัมน์ของตารางออก ยกเว้นคอลัมน์ที่ระบุ เช่น เอาตัวกรองเดือนออกแต่เก็บตัวกรองปีไว้กลางแบบ 5 · มีเฉพาะใน DAXKEEPFILTERSครอบตัวกรองใน CALCULATE ให้ใช้ร่วมกับตัวกรองเดิม (ต้องผ่านทั้งคู่) แทนการแทนที่ตัวกรองเดิมบนคอลัมน์เดียวกันกลางแบบ 5 · มีเฉพาะใน DAX

ความสัมพันธ์

RELATEDดึงค่าจากตารางที่เชื่อมอยู่ฝั่งหนึ่ง (one) มาใช้ในแถวของตารางฝั่งหลาย (many) เช่น ดึงต้นทุนต่อหน่วยจากตารางสินค้าพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันLOOKUPVALUEหาค่าในคอลัมน์ผลลัพธ์จากแถวที่ตรงกับเงื่อนไขค้นหา ใช้กับตารางที่ไม่มีความสัมพันธ์ เช่น ตารางเป้าที่ทีมวางแผนพิมพ์มากลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันRELATEDTABLEคืนแถวของตารางฝั่งหลาย (many) ที่เชื่อมกับแถวปัจจุบันของตารางฝั่งหนึ่ง เช่น คำสั่งซื้อทั้งหมดของสินค้าในแถวนั้นกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันUSERELATIONSHIPเปิดใช้ความสัมพันธ์ที่ปิดไว้ในโมเดลเฉพาะใน CALCULATE เช่น นับยอดตามวันที่ส่งแทนวันที่สั่งซื้อกลางแบบ 5 · มีเฉพาะใน DAXCROSSFILTERกำหนดทิศทางการกรองของความสัมพันธ์เฉพาะใน CALCULATE เช่น ให้ยอดขายกรองกลับไปที่ตารางสินค้า เพื่อนับสินค้าที่ขายได้กลางแบบ 5 · มีเฉพาะใน DAXTREATASใช้ค่าในตารางหนึ่งเป็นตัวกรองของคอลัมน์ในโมเดล เหมือนมีความสัมพันธ์ชั่วคราว ใช้กับตารางที่ไม่ได้เชื่อม หรือรายการค่าที่พิมพ์เองกลางแบบ 5 · มีเฉพาะใน DAX

ข้อมูลตัวกรอง

SELECTEDVALUEคืนค่าของคอลัมน์เมื่อตัวกรองเหลือค่าเดียว ถ้าเหลือหลายค่าหรือไม่มีเลยจะคืนค่าที่กำหนด ใช้ทำหัวข้อรายงานที่เปลี่ยนตาม Slicerกลางแบบ 6 · ไม่มีใน Excel ใช้วิธีอื่นแทนHASONEVALUEตรวจว่าคอลัมน์ถูกกรองจนเหลือค่าเดียวหรือไม่ ได้ TRUE หรือ FALSE ใช้แยกแถวรายละเอียดออกจากแถวยอดรวมกลางแบบ 6 · ไม่มีใน Excel ใช้วิธีอื่นแทนISBLANKตรวจว่าค่าเป็นค่าว่าง (BLANK) หรือไม่ ได้ TRUE หรือ FALSE ใช้แทนค่าว่างด้วย 0 หรือข้อความพื้นฐานแบบ 2 · ชื่อเดียวกัน ทำงานต่างกันISFILTEREDตรวจว่ามีตัวกรองโดยตรงบนคอลัมน์หรือตารางนั้นหรือไม่ ได้ TRUE หรือ FALSE ใช้เปลี่ยนสิ่งที่แสดงตามสิ่งที่ผู้ใช้เลือกกลางแบบ 6 · ไม่มีใน Excel ใช้วิธีอื่นแทนISINSCOPEตรวจว่าคอลัมน์นั้นเป็นระดับที่ visual กำลังจัดกลุ่มอยู่หรือไม่ ได้ TRUE ในแถวของคอลัมน์นั้น และ FALSE ในแถวยอดรวมกลางแบบ 6 · ไม่มีใน Excel ใช้วิธีอื่นแทนISCROSSFILTEREDตรวจว่าคอลัมน์หรือตารางถูกกรองหรือไม่ นับทั้งตัวกรองโดยตรงและตัวกรองที่ไหลมาจากตารางอื่นตามความสัมพันธ์กลางแบบ 6 · ไม่มีใน Excel ใช้วิธีอื่นแทนHASONEFILTERตรวจว่าคอลัมน์ถูกกรองโดยตรงเหลือค่าเดียวหรือไม่ ต่างจาก HASONEVALUE ที่นับค่าที่เหลือหลังตัวกรองจากตารางอื่นด้วยกลางแบบ 6 · ไม่มีใน Excel ใช้วิธีอื่นแทน

ข้อความ

ฟังก์ชันตาราง (Table)

VALUESคืนตารางค่าไม่ซ้ำของคอลัมน์ตามตัวกรองปัจจุบัน ใช้นับค่า ส่งให้ฟังก์ชันที่ไล่ทีละแถว หรือใช้เป็นตัวกรองพื้นฐานแบบ 2 · ชื่อเดียวกัน ทำงานต่างกันDISTINCTคืนตารางค่าไม่ซ้ำของคอลัมน์ตามตัวกรองปัจจุบัน ต่างจาก VALUES ตรงที่ไม่เพิ่มแถวว่างจากรหัสที่หาไม่เจอพื้นฐานแบบ 2 · ชื่อเดียวกัน ทำงานต่างกันSUMMARIZECOLUMNSสร้างตารางสรุปจัดกลุ่มตามคอลัมน์ พร้อมคอลัมน์ที่คำนวณ ตัดกลุ่มที่ทุกค่าว่างออก ใช้ต่อในฟังก์ชันที่ไล่ทีละแถว เช่น ยอดเฉลี่ยต่อเดือนกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันADDCOLUMNSเพิ่มคอลัมน์ที่คำนวณให้ตาราง แล้วใช้ต่อในฟังก์ชันที่ไล่ทีละแถว เช่น หายอดของเดือนที่ขายดีที่สุดกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันCALCULATETABLEคืนตารางที่คำนวณในตัวกรองที่เปลี่ยนแล้ว ทำงานเหมือน CALCULATE แต่ได้ตาราง ใช้สร้างรายการที่ต้องการ เช่น ลูกค้าที่เคยซื้อ Onlineกลางแบบ 5 · มีเฉพาะใน DAXINTERSECTคืนแถวของตารางแรกที่มีอยู่ในตารางที่สองด้วย เทียบตามลำดับคอลัมน์ ใช้หาลูกค้าที่ซื้อทั้งสองช่วงเวลา (ลูกค้าที่กลับมาซื้อ)กลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันEXCEPTคืนแถวของตารางแรกที่ไม่มีในตารางที่สอง เทียบตามลำดับคอลัมน์ ใช้หาลูกค้าใหม่ หรือลูกค้าที่หายไปกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันGENERATESERIESสร้างตารางตัวเลขหนึ่งคอลัมน์ชื่อ Value ตั้งแต่ค่าเริ่มถึงค่าสุดท้ายตามระยะห่าง ใช้ทำ what-if เช่น ลองส่วนลด 0% ถึง 30%กลางแบบ 2 · ชื่อเดียวกัน ทำงานต่างกันSUMMARIZEจัดกลุ่มแถวของตารางตามคอลัมน์ที่ระบุ ใช้คอลัมน์จากตารางที่เชื่อมอยู่ได้ ได้ตารางหนึ่งแถวต่อกลุ่มไว้ใช้ต่อในสูตรกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันSELECTCOLUMNSสร้างตารางใหม่ที่มีเฉพาะคอลัมน์ที่ตั้งชื่อ จำนวนแถวเท่าตารางต้นทาง ใช้คำนวณค่าของแต่ละแถวแล้วส่งต่อให้ฟังก์ชันอื่นกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันUNIONต่อแถวของสองตารางขึ้นไปเป็นตารางเดียว เทียบคอลัมน์ตามลำดับ เก็บแถวซ้ำไว้ ใช้รวมรายชื่อจากสองช่วงเวลากลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันCROSSJOINจับคู่ทุกแถวของตารางหนึ่งกับทุกแถวของอีกตาราง (Cartesian product) ใช้สร้างทุกคู่ที่เป็นไปได้ แล้วหาคู่ที่ยังไม่มียอดกลางแบบ 6 · ไม่มีใน Excel ใช้วิธีอื่นแทน

วันที่ (Date)

CALENDARสร้างตารางวันที่หนึ่งคอลัมน์ชื่อ Date ตั้งแต่วันเริ่มถึงวันสิ้นสุด ครบทุกวัน ใช้สร้างตาราง Date ของโมเดลกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันDATEสร้างวันที่จากปี เดือน และวัน ใช้กำหนดช่วงวันที่ในเงื่อนไข เช่น ยอดขายตั้งแต่ 1 ก.ค. 2025พื้นฐานแบบ 1 · ใช้ได้เหมือนกันEOMONTHหาวันสุดท้ายของเดือน นับจากวันที่ที่ให้ไปข้างหน้าหรือถอยหลังตามจำนวนเดือนที่กำหนดพื้นฐานแบบ 1 · ใช้ได้เหมือนกันDATEDIFFนับจำนวนขอบของหน่วยเวลา (วัน เดือน ปี …) ที่ข้ามระหว่างสองวันที่ ได้ค่าติดลบเมื่อวันแรกอยู่หลังวันที่สองกลางแบบ 2 · ชื่อเดียวกัน ทำงานต่างกันFIRSTDATEคืนวันที่แรกในตัวกรองปัจจุบัน เป็นตารางหนึ่งแถวที่ใช้เป็นวันที่ได้ และใช้เป็นตัวกรองใน CALCULATE ได้ เช่น ยอดขายของวันแรกพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันLASTDATEคืนวันที่สุดท้ายในตัวกรองปัจจุบัน เป็นตารางหนึ่งแถวที่ใช้เป็นวันที่ได้ และใช้เป็นตัวกรองใน CALCULATE ได้ เช่น ยอดขายของวันล่าสุดพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันSTARTOFMONTHคืนวันที่ 1 ของเดือนในตัวกรองปัจจุบัน เป็นตารางหนึ่งแถวที่ใช้เป็นวันที่ได้ เช่น นับวันจากต้นเดือนถึงวันขายแรกพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันENDOFMONTHคืนวันสุดท้ายของเดือนในตัวกรองปัจจุบัน เป็นตารางหนึ่งแถวที่ใช้เป็นวันที่ได้ เช่น หาจำนวนวันในเดือนเพื่อคิดยอดเฉลี่ยต่อวันพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันSTARTOFYEARคืนวันแรกของปีในตัวกรองปัจจุบัน เป็นตารางหนึ่งแถวที่ใช้เป็นวันที่ได้ เช่น นับวันที่ผ่านไปตั้งแต่ต้นปีใหม่พื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันENDOFYEARคืนวันสุดท้ายของปีในตัวกรองปัจจุบัน ใช้หาวันที่เหลือในปีและยอดที่ต้องทำต่อวันเพื่อให้ถึงเป้าใหม่พื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชัน

เทียบช่วงเวลา (Time Intelligence)

TOTALYTDคำนวณค่าสะสมตั้งแต่ต้นปีถึงวันสุดท้ายของช่วงที่กรองอยู่ เช่น ยอดขายสะสม ม.ค. ถึงเดือนในแถวกลางแบบ 5 · มีเฉพาะใน DAXDATESYTDคืนตารางวันที่ตั้งแต่ 1 ม.ค. ถึงวันสุดท้ายของช่วงที่กรองอยู่ ใช้เป็นตัวกรองใน CALCULATE เพื่อทำยอดสะสมกลางแบบ 5 · มีเฉพาะใน DAXSAMEPERIODLASTYEARคืนตารางวันที่ของช่วงเดียวกันในปีก่อน ใช้ใน CALCULATE เพื่อหายอดปีก่อนและอัตราเติบโตกลางแบบ 5 · มีเฉพาะใน DAXDATEADDคืนตารางวันที่ที่เลื่อนไปข้างหน้าหรือถอยหลังตามจำนวนวัน เดือน ไตรมาส หรือปี ใช้หายอดเดือนก่อนหรือไตรมาสก่อนกลางแบบ 5 · มีเฉพาะใน DAXTOTALQTDคำนวณค่าสะสมตั้งแต่ต้นไตรมาสถึงวันสุดท้ายของช่วงที่กรอง เช่น ยอดขายสะสมในไตรมาสของเดือนในแถวกลางแบบ 5 · มีเฉพาะใน DAXDATESINPERIODคืนตารางวันที่ย้อนหลังหรือไปข้างหน้าจากวันที่กำหนด ตามจำนวนวัน เดือน ไตรมาส หรือปี ใช้ทำยอดย้อนหลัง 3 เดือน (rolling)กลางแบบ 5 · มีเฉพาะใน DAXDATESBETWEENคืนตารางวันที่ตั้งแต่วันเริ่มถึงวันสิ้นสุด (รวมทั้งสองวัน) ใส่ค่าว่างที่วันเริ่มเพื่อเริ่มจากวันแรกของตาราง ใช้ทำยอดสะสมตั้งแต่เริ่มขายกลางแบบ 5 · มีเฉพาะใน DAXPREVIOUSMONTHคืนวันที่ทุกวันของเดือนก่อนหน้า โดยดูจากวันแรกของช่วงที่กรอง ใช้หายอดเดือนก่อนแบบเต็มเดือนพื้นฐานแบบ 5 · มีเฉพาะใน DAXPARALLELPERIODเลื่อนช่วงวันที่ตามจำนวนเดือน ไตรมาส หรือปี แล้วขยายเป็นช่วงเต็มของหน่วยนั้น เช่น ทุกเดือนของปี 2025 ได้ปี 2024 ทั้งปีกลางแบบ 5 · มีเฉพาะใน DAXTOTALMTDคำนวณค่าสะสมตั้งแต่วันที่ 1 ของเดือนถึงวันสุดท้ายของช่วงที่กรอง เช่น ยอดขายสะสมในเดือนถึงวันที่ในแถวพื้นฐานแบบ 5 · มีเฉพาะใน DAXDATESMTDคืนตารางวันที่ตั้งแต่วันที่ 1 ของเดือนถึงวันสุดท้ายในตัวกรอง ใช้เป็นตัวกรองใน CALCULATE หรือนับจำนวนวันที่ผ่านไปกลางแบบ 5 · มีเฉพาะใน DAXPREVIOUSYEARคืนวันที่ทุกวันของปีก่อนหน้า โดยดูจากวันแรกในตัวกรอง ใช้หายอดทั้งปีก่อนมาเทียบกับยอดของเดือนหรือปีปัจจุบันพื้นฐานแบบ 5 · มีเฉพาะใน DAXCLOSINGBALANCEMONTHคำนวณนิพจน์ที่วันสุดท้ายของเดือนในตัวกรอง ใช้กับยอดคงเหลือ เช่น สต็อกหรือยอดเงิน ที่ห้ามรวมทุกวันใหม่กลางแบบ 5 · มีเฉพาะใน DAXOPENINGBALANCEMONTHคำนวณนิพจน์ที่วันสิ้นเดือนก่อนหน้า (ยอดยกมาต้นเดือน) ใช้คู่กับ CLOSINGBALANCEMONTH เพื่อหายอดเปลี่ยนในเดือนใหม่กลางแบบ 5 · มีเฉพาะใน DAXNEXTMONTHคืนวันที่ทุกวันของเดือนถัดไป โดยดูจากวันสุดท้ายในตัวกรอง ใช้หายอดเดือนถัดไปมาเทียบ เช่น ยอดจองเดือนหน้าใหม่พื้นฐานแบบ 5 · มีเฉพาะใน DAX

จัดอันดับ (Ranking)

ฟังก์ชันหน้าต่าง (Window)

OFFSETคืนแถวที่อยู่ก่อนหรือหลังแถวปัจจุบันตามจำนวนที่กำหนด ภายในตารางที่เรียงลำดับแล้ว ใช้หายอดเดือนก่อนในตารางโดยไม่ต้องใช้ฟังก์ชันเวลาใหม่กลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันWINDOWคืนแถวหลายแถวในช่วงที่กำหนดรอบแถวปัจจุบัน หรือนับจากต้นกลุ่ม ใช้ทำยอดสะสมและค่าเฉลี่ยเคลื่อนที่ใหม่สูงแบบ 6 · ไม่มีใน Excel ใช้วิธีอื่นแทนINDEXคืนแถวที่ตำแหน่งที่กำหนดในตารางที่เรียงลำดับแล้ว เช่น แถวแรก แถวสุดท้าย หรือเดือนที่ขายดีที่สุดใหม่กลางแบบ 2 · ชื่อเดียวกัน ทำงานต่างกันRANKคืนอันดับของแถวปัจจุบันในตารางที่เรียงตาม ORDERBY เลือกได้ว่าค่าเสมอกันให้ข้ามอันดับ (SKIP) หรือไม่ข้าม (DENSE)ใหม่กลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันROWNUMBERคืนเลขลำดับที่ไม่ซ้ำกันของแถวปัจจุบันตาม ORDERBY ถ้าค่าเสมอกันจะใช้คอลัมน์อื่นใน relation ตัดสินให้ลำดับไม่ซ้ำใหม่กลางแบบ 6 · ไม่มีใน Excel ใช้วิธีอื่นแทน

6 แบบของการย้ายจาก Excel มา DAX

ทุกหน้ามีป้ายบอกว่าฟังก์ชันนั้นอยู่แบบไหน

1ใช้ได้เหมือนกัน

ชื่อเดียวกัน ย้ายความรู้ไปได้เลย เช่น SUM, ROUND, IF

2ชื่อเดียวกัน ทำงานต่างกัน

ชื่อเหมือนแต่ทำงานต่าง ระวังเป็นพิเศษ เช่น FILTER

3แนวคิดเดียวกัน คนละฟังก์ชัน

แนวคิดเดิม เขียนใหม่ เช่น SUMIFS เป็น CALCULATE

4ควรทำใน Power Query

งานเตรียมข้อมูล เช่น TEXTSPLIT ทำใน Power Query

5มีเฉพาะใน DAX

ความสามารถที่ Excel ทำได้ยาก เช่น ALL สำหรับสัดส่วน

6ไม่มีใน Excel ใช้วิธีอื่นแทน

ไม่มีคู่ตรงตัว ใช้วิธีอื่น เช่น SELECTEDVALUE