Thep Excel

Function Explainer

ฟังก์ชัน DAX 231 ฟังก์ชัน

231 ฟังก์ชัน

เรียงตาม

ฟังก์ชัน ใช้ทำอะไร มีตั้งแต่ นิยม ยาก ประโยชน์
BLANK Other BLANK()

BLANK คืนค่าว่างเปล่า (Empty Value) ในDAX ซึ่งแตกต่างจาก 0 หรือ "" โดยใช้สำหรับระบุว่าไม่มีข้อมูล มักใช้ใน IF เพื่อซ่อนผลลัพธ์ที่ไม่ต้องการ

นิยม 7 ยาก 2 ประโยชน์ 7

7 2 7
CALENDAR Date and Time CALENDAR(<start_date>, <end_date>)

CALENDAR ใช้สำหรับสร้างตารางวันที่ครบถ้วนตั้งแต่วันเริ่มต้นถึงวันสิ้นสุดโดยไม่มีช่องว่าง เหมาะสำหรับสร้างตารางวันที่โครงสร้างพื้นฐาน (Date Dimension) ที่ใช้ร่วมกับ Time Intelligence Function

นิยม 7 ยาก 4 ประโยชน์ 8

7 4 8
USERELATIONSHIP Relationship USERELATIONSHIP(<columnName1>, <columnName2>)

USERELATIONSHIP ช่วยให้คุณใช้ relationship ที่ไม่ใช่ active หรือเปลี่ยน relationship ที่ใช้ในการคำนวณ เหมาะสำหรับสถานการณ์เช่น sales data ที่มีหลาย date columns (OrderDate, ShippingDate, DeliveryDate)

นิยม 7 ยาก 5 ประโยชน์ 7

7 5 7
DATESYTD Time Intelligence DATESYTD(<Dates>[, <YearEndDate>])

DATESYTD คืนตารางวันที่ของช่วงตั้งแต่ต้นปีถึงวันที่สุดท้ายที่มองเห็นใน Filter Context ใช้เป็นตัวกรองเวลาใน CALCULATE สำหรับการคำนวณยอดสะสมตั้งแต่ต้นปี รองรับทั้งปีปฏิทินและปีบัญชี (Fiscal Year) ด้วย YearEndDate argument

นิยม 7 ยาก 4 ประโยชน์ 8

7 4 8
TOPN Table manipulation TOPN(<N_Value>, <Table> [, <OrderBy_Expression> [, [<Order>] [, <OrderBy_Expression> [, [<Order>]]]...]])

คืนตาราง Top N แถวจากตารางที่กำหนด โดยเรียงตามนิพจน์หนึ่งตัวหรือมากกว่า สามารถระบุทิศทางการเรียงลำดับแยกต่างหากสำหรับแต่ละเกณฑ์

นิยม 7 ยาก 4 ประโยชน์ 7

7 4 7
ADDCOLUMNS Table manipulation ADDCOLUMNS(<table>, <name>, <expression>[, <name>, <expression>]...)

ADDCOLUMNS เป็นฟังก์ชัน table transformation ที่ใช้สำหรับเพิ่มคอลัมน์ใหม่ (Calculated Columns) เข้าไปในตารางที่มีอยู่เดิม โดยคำนวณค่าในแต่ละแถวผ่าน Row Context และส่งคืนตารางเดิมพร้อมคอลัมน์ใหม่ต่อท้าย

นิยม 7 ยาก 5 ประโยชน์ 7

7 5 7
CONCATENATEX Text CONCATENATEX(<table>, <expression>, [<delimiter>], [<orderBy_expression>], [<order>])

CONCATENATEX ทำหน้าที่รวมข้อความจากแต่ละแถวในตารางเข้าด้วยกัน เหมาะสำหรับสร้างรายชื่อค่าที่คั่นด้วยจุลภาค หรือรวมข้อมูลจากหลายแถว ใช้ได้กับตัวอักษรหรือค่าใดๆที่ต้องการทำให้เป็นข้อความ

