---
title: ABS – ฟังก์ชันหาค่าสัมบูรณ์ (Absolute Value)
url: https://www.thepexcel.com/functions/dax/math-and-trig/abs-dax/
type: function-explainer
program: DAX
syntax: ABS( Number )
date: 2025-12-19
scores:
  popularity: 7
  difficulty: 2
  usefulness: 7
---

# ABS – ฟังก์ชันหาค่าสัมบูรณ์ (Absolute Value)

> ส่งกลับค่าสัมบูรณ์ของตัวเลข (ลบเครื่องหมายเครื่องหมาย)

## คำอธิบาย

ABS คืนค่าสัมบูรณ์ของตัวเลข โดยลบเครื่องหมายบวกหรือลบออก ตัวเลขบวกจะคืนค่าเดิม ตัวเลขลบจะกลายเป็นบวก ศูนย์ยังคงเป็นศูนย์
.
ที่เจ๋งคือฟังก์ชันนี้รักษาชนิดข้อมูลเดิม (currency, decimal, integer) และรองรับค่า infinity ด้วย ส่วนตัวผมใช้บ่อยมากตอนต้องคำนวณความแตกต่างระหว่างค่า โดยไม่สนใจว่าค่าไหนมากกว่าหรือน้อยกว่าครับ 💡

## Syntax

```excel
ABS( Number )
```

**Variant**

```excel
ABS( Column )
```

ใช้กับคอลัมน์ DAX ที่มีค่าตัวเลข เช่น ABS(Sales[Amount]) เพื่อหาค่าสัมบูรณ์ของยอดขายแต่ละรายการ

**Variant**

```excel
ABS( Expression )
```

ใช้กับนิพจน์ทางคณิตศาสตร์ เช่น ABS(Revenue - Expense) เพื่อหาความแตกต่างโดยไม่สนใจเครื่องหมาย

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| Number | Yes | decimal, currency, or integer |  | ตัวเลขที่ต้องการหาค่าสัมบูรณ์ สามารถเป็นตัวเลขโดยตรง ค่าจากคอลัมน์ หรือผลลัพธ์จากนิพจน์ทางคณิตศาสตร์ เช่น -15, Column[Amount], Revenue - Expense |

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

### หาระยะห่างจากค่าเป้าหมาย

คำนวณความเบี่ยงเบนของยอดขายหรือกำไรจากค่าเป้าหมาย โดยไม่สนใจว่าเกินหรือต่ำกว่า ตัวอย่าง: ABS(ActualSales - TargetSales)

_เหมาะกับ:_ variance-analysis

### คำนวณการเปลี่ยนแปลงจากปีที่แล้ว

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

_เหมาะกับ:_ year-over-year-change

### หาระยะห่างของค่านอกแนว (Outliers)

หาระยะห่างของข้อมูลจากค่าเฉลี่ยหรือมัธยฐาน เพื่อระบุค่าที่แปลกออกไป เช่น ลูกค้าที่มีการซื้อเป็นจำนวนมากหรือน้อยเป็นพิเศษ

_เหมาะกับ:_ outlier-detection

### คำนวณค่าใช้จ่ายเพิ่มเติมหรือเงินคืน

หาจำนวนเงินที่ต้องชำระเพิ่มเติมหรือเงินคืน โดยใช้ ABS เพื่อตรวจสอบความแตกต่าง เช่น ABS(InvoiceAmount - PaymentReceived)

_เหมาะกับ:_ payment-reconciliation

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: หาค่าสัมบูรณ์ของตัวเลขลบ

```excel
Absolute Value = ABS(-150)
```

**ผลลัพธ์:** `150`

ค่าลบ -150 ถูกแปลงเป็นค่าบวก 150 โดย ABS ลบเครื่องหมายลบออก
.
ง่ายมากครับ ไม่ว่าจะเป็นเลขบวกหรือลบ ผลลัพธ์จะเป็นบวกเสมอ 😎

### 2. ตัวอย่างที่ 2: หาความแตกต่างของยอดขาย

```excel
Sales Variance = ABS([ActualSales] - [TargetSales])
```

**ผลลัพธ์:** `25000 (เบี่ยงเบนไป 25,000 บาท)`

ถ้า ActualSales คือ 225,000 และ TargetSales คือ 250,000 ผลต่างคือ -25,000 แต่ ABS จะลบเครื่องหมายให้เป็น 25,000
.
วิธีนี้ทำให้เราเห็นขนาดของความเบี่ยงเบนได้ชัดเจน โดยไม่สนใจว่าขายได้มากกว่าหรือน้อยกว่าเป้าครับ 💡

### 3. ตัวอย่างที่ 3: หาการเปลี่ยนแปลงจากปีที่แล้ว

```excel
YoY Change = ABS([CurrentYear] - [PreviousYear])
```

**ผลลัพธ์:** `45000 (เพิ่มขึ้น 45,000 บาท)`

