Thep Excel

SAMPLEAXISWITHLOCALMINMAX – สุ่มตัวอย่างแกน X โดยคงค่า min/max ในแต่ละช่วง

คืนตารางย่อยจากตารางต้นทางโดยแบ่งแกน X เป็นช่วงเท่า ๆ กัน และคงแถวที่ให้ค่า Measure ต่ำสุด/สูงสุดในแต่ละช่วง (ต่อซีรีส์) เพื่อช่วยลดจำนวนจุดสำหรับการแสดงผล

=SAMPLEAXISWITHLOCALMINMAX(<Size>, <Table>, <Axis>, <Measure> [, <Measure>], <MinResolution> [, <DynamicSeries> [, <DynamicSeries>]] [, <DynamicSeriesSelectionCriteria>] [, <DynamicSeriesSelectionOrder>] [, <MaxResolution>] [, <MaxDynamicSeries>] [, <MaxIterations>])

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
2/10

Difficulty
6/10

Usefulness
2/10

Syntax & Arguments

=SAMPLEAXISWITHLOCALMINMAX(<Size>, <Table>, <Axis>, <Measure> [, <Measure>], <MinResolution> [, <DynamicSeries> [, <DynamicSeries>]] [, <DynamicSeriesSelectionCriteria>] [, <DynamicSeriesSelectionOrder>] [, <MaxResolution>] [, <MaxDynamicSeries>] [, <MaxIterations>])

Argument Type Required Default Description
Size number Yes จำนวนแถว “เป้าหมาย” ที่ต้องการให้ผลลัพธ์พยายามคืนมา (อาจได้ไม่ครบตามนี้ขึ้นกับข้อมูลและพารามิเตอร์ความละเอียด)
Table table Yes ตารางต้นทาง (table expression) ที่ต้องการสุ่มตัวอย่าง; ผลลัพธ์จะคงคอลัมน์เดิมตามตารางนี้
Axis column Yes คอลัมน์ตัวเลขหรือวันที่ที่ใช้เป็นแกน X สำหรับแบ่งเป็นช่วง (bin)
Measure expression Yes นิพจน์/เมเชอร์ที่ใช้หา local min/max ภายในแต่ละช่วงของแกน X (สามารถใส่ได้มากกว่า 1 ตัว)
MinResolution number Yes ค่าความละเอียดขั้นต่ำของการแบ่งช่วง/การวนหา (ใช้ควบคุมว่าจะแบ่งช่วงถี่แค่ไหน)
DynamicSeries column Optional ไม่ระบุ คอลัมน์ที่ใช้แยกซีรีส์ (เช่น ประเภทสินค้า/สาขา) เพื่อคง local min/max แยกตามซีรีส์; ระบุได้หลายคอลัมน์
DynamicSeriesSelectionCriteria expression Optional ไม่ระบุ เกณฑ์คัดเลือกซีรีส์แบบไดนามิก (ใช้เมื่อจำนวนซีรีส์เยอะและต้องเลือกบางส่วน)
DynamicSeriesSelectionOrder expression Optional ไม่ระบุ นิพจน์สำหรับจัดลำดับซีรีส์ก่อนคัดเลือก
MaxResolution number Optional ไม่ระบุ ค่าความละเอียดสูงสุดที่อนุญาตให้เพิ่มได้ (ช่วยจำกัดการแบ่งช่วงให้ไม่ถี่เกินไป)
MaxDynamicSeries number Optional ไม่ระบุ จำนวนซีรีส์สูงสุดที่จะนำมาพิจารณา
MaxIterations number Optional ไม่ระบุ จำนวนรอบการทำซ้ำสูงสุดเพื่อให้เข้าใกล้จำนวนแถวเป้าหมาย

How it works

ลดจำนวนจุดในกราฟเส้นที่หนาแน่นมาก

เมื่อข้อมูลมีหลายแสนจุด การสุ่มตัวอย่างช่วยให้แสดงผลเร็วขึ้น โดยยังรักษายอด/จุดต่ำสุด-สูงสุดในแต่ละช่วง

คงลักษณะกราฟเมื่อมีหลายซีรีส์

กำหนด DynamicSeries เพื่อให้การคง min/max ทำแยกตามซีรีส์ ไม่ทำให้รูปทรงบางซีรีส์เพี้ยน

Examples