นิยม 7 ยาก 5 ประโยชน์ 7

7 5 7
OPENINGBALANCEWEEK Time Intelligence OPENINGBALANCEWEEK(<Expression>, <Dates>, [<Filter>])

OPENINGBALANCEWEEK ประเมิน Expression ณ จุดเปิดสัปดาห์ (คือวันสิ้นสัปดาห์ก่อนหน้า) ใช้เพื่อเปรียบเทียบค่าเปลี่ยนแปลงระหว่างเปิดและปิดสัปดาห์

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
MAXX Aggregation MAXX(<table>, <expression>)

MAXX ประเมินนิพจน์สำหรับทุกแถวของตาราง แล้วคืนค่าที่มากที่สุด เหมาะกับการหาค่าสูงสุดจากค่าที่คำนวณต่อแถว ไม่ใช่แค่การสรุปคอลัมน์โดยตรง

นิยม 6 ยาก 5 ประโยชน์ 6

6 5 6
STARTOFMONTH Time Intelligence STARTOFMONTH(<Dates>)

STARTOFMONTH คืนวันแรกของเดือนเป็นตาราง 1 แถว ใช้กับการวัดที่ขึ้นต่อจุดเวลา เช่น ยอดคงเหลือ บัญชี หรือสินค้าคงคลัง

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
UPPER Text UPPER(<Text>)

UPPER แปลงข้อความให้เป็นตัวพิมพ์ใหญ่ทั้งหมด ใช้บ่อยเพื่อปรับปรุงคุณภาพข้อมูลและทำให้การเปรียบเทียบข้อความแม่นยำ

นิยม 6 ยาก 2 ประโยชน์ 6

6 2 6
FIRSTNONBLANK Time Intelligence FIRSTNONBLANK(<Column>, <Expression>)

FIRSTNONBLANK คืนค่าตัวแรกของ Column ที่ทำให้ Expression ไม่เป็น BLANK ใช้บ่อยเพื่อหา "ค่าแรกที่มีข้อมูล" เช่นวันแรกที่มียอดขาย (คืนค่าเป็นวันที่) และมักใช้ร่วมกับ time intelligence

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
GROUPBY Table manipulation GROUPBY(<Table>, [<GroupBy_ColumnName>], [<Name>], [<Expression>])

GROUPBY สร้างตารางสรุปโดยจัดกลุ่มตามคอลัมน์ที่กำหนด และเพิ่มคอลัมน์คำนวณแบบกลุ่มต่อกลุ่มได้ โดยใช้ CURRENTGROUP() เข้าถึงแถวภายในกลุ่ม เหมาะกับการคำนวณซ้อนหรือคำนวณจากคอลัมน์ชั่วคราว (local columns)

นิยม 6 ยาก 6 ประโยชน์ 6

6 6 6
CLOSINGBALANCEWEEK Time Intelligence CLOSINGBALANCEWEEK(<Expression>, <Calendar>[, <Filter>])

CLOSINGBALANCEWEEK ประเมินนิพจน์ (มาตรวัด) ที่วันสิ้นสัปดาห์ของบริบทวันที่ปัจจุบัน สำคัญสำหรับรายงานปิดสัปดาห์และ snapshot ยอดคงเหลือ

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
FIRSTDATE Time Intelligence FIRSTDATE(<Dates>)

FIRSTDATE คืนค่าวันที่แรกในบริบทตัวกรองปัจจุบัน เหมาะใช้เป็นตัวกรองให้ CALCULATE เพื่อหายอดขาย/จำนวนของวันแรกในช่วงที่เลือก

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
GENERATESERIES Table manipulation GENERATESERIES(<StartValue>, <EndValue>[, <IncrementValue>])

