| ฟังก์ชัน | ใช้ทำอะไร | มีตั้งแต่ | นิยม | ยาก | ประโยชน์ |
|---|---|---|---|---|---|
| CURRENTGROUP Table manipulation | CURRENTGROUP()
CURRENTGROUP คืนตารางย่อยของกลุ่มปัจจุบันและใช้ได้เฉพาะภายใน GROUPBY ช่วยให้คำนวณค่าที่อิงแถวภายในกลุ่มได้ เช่น SUMX/COUNTROWS/ MAXX ของกลุ่มนั้น
|
4 | 5 | 4 | |
| STDEVX.S Statistical | STDEVX.S(<table>, <expression>)
STDEVX.S วนลูปแต่ละแถวของตารางแล้วคำนวณส่วนเบี่ยงเบนมาตรฐานแบบตัวอย่าง เหมาะสำหรับชุดข้อมูลที่ต้องการประเมินความกระจายจากค่าในแต่ละแถวหรือ expression ที่คำนวณต่อแถว
|
4 | 5 | 4 | |
| SELECTEDMEASURE Information | SELECTEDMEASURE()
SELECTEDMEASURE() คืนค่าของ Measure ต้นทางที่กำลังถูกประมวลผลอยู่ในบริบท Calculation Group ช่วยให้สร้าง Calculation Item ที่ยืดหยุ่น สามารถนำไปใช้งานกับหลาย Measure พร้อมกันได้อย่างมีประสิทธิภาพ
|
4 | 5 | 5 | |
| PREVIOUSDAY Time Intelligence | PREVIOUSDAY(<dates>)
PREVIOUSDAY คืนตารางวันที่ของวันก่อนหน้า ตามบริบทวันที่ปัจจุบัน เหมาะสำหรับทำตัวชี้วัดแบบเทียบวันต่อวัน โดยนำตารางวันที่ไปใช้เป็นตัวกรองเวลา
|
4 | 3 | 4 | |
| SAMPLE Statistical | SAMPLE(<Size>, <Table>, <OrderBy>, [<Order>])
SAMPLE ส่งกลับตัวอย่างข้อมูลที่เลือกอย่างสม่ำเสมอจากตาราง โดยเลือกแถวแบบกระจายไปทั่วตามลำดับที่ระบุ ผลลัพธ์คงที่ (Deterministic) เมื่อเรียกด้วยอาร์กิวเมนต์เดียวกัน ใช้สำหรับสร้างตัวอย่างข้อมูลเพื่อการวิเคราะห์หรือ Reporting โดยได้ตัวแทนข้อมูลจริงอย่างดี
|
4 | 5 | 4 | |
| PARTITIONBY Filter | PARTITIONBY(<Column>[, <Column>])
PARTITIONBY ระบุคอลัมน์ที่ใช้แบ่งกลุ่มสำหรับ window functions เพื่อให้การเลื่อน/เลือกตำแหน่งเกิดขึ้น “ภายในกลุ่ม” ตามที่กำหนด มักใช้ร่วมกับ ORDERBY และ MATCHBY
|
4 | 5 | 4 | |
| FIXED Text | FIXED(<number>[, <decimals>[, <no_commas>]])
FIXED แปลงตัวเลขเป็นข้อความ พร้อมกำหนดจำนวนทศนิยม และเลือกใส่/ไม่ใส่ตัวคั่นหลักพัน เหมาะกับการแสดงผลแบบรูปแบบคงที่
|
4 | 3 | 4 | |
| EXACT Text | EXACT(<Text1>, <Text2>)
EXACT เปรียบเทียบ Text1 กับ Text2 แบบตรงตัวและคำนึงถึงตัวพิมพ์เล็ก/ใหญ่ คืน TRUE เมื่อเหมือนกันทุกตัวอักษร เหมาะกับงานตรวจรหัส/ข้อความที่ต้องแยก case
|
4 | 2 | 4 | |
| CURRENCY Math and Trig | CURRENCY(<value>)
CURRENCY แปลงค่าตัวเลขให้เป็นชนิด Currency โดยเก็บเลขทศนิยมเพียง 4 ตำแหน่ง เหมาะสำหรับการคำนวณค่าเงินที่ต้องความแม่นยำในการปัดเศษ
|
4 | 3 | 4 | |
| NATURALLEFTOUTERJOIN Table manipulation | NATURALLEFTOUTERJOIN(<LeftTable>, <RightTable>)
NATURALLEFTOUTERJOIN ทำ left outer join ระหว่าง LeftTable และ RightTable โดยใช้คอลัมน์ชื่อเดียวกันเป็นคีย์ เก็บทุกแถวของตารางซ้ายไว้ทั้งหมด และเติมคอลัมน์จากตารางขวาเมื่อจับคู่ได้ (ไม่จับคู่จะเป็น BLANK)
|
4 | 5 | 4 | |
| EARLIEST Other | EARLIEST(<column>)
EARLIEST ดึงค่าคอลัมน์จาก row context ชั้นนอกสุดเมื่อสูตรสร้าง row context ซ้อน (เช่น FILTER, RANKX, SUMX ในคอลัมน์คำนวณ) ทำให้ยังเข้าถึงค่าดั้งเดิมของแถวที่กำลังประเมินได้แม้จะเข้าสู่บริบทใหม่
|
4 | 4 | 4 | |
| ALLNOBLANKROW Filter | ALLNOBLANKROW(<table_or_column>)
ALLNOBLANKROW ทำงานคล้าย ALL แต่มีจุดเด่นคือ “ตัดแถวว่าง” ที่ระบบสร้างขึ้นอัตโนมัติเมื่อข้อมูลหลุดความสัมพันธ์ เช่น คีย์ในตารางข้อเท็จจริงไม่พบในตารางมิติ จึงเหมาะกับการคำนวณยอดรวม/สัดส่วนที่ไม่ต้องการให้แถวว่างเข้ามาปนผลลัพธ์ และยังใช้เป็นตัวช่วยตรวจจับปัญหาคุณภาพข้อมูลในโมเดลได้ด้วย
|
4 | 5 | 4 | |
| EARLIER Other | EARLIER(<Column>[, <Number>])
EARLIER คืนค่าของคอลัมน์ใน Row Context ชั้นนอก (Outer Row Context) เพื่อให้คอลัมน์คำนวณสามารถอ้างอิงค่า “ของแถวปัจจุบัน” ระหว่างการวนซ้อน (เช่น FILTER ภายใน Calculated Column) ได้
|
4 | 4 | 4 | |
| WINDOW Filter | WINDOW(<From>[, <FromType>], <To>[, <ToType>][, <Relation>][, <OrderBy>][, <Blanks>][, <PartitionBy>][, <MatchBy>][, <Reset>])
WINDOW ดึงช่วงแถวภายในพาร์ทิชัน คืนค่าเป็นตาราง เหมาะกับการคำนวณแบบช่วง เช่น moving average, running sum, หรือ lead/lag analysis
|
4 | 6 | 5 | |
| OPENINGBALANCEQUARTER Time Intelligence | OPENINGBALANCEQUARTER(<Expression>, <Dates>)
OPENINGBALANCEQUARTER ประเมิน Expression ณ วันที่เทียบเท่ากับวันสิ้นไตรมาสก่อนหน้า ภายใต้บริบทตัวกรองที่กำหนด ใช้เพื่อหา “ค่าเปิดงวดรายไตรมาส”
|
4 | 5 | 4 | |
| NATURALINNERJOIN Table manipulation | NATURALINNERJOIN(<LeftTable>, <RightTable>)
NATURALINNERJOIN ทำ inner join ระหว่าง LeftTable และ RightTable โดยใช้คอลัมน์ชื่อเดียวกันเป็นคีย์การจับคู่ คืนผลลัพธ์เฉพาะแถวที่จับคู่ได้ทั้งสองตาราง และมักใช้ร่วมกับ SELECTCOLUMNS เพื่อจัดชื่อคอลัมน์ให้ตรงกัน
|
4 | 5 | 4 | |
| PERCENTILEX.INC Statistical | PERCENTILEX.INC(<Table>, <Expression>, <K>)
PERCENTILEX.INC คำนวณเปอร์เซนไทล์ของค่าที่คำนวณจากการประเมินนิพจน์ในแต่ละแถว โดยใช้วิธี Inclusive ซึ่งจะไม่นับรวมค่า BLANK ต่างจาก PERCENTILEX.EXC ที่รวม BLANK หากข้อมูลมีค่า BLANK มากจะส่งผลต่อผลลัพธ์ ใช้เพื่อหา Percentile Rank เช่น Top 25% ของลูกค้าตามยอดขาย
|
4 | 5 | 4 | |
| CLOSINGBALANCEQUARTER Time Intelligence | CLOSINGBALANCEQUARTER(<Expression>, <Dates>[, <Filter>])
CLOSINGBALANCEQUARTER ประเมิน Expression ณ วันสิ้นไตรมาสของบริบทวันที่ปัจจุบัน เหมาะกับมาตรวัดยอดคงเหลือปลายไตรมาส และรองรับตัวกรองเพิ่มเติม
|
4 | 5 | 4 | |
| EXTERNALMEASURE Other | EXTERNALMEASURE(value) as value
EXTERNALMEASURE ใช้สำหรับการวิเคราะห์ข้อมูล DAX
|
4 | 4 | 4 | |
| PRODUCT Aggregation | PRODUCT(column)
PRODUCT คูณค่าทั้งหมดในคอลัมน์ (ละเว้น BLANK และข้อความ) ใช้เมื่อจำเป็นต้องคูณค่าแบบรวม เช่น คูณอัตราเติบโตหรือสัดส่วนที่ต้องรวมผลคูณ
|
4 | 3 | 4 | |
| CONTAINSSTRINGEXACT Information | CONTAINSSTRINGEXACT(value) as value
CONTAINSSTRINGEXACT ใช้สำหรับการวิเคราะห์ข้อมูล DAX
|
4 | 3 | 4 | |
| ALLCROSSFILTERED Filter | ALLCROSSFILTERED(<table>)
ALLCROSSFILTERED ใช้ล้างตัวกรองทั้งหมดออกจากตารางที่ระบุ รวมถึงตัวกรองที่ส่งผ่านมาจากตารางอื่น (Cross-filter) ใช้ได้เฉพาะเป็น Modifier ใน CALCULATE/CALCULATETABLE เท่านั้น ไม่สามารถคืนค่าเป็นตารางได้
|
4 | 6 | 4 | |
| GENERATEALL Table manipulation | GENERATEALL(<table1>, <table2>)
GENERATEALL วนแถวของตาราง 1 แล้วสร้าง Cartesian product กับผลลัพธ์ของตาราง 2 โดยคงแถวที่ไม่มีข้อมูลย่อย ต่างจาก GENERATE ตรงที่ไม่ตัดแถวหลักออก
|
4 | 6 | 4 | |
| PREVIOUS Visual calculations | PREVIOUS(<Column>, [<Steps>], [<Axis>], [<OrderBy>], [<Blanks>], [<Reset>])
PREVIOUS ดึงค่าจากแถวก่อนหน้า (Previous Row) บนแกน (Axis) ที่ระบุในการคำนวณภาพ (Visual Calculations) ส่งกลับค่าที่มีการเลื่อนตำแหน่ง (Offset) ระบุจำนวนแถวที่ต้องการเลื่อนหลัง โดยค่าเริ่มต้นเป็น 1 ใช้สำหรับเปรียบเทียบค่า ปัจจุบันกับค่าก่อนหน้า
|
4 | 5 | 4 | |
| MINA Aggregation | MINA(column)
MINA คืนค่าน้อยสุดโดยพิจารณา TRUE เป็น 1, FALSE/BLANK เป็น 0 และข้ามข้อความที่ไม่ใช่ตัวเลข ใช้กับคอลัมน์ที่มีตัวเลขและค่าตรรกะปนกันเพื่อหาค่าน้อยสุดอย่างมีบริบท
|
4 | 3 | 4 | |
| UTCNOW Date and Time | UTCNOW()
UTCNOW ส่งค่าวันที่และเวลาปัจจุบันในรูปแบบ UTC (Coordinated Universal Time) แตกต่างจาก NOW() ที่ส่งเวลาตามโซนเวลาท้องถิ่น UTCNOW มีประโยชน์เมื่อทำงานในสภาพแวดล้อมคลาวด์ (Power BI Service ใช้ UTC) หรือแอปพลิเคชันระหว่างประเทศที่ต้องการมาตรฐานเวลาเดียวกัน
|
4 | 2 | 4 | |
| MAXA Aggregation | MAXA(column)
MAXA คืนค่ามากสุดโดยตีความ TRUE=1, FALSE/BLANK=0 และข้ามข้อความที่ไม่ใช่ตัวเลข ใช้กับคอลัมน์ที่มีทั้งตัวเลขและค่าตรรกะเพื่อประเมินค่ามากสุดอย่างสอดคล้อง
|
4 | 3 | 4 | |
| UTCTODAY Date and Time | UTCTODAY()
UTCTODAY คืนค่าวันที่ปัจจุบัน (datetime) ตามเวลา UTC ใช้เมื่ออยากได้วันที่มาตรฐานเดียวกันข้ามเขตเวลา และมักใช้คู่กับ TODAY/UTCNOW เพื่อจัดการความต่างของเขตเวลา
|
4 | 2 | 4 | |
| AVERAGEA Aggregation | AVERAGEA(<column>)
AVERAGEA คืนค่าเฉลี่ยของค่าภายในคอลัมน์ และรวมการประมวลผลค่าตรรกะ/ข้อความตามกติกา (เช่น TRUE=1, FALSE=0, ข้อความ=0) เหมาะเมื่อข้อมูลมีชนิดปะปนและต้องการสะท้อนผลของค่าที่ไม่ใช่ตัวเลข
|
4 | 3 | 4 | |
| NEXTQUARTER Time Intelligence | NEXTQUARTER(<Dates>)
NEXTQUARTER คืนตารางวันที่ของไตรมาสถัดไปจากบริบทวันที่ปัจจุบัน มักใช้เป็นตารางตัวกรองใน CALCULATE เพื่อคำนวณค่าแบบ “ไตรมาสถัดไป”
|
4 | 3 | 4 | |
| VARX.S Statistical | VARX.S(<Table>, <Expression>)
VARX.S คำนวณความแปรปรวน (Variance) โดยสมมติว่าข้อมูลเป็นตัวอย่าง (Sample) ไม่ใช่ประชากร วัดการกระจายตัวของค่าที่คำนวณแล้วจากการประเมินนิพจน์ ใช้เมื่อข้อมูลที่วิเคราะห์เป็นตัวอย่างเพียงบางส่วน VARX.S มีค่าสูงกว่า VARX.P เพราะใช้ Sampling Correction
|
4 | 5 | 4 | |
| NEXTMONTH Time Intelligence | NEXTMONTH(<Dates>)
NEXTMONTH คืนตารางวันที่ของเดือนถัดไปจากบริบทวันที่ปัจจุบัน มักใช้เป็นตารางตัวกรองใน CALCULATE เพื่อคำนวณค่าแบบ “เดือนถัดไป” ตามช่วงวันที่ที่ถูกเลือก/กรอง
|
4 | 3 | 4 | |
| APPROXIMATEDISTINCTCOUNT Aggregation | APPROXIMATEDISTINCTCOUNT(<column>)
APPROXIMATEDISTINCTCOUNT คืนจำนวนค่าไม่ซ้ำแบบประมาณเพื่อความเร็ว เหมาะกับข้อมูลขนาดใหญ่และงาน DirectQuery ในแหล่งข้อมูลที่รองรับ เมื่อความแม่นยำ 100% ไม่จำเป็น
|
4 | 4 | 4 | |
| NEXTDAY Time Intelligence | NEXTDAY(<Dates>)
NEXTDAY คืนตารางวันที่ของวันถัดไปจากวันที่ในบริบทปัจจุบัน มักใช้เป็นตารางตัวกรองใน CALCULATE เพื่อคำนวณค่าแบบ “วันถัดไป” ตามช่วงวันที่ที่ถูกกรอง
|
3 | 3 | 3 | |
| LINESTX Statistical | LINESTX(<Table>, <DependentExpression>, <IndependentExpression>, [...])
LINESTX ทำการวิเคราะห์การถดถอยเชิงเส้น (Linear Regression) โดยใช้วิธี Least Squares เพื่อหาเส้นตรงที่เหมาะสมที่สุดกับข้อมูล ส่งกลับตารางสถิติที่ประกอบด้วย Slope Intercept Standard Error R-squared และสถิติอื่น ๆ ใช้สำหรับสร้างแบบจำลองการทำนาย (Predictive Model) และวิเคราะห์ความสัมพันธ์ระหว่างตัวแปร
|
3 | 4 | 3 | |
| ADDMISSINGITEMS Table manipulation | ADDMISSINGITEMS(<Table>)
ADDMISSINGITEMS เติมสมาชิกที่หายไปในผลลัพธ์สรุปแบบกลุ่ม เพื่อให้แสดงครบทุกสมาชิกของคอลัมน์ที่ระบุ เหมาะกับรายงานที่ต้องการเห็นรายการที่ไม่มีข้อมูลด้วย
|
3 | 5 | 3 | |
| REPT Text | REPT(text, number_times)
REPT ทำซ้ำข้อความตามจำนวนที่กำหนด ช่วยสร้างสัญลักษณ์ซ้ำๆ เช่น ดาว, จุด, หรือเครื่องหมายคั่น เพื่อจัดรูปแบบและเน้นข้อมูลในรายงาน
|
3 | 2 | 3 | |
| ROLLUPISSUBTOTAL Table manipulation | ROLLUPISSUBTOTAL([<GrandtotalFilter>], <GroupColumn>, <IsSubtotal_Column>[, [<GroupLevelFilter>], <GroupColumn>, <IsSubtotal_Column>])
ROLLUPISSUBTOTAL ใช้ใน ADDMISSINGITEMS เพื่อจับคู่กลุ่ม roll-up กับคอลัมน์ IsSubtotal ที่สร้างจาก ROLLUPADDISSUBTOTAL ทำให้การเติมรายการที่ขาดหายทำงานได้ถูกต้องเมื่อมี roll-up/subtotal rows
|
3 | 5 | 3 | |
| LOOKUPWITHTOTALS Filter | LOOKUPWITHTOTALS(<ResultExpression>, <Column>, <Value>[, <Column2>, <Value2>])
LOOKUPWITHTOTALS ค้นหาตำแหน่งที่ตรงเงื่อนไขในตารางสรุป/กริด แล้วคืนค่าเดี่ยวจากคอลัมน์ผลลัพธ์หรือคำนวณนิพจน์จากชุดที่ตรงเงื่อนไข โดยถือว่าคอลัมน์ที่ไม่ระบุในเงื่อนไขอยู่ในสถานะรวม (total) ซึ่งต่างจาก LOOKUP
|
3 | 5 | 4 | |
| ISAFTER Information | ISAFTER(<expression>, <compare_to>[, sort_order][, ...])
ISAFTER ตรวจว่าค่าในบริบทปัจจุบันอยู่ “หลัง” ค่าอ้างอิงตามลำดับที่กำหนด (ASC/DESC) และรองรับหลายคีย์ต่อเนื่อง เช่น Country แล้ว State ใช้สร้างตัวกรองแบบ start-after หรือทำหน้าต่างข้อมูลที่อิงลำดับได้อย่างชัดเจน
|
3 | 4 | 3 | |
| EVALUATEANDLOG Information | EVALUATEANDLOG(<expression>)
EVALUATEANDLOG คำนวณนิพจน์และส่งผลลัพธ์ไปยัง log สำหรับการตรวจสอบและดีบัก ทำให้เห็นค่าระหว่างกลางของการคำนวณ DAX โดยไม่ต้องเขียนตารางชั่วคราว
|
3 | 4 | 3 | |
| STDEVX.P Statistical | STDEVX.P(<Table>, <Expression>)
STDEVX.P คำนวณค่าความเบี่ยงเบน (Standard Deviation) โดยสมมติว่าข้อมูลเป็นประชากรทั้งหมด (Population) ไม่ใช่ตัวอย่าง ใช้เมื่อ Expression ที่ประเมินแต่ละแถวจะส่งค่า Variance ของประชากรทั้งหมด STDEVX.P ต่างจาก STDEVX.S ซึ่งใช้กับตัวอย่าง
|
3 | 5 | 3 | |
| COLLAPSEALL Visual calculations | COLLAPSEALL()
COLLAPSEALL ลบระดับรายละเอียดทั้งหมดในบริบทปัจจุบันแล้วคืนค่าหรือประเมินนิพจน์ในบริบทที่กว้างที่สุด ช่วยให้สามารถเปลี่ยนจากรายละเอียดลึกกลับไปคำนวณระดับสูงได้ในสูตรเดียว และเป็นฟังก์ชันคู่ตรงข้ามกับ EXPANDALL
|
3 | 5 | 3 | |
| ROLLUPGROUP Table manipulation | ROLLUPGROUP(<GroupColumn>[, <GroupColumn>])
ROLLUPGROUP ระบุชุดคอลัมน์ที่จะถูกพิจารณาเป็น “กลุ่มเดียว” สำหรับการสร้าง subtotal/roll-up ช่วยลด subtotal บางระดับ และมักใช้ร่วมกับ ROLLUP ใน SUMMARIZE
|
3 | 5 | 3 | |
| BITOR Logical | BITOR(<Number1>, <Number2>)
BITOR คืนผลลัพธ์ของ OR แบบบิตระหว่าง Number1 และ Number2 เหมาะกับการรวม bit flags เพื่อสร้างค่า bitmask ใหม่
|
3 | 3 | 3 | |
| IGNORE Table manipulation | IGNORE(<Expression>)
IGNORE ใช้ภายใน SUMMARIZECOLUMNS เพื่อบอกว่า expression/measure นี้ต้องถูก “ละเว้น” ตอนตัดสินว่าแถวไหนเป็น non-blank ทำให้แถวในผลลัพธ์ไม่ถูกตัดทิ้งเพียงเพราะ measure ที่เลือกละเว้นเป็น BLANK
|
3 | 5 | 3 | |
| ROLLUPADDISSUBTOTAL Table manipulation | ROLLUPADDISSUBTOTAL([<GrandtotalFilter>], <GroupColumn>, <Name>[, [<GroupLevelFilter>], <GroupColumn>, <Name>])
ROLLUPADDISSUBTOTAL ใช้ใน SUMMARIZECOLUMNS เพื่อเพิ่มแถว roll-up/subtotal และเพิ่มคอลัมน์ IsSubtotal สำหรับแต่ละระดับที่กำหนด ทำให้แยกแถว subtotal ออกจากรายละเอียดได้ง่าย
|
3 | 5 | 3 | |
| BITAND Logical | BITAND(<Number1>, <Number2>)
BITAND คืนผลลัพธ์ของการทำ AND แบบบิตระหว่าง Number1 และ Number2 เหมาะกับการตรวจ bit flags/bitmask เพื่อเช็กสถานะที่ถูกเก็บในตัวเลขเดียว
|
3 | 3 | 3 | |
| COLUMNSTATISTICS Information | COLUMNSTATISTICS()
COLUMNSTATISTICS ส่งกลับตารางที่ระบุข้อมูลสถิติของทุกคอลัมน์ในทุกตารางของโมเดล DAX ผลลัพธ์ประกอบด้วยชื่อตาราง ชื่อคอลัมน์ ค่า Min/Max, Cardinality (จำนวนค่าไม่ซ้ำ) และความยาวสูงสุด เป็นเครื่องมือสำคัญสำหรับการตรวจสอบคุณภาพข้อมูล การประเมินการกระจายตัว และการเพิ่มประสิทธิภาพโมเดล
|
3 | 3 | 3 | |
| COLLAPSE Visual calculations | COLLAPSE(<value>)
COLLAPSE ยุบผลลัพธ์ตารางหรือคอลัมน์ให้เหลือค่าสเกลาร์เดียว ช่วยบังคับให้บริบทมีค่าเดียวก่อนส่งต่อให้ฟังก์ชันอื่น หากมีหลายค่าจะคืน BLANK ช่วยตรวจสอบความถูกต้องของ filter context และใช้กำหนดค่าพารามิเตอร์ที่ควรมีค่าเดียว
|
3 | 5 | 3 |
ชื่อฟังก์ชันเป็นภาษาอังกฤษเสมอ ลองสะกดอีกแบบ หรือกด Enter เพื่อค้นในคำอธิบายด้วย