ถ้ายอดขายปีนี้ 345,000 และปีที่แล้ว 300,000 ผลต่างคือ 45,000
.
ABS จะคืนค่า 45,000 เสมอ ไม่ว่ายอดปีนี้จะมากกว่าหรือน้อยกว่าปีที่แล้วก็ตาม เราจะได้เห็นแค่ว่ามันเปลี่ยนไปเท่าไรครับ

### 4. ตัวอย่างที่ 4: หาความเบี่ยงเบนจากค่าเฉลี่ย

```excel
Deviation = ABS([SalesAmount] - AVERAGE([SalesAmount]))
```

**ผลลัพธ์:** `15000 (ห่างจากค่าเฉลี่ย 15,000 บาท)`

คำนวณว่า SalesAmount ห่างจากค่าเฉลี่ยเท่าไร โดยไม่สนใจว่าสูงหรือต่ำกว่า
.
วิธีนี้เจ๋งมากตอนหา outliers ครับ จะได้เห็นว่าแถวไหนที่แปลกไปจากปกติ ส่วนตัวผมใช้บ่อยมากตอนทำ data quality check 😎

### 5. ตัวอย่างที่ 5: รวมยอดที่มีความแตกต่างสูง

```excel
Large Variances = SUMX(FILTER(Budget, ABS([Budget] - [Actual]) > 100000), [Amount])
```

**ผลลัพธ์:** `2500000 (รวมยอดที่เบี่ยงเบนสูงกว่า 100,000 บาท)`

ใช้ SUMX กับ FILTER เพื่อเลือกเฉพาะแถวที่มีความแตกต่างระหว่าง Budget กับ Actual มากกว่า 100,000 บาท (ไม่ว่าบวกหรือลบ)
.
แล้วค่อยรวม Amount ของแถวที่ผ่านเงื่อนไข เทคนิคนี้ใช้ได้ดีตอนต้องการมองหาแค่รายการที่เบี่ยงเบนมากๆ ครับ 💡

### 6. ตัวอย่างที่ 6: ใช้ในสูตรเพื่อหารายการที่ไม่มีหนี้

```excel
Outstanding Balance = CALCULATE(SUMX(Invoices, ABS([InvoiceAmount] - [PaidAmount])), [Status] <> "Paid")
```

**ผลลัพธ์:** `125000 (ยังค้างชำระ 125,000 บาท)`

หาความแตกต่างระหว่างจำนวนใบแจ้งหนี้กับจำนวนที่ชำระแล้ว โดยใช้ ABS เพื่อหาจำนวนที่ยังค้างชำระ
.
แล้วกรองเฉพาะรายการที่ Status ไม่ใช่ "Paid" เพื่อดูแค่หนี้ที่ยังค้างอยู่ ส่วนตัวผมชอบใช้วิธีนี้ตอนทำ reconciliation ครับ

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