GENERATESERIES สร้างตารางคอลัมน์เดียวที่เป็นลำดับตัวเลขจาก StartValue ถึง EndValue ด้วย increment ที่กำหนดได้ เหมาะกับตารางช่วย parameter table หรือสร้างชุดตัวเลขสำหรับ what-if analysis

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
ENDOFYEAR Time Intelligence ENDOFYEAR(<Dates>[, <YearEndDate>])

ENDOFYEAR คืนตารางวันที่ของวันสิ้นปีตามบริบทวันที่ปัจจุบัน และรองรับการกำหนดวันสิ้นปีบัญชี เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อประเมินมาตรวัดที่วันสิ้นปี

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
COUNTX Aggregation COUNTX(<table>, <expression>)

COUNTX ไล่ประเมินนิพจน์ทีละแถวในตาราง แล้วนับจำนวนแถวที่ได้ผลลัพธ์ไม่ว่าง เหมาะสำหรับการนับจากค่าที่คำนวณต่อแถว ไม่ใช่นับคอลัมน์ตรง ๆ

นิยม 6 ยาก 5 ประโยชน์ 6

6 5 6
KEEPFILTERS Filter KEEPFILTERS(<filter>)

KEEPFILTERS เป็นฟังก์ชันปรับตัวกรองที่ใช้ภายใน CALCULATE เพื่อ “คงตัวกรองเดิมไว้” แล้วนำตัวกรองใหม่มารวมกันแบบ AND (ตัดกันเฉพาะส่วนที่ตรงกัน) แทนพฤติกรรมปกติที่มักเขียนทับตัวกรองเดิมของคอลัมน์เดียวกัน

นิยม 6 ยาก 6 ประโยชน์ 6

6 6 6
WEEKDAY Date and Time WEEKDAY(<Date>, [<ReturnType>])

WEEKDAY คืนค่าเลขวันในสัปดาห์ (1-7) จากวันที่ที่กำหนด สามารถปรับรูปแบบให้เริ่มจากอาทิตย์หรือจันทร์ได้ตามต้องการ เหมาะสำหรับการแยกวันทำงาน วันหยุด หรือวิเคราะห์พฤติกรรมตามวัน

นิยม 6 ยาก 2 ประโยชน์ 6

6 2 6
PARALLELPERIOD Time Intelligence PARALLELPERIOD(<Dates>, <NumberOfIntervals>, <Interval>)

PARALLELPERIOD คืนตารางวันที่ที่ขนานกับช่วงเวลาปัจจุบัน แต่เลื่อนไปข้างหน้าหรือย้อนหลัง และขยายขอบเขตให้ครอบคลุมทั้งหน่วยเวลาที่ระบุ (MONTH/QUARTER/YEAR) เสมอ เหมาะกับการเทียบยอดรวมทั้งเดือน/ไตรมาส/ปี

นิยม 6 ยาก 5 ประโยชน์ 7

6 5 7
CONTAINSSTRING Information =CONTAINSSTRING(<within_text>, <find_text>)

CONTAINSSTRING ตรวจสอบว่าข้อความหนึ่งมีข้อความอื่นเป็นส่วนหนึ่งหรือไม่ แล้วคืนค่า TRUE หรือ FALSE ตัวเลือกนี้ไม่สนใจตัวพิมพ์ใหญ่เล็ก

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
TRIM Text TRIM(<text>)

ฟังก์ชันทำความสะอาดข้อความ ลบช่องว่างส่วนเกินนำหน้า ท้าย และช่องว่างหลายตัวระหว่างคำ โดยคงไว้ช่องว่างเดี่ยวระหว่างคำเท่านั้น

นิยม 6 ยาก 2 ประโยชน์ 6

6 2 6
ENDOFWEEK Time Intelligence ENDOFWEEK(<Calendar>)

