Thep Excel

DAX functions for Power BI and Power Pivot

Filter DAX Functions

40 functions found

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) เพื่อควบคุมการคำนวณได้อย่างแม่นยำ

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 ปี

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)

EARLIER คืนค่าของคอลัมน์ที่ถูกอ้างอิงในการประมวลผล Row Context ที่อยู่ "ก่อนหน้า" (Outer Row Context) มีประโยชน์ในการคำนวณที่ต้องเปรียบเทียบค่าของแถวปัจจุบันกับค่าของแถวก่อนหน้าในการวนลูป

HASONEVALUE คืนค่า TRUE หากคอลัมน์ที่ระบุใน Filter Context ปัจจุบันมีเพียงค่าที่ไม่ซ้ำกันเพียงค่าเดียว หากมีหลายค่า, ไม่มีค่า, หรือมีค่า BLANK จะคืนค่า FALSE

KEEPFILTERS เป็น Filter Modifier ที่ใช้ภายใน CALCULATE เพื่อระบุว่าตัวกรองใหม่ที่เพิ่มเข้าไป ควรถูกรวม (Intersect) กับตัวกรองที่มีอยู่เดิม แทนที่จะไปเขียนทับตัวกรองเดิม