| ฟังก์ชัน | ใช้ทำอะไร | มีตั้งแต่ | นิยม | ยาก | ประโยชน์ |
|---|---|---|---|---|---|
| BLANK Other | BLANK()
BLANK คืนค่าว่างเปล่า (Empty Value) ในDAX ซึ่งแตกต่างจาก 0 หรือ "" โดยใช้สำหรับระบุว่าไม่มีข้อมูล มักใช้ใน IF เพื่อซ่อนผลลัพธ์ที่ไม่ต้องการ
|
7 | 2 | 7 | |
| CALENDAR Date and Time | CALENDAR(<start_date>, <end_date>)
CALENDAR ใช้สำหรับสร้างตารางวันที่ครบถ้วนตั้งแต่วันเริ่มต้นถึงวันสิ้นสุดโดยไม่มีช่องว่าง เหมาะสำหรับสร้างตารางวันที่โครงสร้างพื้นฐาน (Date Dimension) ที่ใช้ร่วมกับ Time Intelligence Function
|
7 | 4 | 8 | |
| USERELATIONSHIP Relationship | USERELATIONSHIP(<columnName1>, <columnName2>)
USERELATIONSHIP ช่วยให้คุณใช้ relationship ที่ไม่ใช่ active หรือเปลี่ยน relationship ที่ใช้ในการคำนวณ เหมาะสำหรับสถานการณ์เช่น sales data ที่มีหลาย date columns (OrderDate, ShippingDate, DeliveryDate)
|
7 | 5 | 7 | |
| DATESYTD Time Intelligence | DATESYTD(<Dates>[, <YearEndDate>])
DATESYTD คืนตารางวันที่ของช่วงตั้งแต่ต้นปีถึงวันที่สุดท้ายที่มองเห็นใน Filter Context ใช้เป็นตัวกรองเวลาใน CALCULATE สำหรับการคำนวณยอดสะสมตั้งแต่ต้นปี รองรับทั้งปีปฏิทินและปีบัญชี (Fiscal Year) ด้วย YearEndDate argument
|
7 | 4 | 8 | |
| TOPN Table manipulation | TOPN(<N_Value>, <Table> [, <OrderBy_Expression> [, [<Order>] [, <OrderBy_Expression> [, [<Order>]]]...]])
คืนตาราง Top N แถวจากตารางที่กำหนด โดยเรียงตามนิพจน์หนึ่งตัวหรือมากกว่า สามารถระบุทิศทางการเรียงลำดับแยกต่างหากสำหรับแต่ละเกณฑ์
|
7 | 4 | 7 | |
| ADDCOLUMNS Table manipulation | ADDCOLUMNS(<table>, <name>, <expression>[, <name>, <expression>]...)
ADDCOLUMNS เป็นฟังก์ชัน table transformation ที่ใช้สำหรับเพิ่มคอลัมน์ใหม่ (Calculated Columns) เข้าไปในตารางที่มีอยู่เดิม โดยคำนวณค่าในแต่ละแถวผ่าน Row Context และส่งคืนตารางเดิมพร้อมคอลัมน์ใหม่ต่อท้าย
|
7 | 5 | 7 | |
| CONCATENATEX Text | CONCATENATEX(<table>, <expression>, [<delimiter>], [<orderBy_expression>], [<order>])
CONCATENATEX ทำหน้าที่รวมข้อความจากแต่ละแถวในตารางเข้าด้วยกัน เหมาะสำหรับสร้างรายชื่อค่าที่คั่นด้วยจุลภาค หรือรวมข้อมูลจากหลายแถว ใช้ได้กับตัวอักษรหรือค่าใดๆที่ต้องการทำให้เป็นข้อความ
|
7 | 5 | 7 | |
| OPENINGBALANCEWEEK Time Intelligence | OPENINGBALANCEWEEK(<Expression>, <Dates>, [<Filter>])
OPENINGBALANCEWEEK ประเมิน Expression ณ จุดเปิดสัปดาห์ (คือวันสิ้นสัปดาห์ก่อนหน้า) ใช้เพื่อเปรียบเทียบค่าเปลี่ยนแปลงระหว่างเปิดและปิดสัปดาห์
|
6 | 4 | 6 | |
| MAXX Aggregation | MAXX(<table>, <expression>)
MAXX ประเมินนิพจน์สำหรับทุกแถวของตาราง แล้วคืนค่าที่มากที่สุด เหมาะกับการหาค่าสูงสุดจากค่าที่คำนวณต่อแถว ไม่ใช่แค่การสรุปคอลัมน์โดยตรง
|
6 | 5 | 6 | |
| STARTOFMONTH Time Intelligence | STARTOFMONTH(<Dates>)
STARTOFMONTH คืนวันแรกของเดือนเป็นตาราง 1 แถว ใช้กับการวัดที่ขึ้นต่อจุดเวลา เช่น ยอดคงเหลือ บัญชี หรือสินค้าคงคลัง
|
6 | 3 | 6 | |
| UPPER Text | UPPER(<Text>)
UPPER แปลงข้อความให้เป็นตัวพิมพ์ใหญ่ทั้งหมด ใช้บ่อยเพื่อปรับปรุงคุณภาพข้อมูลและทำให้การเปรียบเทียบข้อความแม่นยำ
|
6 | 2 | 6 | |
| FIRSTNONBLANK Time Intelligence | FIRSTNONBLANK(<Column>, <Expression>)
FIRSTNONBLANK คืนค่าตัวแรกของ Column ที่ทำให้ Expression ไม่เป็น BLANK ใช้บ่อยเพื่อหา "ค่าแรกที่มีข้อมูล" เช่นวันแรกที่มียอดขาย (คืนค่าเป็นวันที่) และมักใช้ร่วมกับ time intelligence
|
6 | 4 | 6 | |
| GROUPBY Table manipulation | GROUPBY(<Table>, [<GroupBy_ColumnName>], [<Name>], [<Expression>])
GROUPBY สร้างตารางสรุปโดยจัดกลุ่มตามคอลัมน์ที่กำหนด และเพิ่มคอลัมน์คำนวณแบบกลุ่มต่อกลุ่มได้ โดยใช้ CURRENTGROUP() เข้าถึงแถวภายในกลุ่ม เหมาะกับการคำนวณซ้อนหรือคำนวณจากคอลัมน์ชั่วคราว (local columns)
|
6 | 6 | 6 | |
| CLOSINGBALANCEWEEK Time Intelligence | CLOSINGBALANCEWEEK(<Expression>, <Calendar>[, <Filter>])
CLOSINGBALANCEWEEK ประเมินนิพจน์ (มาตรวัด) ที่วันสิ้นสัปดาห์ของบริบทวันที่ปัจจุบัน สำคัญสำหรับรายงานปิดสัปดาห์และ snapshot ยอดคงเหลือ
|
6 | 4 | 6 | |
| FIRSTDATE Time Intelligence | FIRSTDATE(<Dates>)
FIRSTDATE คืนค่าวันที่แรกในบริบทตัวกรองปัจจุบัน เหมาะใช้เป็นตัวกรองให้ CALCULATE เพื่อหายอดขาย/จำนวนของวันแรกในช่วงที่เลือก
|
6 | 3 | 6 | |
| GENERATESERIES Table manipulation | GENERATESERIES(<StartValue>, <EndValue>[, <IncrementValue>])
GENERATESERIES สร้างตารางคอลัมน์เดียวที่เป็นลำดับตัวเลขจาก StartValue ถึง EndValue ด้วย increment ที่กำหนดได้ เหมาะกับตารางช่วย parameter table หรือสร้างชุดตัวเลขสำหรับ what-if analysis
|
6 | 4 | 6 | |
| ENDOFYEAR Time Intelligence | ENDOFYEAR(<Dates>[, <YearEndDate>])
ENDOFYEAR คืนตารางวันที่ของวันสิ้นปีตามบริบทวันที่ปัจจุบัน และรองรับการกำหนดวันสิ้นปีบัญชี เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อประเมินมาตรวัดที่วันสิ้นปี
|
6 | 3 | 6 | |
| COUNTX Aggregation | COUNTX(<table>, <expression>)
COUNTX ไล่ประเมินนิพจน์ทีละแถวในตาราง แล้วนับจำนวนแถวที่ได้ผลลัพธ์ไม่ว่าง เหมาะสำหรับการนับจากค่าที่คำนวณต่อแถว ไม่ใช่นับคอลัมน์ตรง ๆ
|
6 | 5 | 6 | |
| KEEPFILTERS Filter | KEEPFILTERS(<filter>)
KEEPFILTERS เป็นฟังก์ชันปรับตัวกรองที่ใช้ภายใน CALCULATE เพื่อ “คงตัวกรองเดิมไว้” แล้วนำตัวกรองใหม่มารวมกันแบบ AND (ตัดกันเฉพาะส่วนที่ตรงกัน) แทนพฤติกรรมปกติที่มักเขียนทับตัวกรองเดิมของคอลัมน์เดียวกัน
|
6 | 6 | 6 | |
| WEEKDAY Date and Time | WEEKDAY(<Date>, [<ReturnType>])
WEEKDAY คืนค่าเลขวันในสัปดาห์ (1-7) จากวันที่ที่กำหนด สามารถปรับรูปแบบให้เริ่มจากอาทิตย์หรือจันทร์ได้ตามต้องการ เหมาะสำหรับการแยกวันทำงาน วันหยุด หรือวิเคราะห์พฤติกรรมตามวัน
|
6 | 2 | 6 | |
| PARALLELPERIOD Time Intelligence | PARALLELPERIOD(<Dates>, <NumberOfIntervals>, <Interval>)
PARALLELPERIOD คืนตารางวันที่ที่ขนานกับช่วงเวลาปัจจุบัน แต่เลื่อนไปข้างหน้าหรือย้อนหลัง และขยายขอบเขตให้ครอบคลุมทั้งหน่วยเวลาที่ระบุ (MONTH/QUARTER/YEAR) เสมอ เหมาะกับการเทียบยอดรวมทั้งเดือน/ไตรมาส/ปี
|
6 | 5 | 7 | |
| CONTAINSSTRING Information | =CONTAINSSTRING(<within_text>, <find_text>)
CONTAINSSTRING ตรวจสอบว่าข้อความหนึ่งมีข้อความอื่นเป็นส่วนหนึ่งหรือไม่ แล้วคืนค่า TRUE หรือ FALSE ตัวเลือกนี้ไม่สนใจตัวพิมพ์ใหญ่เล็ก
|
6 | 3 | 6 | |
| TRIM Text | TRIM(<text>)
ฟังก์ชันทำความสะอาดข้อความ ลบช่องว่างส่วนเกินนำหน้า ท้าย และช่องว่างหลายตัวระหว่างคำ โดยคงไว้ช่องว่างเดี่ยวระหว่างคำเท่านั้น
|
6 | 2 | 6 | |
| ENDOFWEEK Time Intelligence | ENDOFWEEK(<Calendar>)
ฟังก์ชัน ENDOFWEEK คืนตารางวันที่ที่แสดงวันสิ้นสุดของสัปดาห์ตามบริบทวันที่ปัจจุบัน ใช้สำหรับการวิเคราะห์ข้อมูลตามระดับสัปดาห์ และการเปรียบเทียบเมตริกส์ณวันปิดสัปดาห์
|
6 | 4 | 6 | |
| LASTDATE Time Intelligence | LASTDATE(<Dates>)
LASTDATE คืนค่าตารางที่มีวันที่สุดท้ายในบริบทตัวกรองปัจจุบัน มักใช้เป็นตารางตัวกรองให้ CALCULATE เพื่อคำนวณ measure ณ วันสุดท้ายของช่วงที่เลือก และสามารถใช้ MAXX เพื่อแปลงผลเป็น scalar date ได้
|
6 | 3 | 6 | |
| NEXTWEEK Time Intelligence | NEXTWEEK(<Dates>)
NEXTWEEK คืนตารางวันที่ของสัปดาห์ถัดไปจากบริบทวันที่ปัจจุบัน มักใช้เป็นตารางตัวกรองใน CALCULATE เพื่อคำนวณค่าแบบ "สัปดาห์ถัดไป"
|
6 | 4 | 6 | |
| COUNTBLANK Aggregation | COUNTBLANK(<column>)
COUNTBLANK นับจำนวนค่า BLANK ในคอลัมน์ ช่วยวัดความครบถ้วนของข้อมูลและตรวจสอบคุณภาพข้อมูลภายใต้บริบทตัวกรองปัจจุบัน
|
6 | 2 | 6 | |
| DATESBETWEEN Time Intelligence | DATESBETWEEN(<Dates>, <StartDate>, <EndDate>)
DATESBETWEEN คืนตารางวันที่ที่อยู่ระหว่าง StartDate และ EndDate (รวมวันเริ่ม/วันจบ) เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อคำนวณตามช่วงวันที่ที่กำหนดเอง
|
6 | 4 | 6 | |
| DATESINPERIOD Time Intelligence | DATESINPERIOD(<Dates>, <StartDate>, <NumberOfIntervals>, <Interval>[, <EndBehavior>])
DATESINPERIOD คืนตารางวันที่แบบเคลื่อนที่ โดยเริ่มจาก StartDate และขยายไปตามจำนวนช่วงและหน่วยที่กำหนด เหมาะกับการทำคำนวณแบบ rolling YTD, rolling average, ย้อนหลัง หรือล่วงหน้าแบบยืดหยุ่น
|
6 | 5 | 6 | |
| PREVIOUSWEEK Time Intelligence | PREVIOUSWEEK(<dates>)
PREVIOUSWEEK คืนตารางวันที่ของสัปดาห์ก่อนหน้า ตามบริบทวันที่ปัจจุบัน เหมาะสำหรับตัวชี้วัดแบบ Week-over-Week โดยนำตารางวันที่ไปใช้เป็นตัวกรองเวลา
|
6 | 4 | 6 | |
| ENDOFMONTH Time Intelligence | ENDOFMONTH(<Dates>)
ENDOFMONTH คืนตารางวันที่ของวันสิ้นเดือนตามปฏิทิน เหมาะกับ Semi-Additive Calculations เช่น ยอดคงเหลือ, Inventory, หรือ Closing Balance ที่ต้องการ snapshot ณ สิ้นเดือน ไม่ว่าจะมีข้อมูลจริงในวันนั้นหรือไม่
|
6 | 3 | 6 | |
| EDATE Date and Time | =EDATE(<start_date>, <months>)
EDATE คืนค่าวันที่ที่ห่างจากวันเริ่มต้นตามจำนวนเดือนที่ระบุ ใช้สำหรับคำนวณวันครบกำหนด หรือวันกำหนดส่งแบบเดือนปกติ
|
6 | 3 | 6 | |
| CALENDARAUTO Date and Time | CALENDARAUTO([<FiscalYearEndMonth>])
CALENDARAUTO สร้างตารางวันที่อัตโนมัติโดยอิงช่วงวันที่ที่พบในโมเดล และสามารถกำหนดเดือนสิ้นสุดปีบัญชีได้ เหมาะกับการสร้าง Date table แบบเร็ว ๆ แต่ควรระวังค่าวันที่ผิดปกติในข้อมูล
|
6 | 3 | 7 | |
| ISFILTERED Information | ISFILTERED(<ColumnName>)
ISFILTERED ตรวจสอบว่าคอลัมน์ที่ระบุมีตัวกรองโดยตรงหรือไม่ ใช้เพื่อสร้าง Dynamic Measures ที่เปลี่ยนพฤติกรรมตามการกรองของผู้ใช้
|
6 | 4 | 6 | |
| SELECTCOLUMNS Table manipulation | SELECTCOLUMNS(<Table>, [<Name>], <Expression>, [<Name>], <Expression>, ...)
สร้างตารางใหม่โดยเลือกเฉพาะคอลัมน์ที่ต้องการจากตารางต้นฉบับและเพิ่มคอลัมน์ที่คำนวณได้ ต่างจาก ADDCOLUMNS ตรงที่ SELECTCOLUMNS เริ่มจากตารางว่างแล้วเพิ่มเฉพาะคอลัมน์ที่ระบุ ทำให้สามารถปรับโครงสร้างตารางและเลือกข้อมูลที่จำเป็นได้อย่างยืดหยุ่น
|
6 | 5 | 6 | |
| TREATAS Table manipulation | TREATAS(table_expression, column, [column])
TREATAS เป็นเสมือนการสร้าง "virtual relationship" โดยไม่ต้องแก้โมเดล ช่วยให้ส่งเงื่อนไขข้ามตารางที่ไม่เชื่อมกัน หรือเมื่อต้องการส่งหลายคีย์พร้อมกัน
|
6 | 6 | 7 | |
| UNION Table manipulation | UNION(<table1>, <table2>[, <table3>, ...])
UNION รวมหลายตารางให้เป็นตารางเดียวด้วยการต่อแถว โดยเก็บแถวซ้ำไว้ทั้งหมด เหมาะกับการรวมชุดข้อมูลที่มีโครงสร้างคอลัมน์สอดคล้องกัน
|
6 | 4 | 6 | |
| DATESWTD Time Intelligence | DATESWTD(<calendar>)
DATESWTD คืนตารางวันที่ตั้งแต่ต้นสัปดาห์จนถึงวันที่ในบริบทปัจจุบัน ใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อคำนวณยอดสะสมตั้งแต่ต้นสัปดาห์
|
6 | 4 | 6 | |
| SUBSTITUTE Text | SUBSTITUTE(<text>, <old_text>, <new_text>, [<instance_num>])
SUBSTITUTE ค้นหาและแทนที่ข้อความในสตริง สามารถแทนที่ทุกครั้งหรือเพียงครั้งที่ n เหมาะกับการปรับรูปแบบและทำความสะอาดข้อมูลโดยตรวจสอบเนื้อหา ไม่ใช่ตำแหน่ง
|
6 | 3 | 6 | |
| STARTOFYEAR Time Intelligence | STARTOFYEAR(<Dates> [, <YearEndDate>])
STARTOFYEAR คืนตาราง 1 แถวที่มีวันที่วันแรกของปีในบริบทปัจจุบัน ใช้สำหรับ semi-additive measure เช่น inventory balance หรือเปรียบเทียบ year-to-date
|
6 | 3 | 6 | |
| TOTALWTD Time Intelligence | TOTALWTD(<expression>, <calendar> [, <filter>])
คำนวณยอดสะสมตั้งแต่ต้นสัปดาห์ (Week-to-Date) ของ Expression ตามคอลัมน์วันที่ที่กำหนด โดยรวมข้อมูลจากวันแรกของสัปดาห์จนถึงวันปัจจุบันในบริบท
|
6 | 4 | 6 | |
| CONTAINS Information | CONTAINS(<table>, <columnName>, <value>[, <columnName>, <value>]...)
CONTAINS ค้นหาแถวในตารางและคืนค่า TRUE/FALSE เมื่อหาเจอค่าที่ตรงกับเงื่อนไขที่กำหนด เจ๋งเพราะมันเร็วกว่า COUNTROWS + FILTER มาก
|
6 | 4 | 6 | |
| PREVIOUSMONTH Time Intelligence | PREVIOUSMONTH(<dates>)
PREVIOUSMONTH คืนตารางวันที่ทั้งหมดของเดือนก่อนหน้า โดยอ้างอิงจากวันแรกของบริบทปัจจุบัน เหมาะกับการทำ Measure เปรียบเทียบ Month-over-Month เช่น ยอดขายเดือนก่อนหน้า ข้อแตกต่างสำคัญกับ DATEADD คือ PREVIOUSMONTH คืนทั้งเดือนเสมอ ไม่ว่าจะเลือกวันไหนก็ตาม
|
6 | 3 | 6 | |
| MINX Aggregation | MINX(<table>, <expression>, [<variant>])
MINX ประเมินนิพจน์สำหรับทุกแถวของตาราง แล้วคืนค่าที่น้อยที่สุด ต่างจาก MIN ที่ใช้กับคอลัมน์โดยตรง MINX เหมาะกับการหาค่าต่ำสุดจากค่าที่คำนวณต่อแถว เช่น (Quantity × UnitPrice)
|
6 | 5 | 6 | |
| STARTOFWEEK Time Intelligence | STARTOFWEEK(<calendar>)
STARTOFWEEK คืนตารางที่มีวันแรกของสัปดาห์ตามปฏิทินที่กำหนด ใช้เป็นตัวกรองใน CALCULATE หรือดึงค่าสเกลาร์ด้วย MINX ฟังก์ชันนี้จำเป็นต้องมีตารางวันที่ที่ถูกกำหนดไว้เป็น Date Table
|
6 | 4 | 6 | |
| NOT Logical | NOT(<logical>)
NOT ใช้กลับค่าตรรกะของนิพจน์ (TRUE ↔ FALSE) เหมาะกับการเขียนเงื่อนไขแบบปฏิเสธ และนิยมใช้ร่วมกับ IF/AND/OR เพื่อสร้างตรรกะที่อ่านชัดเจน
|
6 | 2 | 6 | |
| DATEVALUE Date and Time | DATEVALUE(<DateText>)
DATEVALUE แปลงข้อความวันที่ (text) ให้เป็น datetime โดยอ้างอิงตามการตั้งค่า locale ของ model เหมาะกับข้อมูลวันที่ที่เก็บเป็นข้อความและต้องแปลงเป็นวันที่จริงเพื่อการคำนวณตามเวลา
|
6 | 3 | 6 | |
| TOTALQTD Time Intelligence | TOTALQTD(<Expression>, <Dates> [, <Filter>])
TOTALQTD คำนวณยอดสะสมตั้งแต่วันแรกของไตรมาส (Q1/Q2/Q3/Q4) จนถึงวันที่ล่าสุดใน filter context ปัจจุบัน.ส่วนตัวผมใช้บ่อยมากตอน analyze quarterly performance และการวิเคราะห์ KPI รายไตรมาสครับ
|
6 | 4 | 7 | |
| MID Text | MID(<Text>, <StartNum>, <NumChars>)
MID คืนสตริงย่อยจากข้อความ โดยเริ่มที่ StartNum (เริ่มนับที่ 1) และดึง NumChars ตัว ใช้บ่อยในการแยก/ตัดข้อความร่วมกับ LEFT/RIGHT/FIND/SEARCH
|
6 | 3 | 6 | |
| TOTALMTD Time Intelligence | TOTALMTD(<Expression>, <Dates> [, <Filter>])
คำนวณยอดสะสมตั้งแต่ต้นเดือน (Month-to-Date) ของ Expression ตามคอลัมน์วันที่ที่กำหนด เป็นทางลัดของ CALCULATE + DATESMTD
|
6 | 4 | 7 |
ชื่อฟังก์ชันเป็นภาษาอังกฤษเสมอ ลองสะกดอีกแบบ หรือกด Enter เพื่อค้นในคำอธิบายด้วย