ฟังก์ชัน ENDOFWEEK คืนตารางวันที่ที่แสดงวันสิ้นสุดของสัปดาห์ตามบริบทวันที่ปัจจุบัน ใช้สำหรับการวิเคราะห์ข้อมูลตามระดับสัปดาห์ และการเปรียบเทียบเมตริกส์ณวันปิดสัปดาห์

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
LASTDATE Time Intelligence LASTDATE(<Dates>)

LASTDATE คืนค่าตารางที่มีวันที่สุดท้ายในบริบทตัวกรองปัจจุบัน มักใช้เป็นตารางตัวกรองให้ CALCULATE เพื่อคำนวณ measure ณ วันสุดท้ายของช่วงที่เลือก และสามารถใช้ MAXX เพื่อแปลงผลเป็น scalar date ได้

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
NEXTWEEK Time Intelligence NEXTWEEK(<Dates>)

NEXTWEEK คืนตารางวันที่ของสัปดาห์ถัดไปจากบริบทวันที่ปัจจุบัน มักใช้เป็นตารางตัวกรองใน CALCULATE เพื่อคำนวณค่าแบบ "สัปดาห์ถัดไป"

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
COUNTBLANK Aggregation COUNTBLANK(<column>)

COUNTBLANK นับจำนวนค่า BLANK ในคอลัมน์ ช่วยวัดความครบถ้วนของข้อมูลและตรวจสอบคุณภาพข้อมูลภายใต้บริบทตัวกรองปัจจุบัน

นิยม 6 ยาก 2 ประโยชน์ 6

6 2 6
DATESBETWEEN Time Intelligence DATESBETWEEN(<Dates>, <StartDate>, <EndDate>)

DATESBETWEEN คืนตารางวันที่ที่อยู่ระหว่าง StartDate และ EndDate (รวมวันเริ่ม/วันจบ) เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อคำนวณตามช่วงวันที่ที่กำหนดเอง

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
DATESINPERIOD Time Intelligence DATESINPERIOD(<Dates>, <StartDate>, <NumberOfIntervals>, <Interval>[, <EndBehavior>])

DATESINPERIOD คืนตารางวันที่แบบเคลื่อนที่ โดยเริ่มจาก StartDate และขยายไปตามจำนวนช่วงและหน่วยที่กำหนด เหมาะกับการทำคำนวณแบบ rolling YTD, rolling average, ย้อนหลัง หรือล่วงหน้าแบบยืดหยุ่น

นิยม 6 ยาก 5 ประโยชน์ 6

6 5 6
PREVIOUSWEEK Time Intelligence PREVIOUSWEEK(<dates>)

PREVIOUSWEEK คืนตารางวันที่ของสัปดาห์ก่อนหน้า ตามบริบทวันที่ปัจจุบัน เหมาะสำหรับตัวชี้วัดแบบ Week-over-Week โดยนำตารางวันที่ไปใช้เป็นตัวกรองเวลา

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
ENDOFMONTH Time Intelligence ENDOFMONTH(<Dates>)

ENDOFMONTH คืนตารางวันที่ของวันสิ้นเดือนตามปฏิทิน เหมาะกับ Semi-Additive Calculations เช่น ยอดคงเหลือ, Inventory, หรือ Closing Balance ที่ต้องการ snapshot ณ สิ้นเดือน ไม่ว่าจะมีข้อมูลจริงในวันนั้นหรือไม่

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
EDATE Date and Time =EDATE(<start_date>, <months>)

EDATE คืนค่าวันที่ที่ห่างจากวันเริ่มต้นตามจำนวนเดือนที่ระบุ ใช้สำหรับคำนวณวันครบกำหนด หรือวันกำหนดส่งแบบเดือนปกติ

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
CALENDARAUTO Date and Time CALENDARAUTO([<FiscalYearEndMonth>])

CALENDARAUTO สร้างตารางวันที่อัตโนมัติโดยอิงช่วงวันที่ที่พบในโมเดล และสามารถกำหนดเดือนสิ้นสุดปีบัญชีได้ เหมาะกับการสร้าง Date table แบบเร็ว ๆ แต่ควรระวังค่าวันที่ผิดปกติในข้อมูล