ตัวอย่างที่ 1: สุ่มตัวอย่างจุดบนแกนวันที่ (แนวคิด)
จุดตัวอย่าง (แนวคิด) = VAR Base = ADDCOLUMNS( VALUES('Date'[Date]), "ยอดขาย", [Sales Amount] ) RETURN SAMPLEAXISWITHLOCALMINMAX( 200, Base, 'Date'[Date], [Sales…
Base คือจุดจริงทั้งหมดบนแกน X แล้ว SAMPLEAXISWITHLOCALMINMAX เลือกเฉพาะแถวสำคัญในแต่ละช่วง เพื่อลดจำนวนจุด
DAX Formula:

=จุดตัวอย่าง (แนวคิด) =
VAR Base =
    ADDCOLUMNS(
        VALUES('Date'[Date]),
        "ยอดขาย", [Sales Amount]
    )
RETURN
    SAMPLEAXISWITHLOCALMINMAX(
        200,
        Base,
        'Date'[Date],
        [Sales Amount],
        16
    )

Result:

ได้ตารางจุดตัวอย่างจำนวนจำกัดตามแกนวันที่ โดยคงจุดที่ทำให้ยอดขายต่ำสุด/สูงสุดในแต่ละช่วง

ตัวอย่างที่ 2: คงค่า min/max แยกตามซีรีส์ (แนวคิด)
จุดตัวอย่างแยกซีรีส์ (แนวคิด) = VAR Base = SUMMARIZECOLUMNS( 'Date'[Date], 'Product'[Category], "ยอดขาย", [Sales Amount] ) RETURN SAMPLEAXISWITHLOCALMINMAX( 500…
ระบุ DynamicSeries เป็นคอลัมน์ที่แทนซีรีส์ เพื่อให้การคง min/max ทำเป็นรายซีรีส์
DAX Formula:

=จุดตัวอย่างแยกซีรีส์ (แนวคิด) =
VAR Base =
    SUMMARIZECOLUMNS(
        'Date'[Date],
        'Product'[Category],
        "ยอดขาย", [Sales Amount]
    )
RETURN
    SAMPLEAXISWITHLOCALMINMAX(
        500,
        Base,
        'Date'[Date],
        [Sales Amount],
        16,
        'Product'[Category]
    )

Result:

ได้จุดตัวอย่างที่ยังคงจุดสูง/ต่ำในแต่ละช่วงแยกตาม Category

ตัวอย่างที่ 3: คุมจำนวนซีรีส์สูงสุด (แนวคิด)
แนวคิด: ใช้ MaxDynamicSeries เมื่อมีซีรีส์เยอะมาก SAMPLEAXISWITHLOCALMINMAX( 500, <Table>, <Axis>, <Measure>, 16, <DynamicSeries>, , , ,…
ฟังก์ชันนี้มีพารามิเตอร์หลายตัวเพื่อคุมความละเอียด/จำนวนซีรีส์/จำนวนรอบ ให้เลือกใช้เท่าที่จำเป็นกับงานจริง
DAX Formula:

=แนวคิด: ใช้ MaxDynamicSeries เมื่อมีซีรีส์เยอะมาก
SAMPLEAXISWITHLOCALMINMAX(
    500,
    <Table>,
    <Axis>,
    <Measure>,
    16,
    <DynamicSeries>,
    ,
    ,
    ,
    25
)

Result:

ช่วยจำกัดภาระการคำนวณ/การสุ่มตัวอย่างเมื่อจำนวนซีรีส์มากเกินไป

FAQs

SAMPLEAXISWITHLOCALMINMAX เหมาะกับงานแบบไหน?

เหมาะกับงานลดจำนวนจุดเพื่อการแสดงผล (visual downsampling) โดยยังรักษาลักษณะกราฟผ่านจุดต่ำสุด/สูงสุดในแต่ละช่วง

ผลลัพธ์คืนคอลัมน์อะไรบ้าง?

ผลลัพธ์คืนตารางที่มีคอลัมน์เหมือนกับตารางอินพุต (Table) ดังนั้นควรเตรียมคอลัมน์แกน X และคอลัมน์/เมเชอร์ที่ต้องใช้ก่อน

Resources & Related

Additional Notes

SAMPLEAXISWITHLOCALMINMAX ใช้ “ลดจำนวนแถว/จุดข้อมูล” จากตารางต้นทางเพื่อการแสดงผล (เช่น กราฟเส้นที่มีจุดหนาแน่นมาก) โดยจะแบ่งแกน X หลักออกเป็นช่วง (bin) ขนาดเท่ากัน แล้วเลือกแถวที่ทำให้ค่า Measure ในช่วงนั้นเป็นค่าต่ำสุด/สูงสุด (local min/max) ต่อแต่ละซีรีส์ เพื่อให้รูปทรงกราฟยังใกล้เคียงของจริงแม้จำนวนจุดลดลง

Leave a Reply

Your email address will not be published. Required fields are marked *