---
title: ISAFTER – ตรวจตำแหน่งค่าที่อยู่ถัดไปตามลำดับ
url: https://www.thepexcel.com/functions/dax/information/isafter-dax/
type: function-explainer
program: DAX
syntax: "ISAFTER(<expression>, <compare_to>[, sort_order][, ...])"
date: 2025-12-14
updated: 2025-12-17
scores:
  popularity: 3
  difficulty: 4
  usefulness: 3
---

# ISAFTER – ตรวจตำแหน่งค่าที่อยู่ถัดไปตามลำดับ

> ตรวจตำแหน่งที่อยู่หลังค่าที่อ้างอิงตามลำดับที่กำหนด

## คำอธิบาย

ISAFTER ตรวจว่าค่าในบริบทปัจจุบันอยู่ “หลัง” ค่าอ้างอิงตามลำดับที่กำหนด (ASC/DESC) และรองรับหลายคีย์ต่อเนื่อง เช่น Country แล้ว State ใช้สร้างตัวกรองแบบ start-after หรือทำหน้าต่างข้อมูลที่อิงลำดับได้อย่างชัดเจน

## Syntax

```excel
ISAFTER(&lt;expression&gt;, &lt;compare_to&gt;[, sort_order][, ...])
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| expression | Yes | scalar |  | ค่าหรือคอลัมน์ที่ใช้เปรียบเทียบตำแหน่งกับค่าอ้างอิง (มักเป็นคอลัมน์ที่ถูกเรียงลำดับ) |
| compare_to | Yes | scalar |  | ค่าหรือคอลัมน์ที่เป็นจุดอ้างอิง เพื่อตรวจว่าค่าแรกอยู่หลังหรือไม่ |
| sort_order | No | ASC\|DESC |  | ทิศทางการเรียงลำดับ (ค่าเริ่มต้นคือ ASC) สามารถระบุซ้ำเมื่อเปรียบเทียบหลายคีย์ต่อเนื่อง |

## ตัวอย่าง

### 1. กรองยอดขายหลังวันตัด

```excel
Future Sales = 
CALCULATE(
    SUM( Sales[Amount] ),
    ISAFTER( 'Date'[Date], DATE(2024, 1, 1), ASC )
)
```

**ผลลัพธ์:** `ยอดขายหลังวันที่ 1 ม.ค. 2024`

ISAFTER ตรวจว่าบริบทวันที่ปัจจุบันอยู่หลังวันที่ตัดตามลำดับ ASC จึงกรองเฉพาะยอดขายอนาคต

### 2. ใช้หลายคีย์ Country + State

```excel
After Key = 
FILTER(
    Geo,
    ISAFTER(
        Geo[Country], "TH", ASC,
        Geo[State], "BKK", ASC
    )
)
```

**ผลลัพธ์:** `คืนแถวที่อยู่หลัง (TH, BKK) ตามลำดับ Country -> State`

เปรียบเทียบคีย์ Country และ State ต่อเนื่องด้วย sort_order แยกแต่ละคู่ เพื่อคัดเฉพาะแถวที่มา “ถัดไป” หลังจุดอ้างอิง

### 3. สร้างเงื่อนไขเลื่อนหน้าต่างข้อมูล

```excel
After Context Sum = 
CALCULATE(
    SUM( Sales[Amount] ),
    ISAFTER( Sales[Date], MAX(Sales[Date]), ASC )
)
```

**ผลลัพธ์:** `ผลรวมยอดขายหลังวันที่ในบริบทปัจจุบัน`

ใช้ ISAFTER เป็นตัวกรองใน CALCULATE เพื่อสร้างหน้าต่างข้อมูลที่เริ่มหลังวันที่ใน context ปัจจุบันอย่างชัดเจน

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

ISAFTER ใช้กับเซตที่จัดเรียง (เช่นจาก VALUES/ORDERBY) เพื่อตรวจตำแหน่งในลำดับ ควรเตรียมเซตให้เรียงก่อนเรียกฟังก์ชัน

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

**Q: แตกต่างจาก ISONORAFTER อย่างไร**

ISAFTER ต้องการตำแหน่ง “ถัดไป” เท่านั้น (ไม่รวมค่าที่เท่ากับจุดอ้างอิง) ส่วน ISONORAFTER รวมค่าที่เท่ากับจุดอ้างอิงด้วย

**Q: ต้องใช้กับตารางที่เรียงลำดับแล้วหรือไม่**

ควรระบุลำดับ (ASC/DESC) ให้ชัดเจน โดยใช้คอลัมน์ที่มีการ sort อยู่แล้วเพื่อให้ผลลัพธ์ตรงตามที่คาดหวัง

**Q: ใช้ใน DirectQuery ได้หรือไม่**

ไม่รองรับในโหมด DirectQuery สำหรับคอลัมน์คำนวณหรือ RLS ตามข้อกำหนดของ Microsoft

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

- isbefore-dax
- isonorafter-dax
- offset-dax
- [MATCHBY – กำหนดคอลัมน์สำหรับระบุแถวปัจจุบัน (Window Functions)](https://www.thepexcel.com/functions/dax/filter/matchby-dax/)
- [ORDERBY – กำหนดลำดับการเรียงในฟังก์ชัน Window](https://www.thepexcel.com/functions/dax/filter/orderby-dax/)
- [PARTITIONBY – แบ่งกลุ่มก่อนคำนวณใน Window Functions](https://www.thepexcel.com/functions/dax/filter/partitionby-dax/)
- [CALCULATE – ฟังก์ชันหลักของ DAX ที่ควบคุม Filter Context](https://www.thepexcel.com/functions/dax/filter/calculate-dax/)
- [FILTER – กรองตารางด้วยเงื่อนไขที่ซับซ้อน (Iterator Function)](https://www.thepexcel.com/functions/dax/filter/filter-dax/)

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

- [Microsoft Learn: DAX](https://learn.microsoft.com/en-us/dax/isafter-function-dax) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/dax/information/isafter-dax/](https://www.thepexcel.com/functions/dax/information/isafter-dax/)_