นิยม 6 ยาก 3 ประโยชน์ 7

6 3 7
ISFILTERED Information ISFILTERED(<ColumnName>)

ISFILTERED ตรวจสอบว่าคอลัมน์ที่ระบุมีตัวกรองโดยตรงหรือไม่ ใช้เพื่อสร้าง Dynamic Measures ที่เปลี่ยนพฤติกรรมตามการกรองของผู้ใช้

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
SELECTCOLUMNS Table manipulation SELECTCOLUMNS(<Table>, [<Name>], <Expression>, [<Name>], <Expression>, ...)

สร้างตารางใหม่โดยเลือกเฉพาะคอลัมน์ที่ต้องการจากตารางต้นฉบับและเพิ่มคอลัมน์ที่คำนวณได้ ต่างจาก ADDCOLUMNS ตรงที่ SELECTCOLUMNS เริ่มจากตารางว่างแล้วเพิ่มเฉพาะคอลัมน์ที่ระบุ ทำให้สามารถปรับโครงสร้างตารางและเลือกข้อมูลที่จำเป็นได้อย่างยืดหยุ่น

นิยม 6 ยาก 5 ประโยชน์ 6

6 5 6
TREATAS Table manipulation TREATAS(table_expression, column, [column])

TREATAS เป็นเสมือนการสร้าง "virtual relationship" โดยไม่ต้องแก้โมเดล ช่วยให้ส่งเงื่อนไขข้ามตารางที่ไม่เชื่อมกัน หรือเมื่อต้องการส่งหลายคีย์พร้อมกัน

นิยม 6 ยาก 6 ประโยชน์ 7

6 6 7
UNION Table manipulation UNION(<table1>, <table2>[, <table3>, ...])

UNION รวมหลายตารางให้เป็นตารางเดียวด้วยการต่อแถว โดยเก็บแถวซ้ำไว้ทั้งหมด เหมาะกับการรวมชุดข้อมูลที่มีโครงสร้างคอลัมน์สอดคล้องกัน

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
DATESWTD Time Intelligence DATESWTD(<calendar>)

DATESWTD คืนตารางวันที่ตั้งแต่ต้นสัปดาห์จนถึงวันที่ในบริบทปัจจุบัน ใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อคำนวณยอดสะสมตั้งแต่ต้นสัปดาห์

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
SUBSTITUTE Text SUBSTITUTE(<text>, <old_text>, <new_text>, [<instance_num>])

SUBSTITUTE ค้นหาและแทนที่ข้อความในสตริง สามารถแทนที่ทุกครั้งหรือเพียงครั้งที่ n เหมาะกับการปรับรูปแบบและทำความสะอาดข้อมูลโดยตรวจสอบเนื้อหา ไม่ใช่ตำแหน่ง

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
STARTOFYEAR Time Intelligence STARTOFYEAR(<Dates> [, <YearEndDate>])

STARTOFYEAR คืนตาราง 1 แถวที่มีวันที่วันแรกของปีในบริบทปัจจุบัน ใช้สำหรับ semi-additive measure เช่น inventory balance หรือเปรียบเทียบ year-to-date

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
TOTALWTD Time Intelligence TOTALWTD(<expression>, <calendar> [, <filter>])

คำนวณยอดสะสมตั้งแต่ต้นสัปดาห์ (Week-to-Date) ของ Expression ตามคอลัมน์วันที่ที่กำหนด โดยรวมข้อมูลจากวันแรกของสัปดาห์จนถึงวันปัจจุบันในบริบท

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
CONTAINS Information CONTAINS(<table>, <columnName>, <value>[, <columnName>, <value>]...)