💡 **Best Practice ที่ผมใช้:**
.
ABS มีประโยชน์มากตอนทำ variance analysis ครับ ส่วนตัวผมใช้บ่อยมากตอนต้องหาความเบี่ยงเบนจากเป้าหมาย หรือตอนต้องหา outliers ที่แปลกออกไปจากปกติ
.
ที่เจ๋งคือ ABS ทำงานได้กับ DirectQuery mode ด้วย ทำให้ใช้ได้กับข้อมูลขนาดใหญ่โดยไม่ต้องกังวล 😎
.
⚠️ **ข้อควรระวัง:**
.
1) ผลลัพธ์ของ ABS จะมีค่า ≥ 0 เสมอ (ไม่มีทางเป็นลบ)
2) ถ้าใช้กับ NULL จะได้ BLANK กลับมา
3) ABS รักษา data type เดิม (currency → currency, decimal → decimal)
4) ง่ายกว่าและเร็วกว่าการเขียน IF(x  10000)` จะได้แถวที่เบี่ยงเบนมากกว่า 10,000 ไม่ว่าบวกหรือลบก็ตาม
.
หรือใช้ใน SUMX เพื่อรวมความแตกต่างทั้งหมด เช่น `SUMX(Sales, ABS([Variance]))` จะได้ยอดรวมของความเบี่ยงเบนทั้งหมด

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

**Q: ความแตกต่างระหว่าง ABS กับ SIGN คืออะไร?**

ABS หาค่าสัมบูรณ์ (ลบเครื่องหมายออก) เช่น ABS(-5) = 5
.
ส่วน SIGN คืนเครื่องหมาย: +1 สำหรับบวก, -1 สำหรับลบ, 0 สำหรับศูนย์ เช่น SIGN(-5) = -1
.
ง่ายๆ คือ ใช้ ABS เมื่อต้องการ "ขนาด" (magnitude) ใช้ SIGN เมื่อต้องการ "ทิศทาง" (direction) ครับ 😎

**Q: ABS สามารถใช้กับตัวเลขบวกได้หรือไม่?**

ได้ครับ ABS ทำงานกับตัวเลขทุกแบบ
.
ตัวเลขบวก → คืนค่าเดิม เช่น ABS(150) = 150
ตัวเลขลบ → กลายเป็นบวก เช่น ABS(-150) = 150
ศูนย์ → ยังคงเป็นศูนย์ ABS(0) = 0
.
ง่ายมากครับ ไม่มีอะไรซับซ้อน 😎

**Q: ABS เก็บรักษาชนิดข้อมูลหรือไม่?**

ใช่ครับ ABS รักษา data type เดิมไว้
.
ส่ง decimal → ได้ decimal กลับมา
ส่ง currency → ได้ currency กลับมา
ส่ง integer → ได้ integer กลับมา
.
นี่ดีมาก เพราะแตกต่างจากบางฟังก์ชันที่อาจเปลี่ยน type โดยไม่บอกครับ ทำให้ผลลัพธ์ชัดเจนและปลอดภัย 💡

**Q: ABS รองรับค่า infinity หรือไม่?**

ใช่ครับ ABS รองรับ positive infinity และ negative infinity ด้วย
.
เช่น ABS(-∞) = ∞ และ ABS(∞) = ∞
.
แม้ว่าจะไม่ค่อยได้ใช้บ่อย แต่มีประโยชน์ในการคำนวณทางคณิตศาสตร์ขั้นสูงหรือ edge cases ที่ซับซ้อนครับ

**Q: ความแตกต่างระหว่าง ABS กับ SQRT(Power(x,2)) คืออะไร?**

ทั้งคู่ให้ผลลัพธ์เดียวกัน (ค่าสัมบูรณ์) แต่ ABS ง่ายกว่าและเร็วกว่ามากครับ
.
ABS(-5) = 5 ✅ (กระชับ ชัดเจน)
SQRT(POWER(-5,2)) = 5 ❌ (ยาว ซับซ้อน)
.
ส่วนตัวผมแนะนำให้ใช้ ABS เสมอ เพราะง่าย อ่านเข้าใจได้ทันที และ engine ก็ optimize ได้ดีกว่า 😎

**Q: ABS สามารถใช้ในคำนวณแถว (Calculated Column) ได้หรือไม่?**

ได้ครับ ABS ใช้ได้ทั้งใน Measure และ Calculated Column โดยไม่มีข้อจำกัดใดๆ
.
**Calculated Column:** `[Absolute Amount] = ABS([Amount])`
**Measure:** `[Variance] = ABS([Budget] - [Actual])`
.
เลือกใช้ตามความเหมาะสมของงานครับ ถ้าต้องการค่าคงที่ใช้ calculated column ถ้าต้องการให้ยืดหยุ่นตาม filter context ใช้ measure

**Q: สามารถใช้ ABS ร่วมกับ FILTER ได้หรือไม่?**

ได้ครับ ABS ใช้คู่กับ FILTER ได้ดีมาก
.
ตัวอย่าง: `FILTER(Sales, ABS([Amount]) > 1000)` จะเลือกเฉพาะแถวที่มีขนาดสัมบูรณ์มากกว่า 1,000 (ไม่ว่าบวกหรือลบ)
.
ส่วนตัวผมใช้บ่อยมากตอนต้องหาความแตกต่างหรือการเปลี่ยนแปลงที่มีนัยสำคัญครับ เช่น หา variance ที่มากกว่า threshold ที่กำหนด 💡

**Q: ทำไมต้องใช้ ABS แทนการเขียน IF เพื่อตรวจสอบเครื่องหมาย?**

ABS ง่ายกว่า สั้นกว่า และเร็วกว่ามากครับ
.
เปรียบเทียบ:
- `ABS(x)` ✅ (กระชับ ชัดเจน)
- `IF(x < 0, -x, x)` ❌ (ยาว เสี่ยง logic error)
.
นอกจากนี้ ABS ยังอ่านเข้าใจได้ทันทีว่าต้องการหาขนาด (magnitude) ส่วนตัวผมแนะนำให้ใช้ ABS เสมอเมื่อต้องการลบเครื่องหมายครับ 😎

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

- sign-dax
- sqrt-dax
- power-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/)
- [SUMX – Iterator Function สำหรับคำนวณผลรวมแบบ Row-by-Row ใน DAX](https://www.thepexcel.com/functions/dax/aggregation/sumx-dax/)
- [CURRENCY – แปลงค่าเป็นชนิด Currency](https://www.thepexcel.com/functions/dax/math-and-trig/currency-dax/)
- [PREVIOUSYEAR – ตารางวันที่ของปีก่อนหน้า](https://www.thepexcel.com/functions/dax/time-intelligence/previousyear-dax/)

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

- [DAX Guide: ABS](https://dax.guide/abs/) _(documentation)_
- [SQLBI: Mathematical Functions in DAX](https://www.sqlbi.com/) _(guide)_
- [Microsoft Learn: DAX Functions](https://learn.microsoft.com/en-us/dax/) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/dax/math-and-trig/abs-dax/](https://www.thepexcel.com/functions/dax/math-and-trig/abs-dax/)_
