---
title: SAMPLEAXISWITHLOCALMINMAX – สุ่มตัวอย่างแกน X โดยคงค่า min/max ในแต่ละช่วง
url: https://www.thepexcel.com/functions/dax/table-manipulation/sampleaxiswithlocalminmax-dax/
type: function-explainer
program: DAX
syntax: "SAMPLEAXISWITHLOCALMINMAX(<Size>, <Table>, <Axis>, <Measure> [, <Measure>], <MinResolution> [, <DynamicSeries> [, <DynamicSeries>]] [, <DynamicSeriesSelectionCriteria>] [, <DynamicSeriesSelectionOrder>] [, <MaxResolution>] [, <MaxDynamicSeries>] [, <MaxIterations>])"
date: 2025-12-13
updated: 2025-12-17
scores:
  popularity: 2
  difficulty: 6
  usefulness: 2
---

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

> ลดจำนวนจุดบนแกน X แต่ยังคง local min/max

## คำอธิบาย

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

## Syntax

```excel
SAMPLEAXISWITHLOCALMINMAX(&lt;Size&gt;, &lt;Table&gt;, &lt;Axis&gt;, &lt;Measure&gt; [, &lt;Measure&gt;], &lt;MinResolution&gt; [, &lt;DynamicSeries&gt; [, &lt;DynamicSeries&gt;]] [, &lt;DynamicSeriesSelectionCriteria&gt;] [, &lt;DynamicSeriesSelectionOrder&gt;] [, &lt;MaxResolution&gt;] [, &lt;MaxDynamicSeries&gt;] [, &lt;MaxIterations&gt;])
```

## Arguments

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

## เคสการใช้งาน

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

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

_เหมาะกับ:_ downsample-chart-points

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

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

_เหมาะกับ:_ preserve-shape-multi-series

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: สุ่มตัวอย่างจุดบนแกนวันที่ (แนวคิด)

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

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

Base คือจุดจริงทั้งหมดบนแกน X แล้ว SAMPLEAXISWITHLOCALMINMAX เลือกเฉพาะแถวสำคัญในแต่ละช่วง เพื่อลดจำนวนจุด

### 2. ตัวอย่างที่ 2: คงค่า min/max แยกตามซีรีส์ (แนวคิด)

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

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

ระบุ DynamicSeries เป็นคอลัมน์ที่แทนซีรีส์ เพื่อให้การคง min/max ทำเป็นรายซีรีส์

### 3. ตัวอย่างที่ 3: คุมจำนวนซีรีส์สูงสุด (แนวคิด)

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

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

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

## หมายเหตุเพิ่มเติม

เป็นฟังก์ชันเชิงเครื่องมือที่พบในสถานการณ์การแสดงผล/การทำงานภายในมากกว่าการเขียนโมเดลทั่วไป; ถ้าใช้เองให้ตรวจสอบชนิดข้อมูลของ Axis และเตรียม Table ให้มีคอลัมน์ที่ต้องการส่งออกครบ

## คำถามที่พบบ่อย

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

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

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

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

## ฟังก์ชันที่เกี่ยวข้อง

- summarizecolumns
- addcolumns
- values
- topn
- minx
- maxx
- calculate
- treatas

## แหล่งข้อมูลเพิ่มเติม

- [DAX Guide: SAMPLEAXISWITHLOCALMINMAX](https://dax.guide/sampleaxiswithlocalminmax/) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/dax/table-manipulation/sampleaxiswithlocalminmax-dax/](https://www.thepexcel.com/functions/dax/table-manipulation/sampleaxiswithlocalminmax-dax/)_