CONTAINS ค้นหาแถวในตารางและคืนค่า TRUE/FALSE เมื่อหาเจอค่าที่ตรงกับเงื่อนไขที่กำหนด เจ๋งเพราะมันเร็วกว่า COUNTROWS + FILTER มาก

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
PREVIOUSMONTH Time Intelligence PREVIOUSMONTH(<dates>)

PREVIOUSMONTH คืนตารางวันที่ทั้งหมดของเดือนก่อนหน้า โดยอ้างอิงจากวันแรกของบริบทปัจจุบัน เหมาะกับการทำ Measure เปรียบเทียบ Month-over-Month เช่น ยอดขายเดือนก่อนหน้า ข้อแตกต่างสำคัญกับ DATEADD คือ PREVIOUSMONTH คืนทั้งเดือนเสมอ ไม่ว่าจะเลือกวันไหนก็ตาม

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
MINX Aggregation MINX(<table>, <expression>, [<variant>])

MINX ประเมินนิพจน์สำหรับทุกแถวของตาราง แล้วคืนค่าที่น้อยที่สุด ต่างจาก MIN ที่ใช้กับคอลัมน์โดยตรง MINX เหมาะกับการหาค่าต่ำสุดจากค่าที่คำนวณต่อแถว เช่น (Quantity × UnitPrice)

นิยม 6 ยาก 5 ประโยชน์ 6

6 5 6
STARTOFWEEK Time Intelligence STARTOFWEEK(<calendar>)

STARTOFWEEK คืนตารางที่มีวันแรกของสัปดาห์ตามปฏิทินที่กำหนด ใช้เป็นตัวกรองใน CALCULATE หรือดึงค่าสเกลาร์ด้วย MINX ฟังก์ชันนี้จำเป็นต้องมีตารางวันที่ที่ถูกกำหนดไว้เป็น Date Table

นิยม 6 ยาก 4 ประโยชน์ 6

6 4 6
NOT Logical NOT(<logical>)

NOT ใช้กลับค่าตรรกะของนิพจน์ (TRUE ↔ FALSE) เหมาะกับการเขียนเงื่อนไขแบบปฏิเสธ และนิยมใช้ร่วมกับ IF/AND/OR เพื่อสร้างตรรกะที่อ่านชัดเจน

นิยม 6 ยาก 2 ประโยชน์ 6

6 2 6
DATEVALUE Date and Time DATEVALUE(<DateText>)

DATEVALUE แปลงข้อความวันที่ (text) ให้เป็น datetime โดยอ้างอิงตามการตั้งค่า locale ของ model เหมาะกับข้อมูลวันที่ที่เก็บเป็นข้อความและต้องแปลงเป็นวันที่จริงเพื่อการคำนวณตามเวลา

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
TOTALQTD Time Intelligence TOTALQTD(<Expression>, <Dates> [, <Filter>])

TOTALQTD คำนวณยอดสะสมตั้งแต่วันแรกของไตรมาส (Q1/Q2/Q3/Q4) จนถึงวันที่ล่าสุดใน filter context ปัจจุบัน.ส่วนตัวผมใช้บ่อยมากตอน analyze quarterly performance และการวิเคราะห์ KPI รายไตรมาสครับ

นิยม 6 ยาก 4 ประโยชน์ 7

6 4 7
MID Text MID(<Text>, <StartNum>, <NumChars>)

MID คืนสตริงย่อยจากข้อความ โดยเริ่มที่ StartNum (เริ่มนับที่ 1) และดึง NumChars ตัว ใช้บ่อยในการแยก/ตัดข้อความร่วมกับ LEFT/RIGHT/FIND/SEARCH

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
TOTALMTD Time Intelligence TOTALMTD(<Expression>, <Dates> [, <Filter>])

คำนวณยอดสะสมตั้งแต่ต้นเดือน (Month-to-Date) ของ Expression ตามคอลัมน์วันที่ที่กำหนด เป็นทางลัดของ CALCULATE + DATESMTD

นิยม 6 ยาก 4 ประโยชน์ 7

6 4 7