---
title: IF.EAGER – IF แบบประเมินค่าทั้งสองแขนง (eager)
url: https://www.thepexcel.com/functions/dax/logical/if-eager-dax/
type: function-explainer
program: DAX
syntax: "IF.EAGER(<LogicalTest>, <ValueIfTrue>[, <ValueIfFalse>])"
date: 2025-12-13
updated: 2025-12-17
scores:
  popularity: 3
  difficulty: 4
  usefulness: 3
---

# IF.EAGER – IF แบบประเมินค่าทั้งสองแขนง (eager)

> IF ที่อาจประเมินทั้งสองฝั่ง (eager execution)

## คำอธิบาย

IF.EAGER ทำงานเหมือน IF แต่ใช้แผน eager ที่อาจประเมินทั้ง value_if_true และ value_if_false ทำให้ควรระวังเรื่อง performance และกรณีที่อีกแขนงอาจเกิด error แม้เงื่อนไขจะไม่เลือกแขนงนั้น

## Syntax

```excel
IF.EAGER(&lt;LogicalTest&gt;, &lt;ValueIfTrue&gt;[, &lt;ValueIfFalse&gt;])
```

**Variant**

```excel
IF.EAGER(&lt;LogicalTest&gt;, &lt;ValueIfTrue&gt;)
```

ถ้าเงื่อนไขเป็นเท็จจะคืน BLANK

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| LogicalTest | Yes | logical |  | เงื่อนไขที่ต้องการทดสอบ (TRUE/FALSE) |
| ValueIfTrue | Yes | expression |  | ค่าที่คืนเมื่อ LogicalTest เป็น TRUE |
| ValueIfFalse | No | expression | BLANK() | ค่าที่คืนเมื่อ LogicalTest เป็น FALSE |

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

### ทดสอบ/ดีบักนิพจน์ที่อยากให้ถูกประเมินแน่นอน

บางกรณีอยากให้ทั้งสองฝั่งถูกคำนวณเพื่อดูผล/ตรวจคุณภาพ

_เหมาะกับ:_ debug-evaluation

### แทน IF ในบางรูปแบบของคิวรี

ใช้เมื่อคุณตั้งใจให้ทั้งสองฝั่งถูกประเมิน (ต้องเข้าใจผลกระทบก่อน)

_เหมาะกับ:_ intentional-eager-branching

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: โครงสร้างพื้นฐานเหมือน IF

```excel
ผลลัพธ์ = IF.EAGER([Flag] = 1, "ใช่", "ไม่ใช่")
```

**ผลลัพธ์:** `คืนข้อความตามเงื่อนไข`

รูปแบบการเขียนเหมือน IF แต่ควรระวังเรื่อง eager evaluation

### 2. ตัวอย่างที่ 2: ระวังกรณีอีกแขนงอาจเกิด error

```excel
ตัวอย่างที่ควรระวัง =
IF.EAGER(
    [Denominator] = 0,
    BLANK(),
    [Numerator] / [Denominator]
)
```

**ผลลัพธ์:** `อาจยังเกิด error ได้ ถ้าระบบประเมินแขนงการหารด้วย`

ถ้าคุณต้องการหลีกเลี่ยงการประเมินแขนงที่อาจ error ควรใช้ IF หรือ DIVIDE แทน

### 3. ตัวอย่างที่ 3: ใช้ IF ปกติเมื่ออยากให้ปลอดภัยกว่า

```excel
ปลอดภัยกว่า =
IF(
    [Denominator] = 0,
    BLANK(),
    [Numerator] / [Denominator]
)
```

**ผลลัพธ์:** `โดยทั่วไปอ่านง่ายและคุมความเสี่ยงเรื่อง eager evaluation ได้ดีกว่า`

IF มักเหมาะกว่าในงานทั่วไป โดยเฉพาะเมื่ออีกแขนงคำนวณหนักหรือมีโอกาส error

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

ใช้ IF.EAGER เฉพาะเมื่อคุณตั้งใจและเข้าใจผลกระทบของ eager evaluation ต่อ performance และความเสี่ยงเรื่อง error ของอีกแขนง

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

**Q: ทำไมต้องมี IF.EAGER ในเมื่อมี IF อยู่แล้ว?**

IF.EAGER ให้พฤติกรรมการประเมินแบบ eager ที่บางครั้งช่วยรูปแบบคิวรี/สถานการณ์เฉพาะ แต่ต้องใช้ด้วยความเข้าใจ เพราะอาจทำให้ทั้งสองแขนงถูกประเมิน

**Q: ถ้าต้องการหลีกเลี่ยงหารด้วยศูนย์ควรใช้อะไร?**

แนะนำ DIVIDE เพราะออกแบบมาสำหรับการหารและการจัดการตัวหารเป็นศูนย์โดยตรง หรือใช้ IF ปกติร่วมกับเงื่อนไขก็ได้

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

- [IF – ตรวจสอบเงื่อนไขและคืนค่าตามผลลัพธ์ TRUE/FALSE](https://www.thepexcel.com/functions/dax/logical/if-dax/)
- [IFERROR – คืนค่าแทนเมื่อเกิดข้อผิดพลาด](https://www.thepexcel.com/functions/dax/logical/iferror-dax/)
- divide
- blank
- [TRUE – คืนค่าตรรกะ TRUE](https://www.thepexcel.com/functions/dax/logical/true-dax/)
- [FALSE – คืนค่าตรรกะ FALSE](https://www.thepexcel.com/functions/dax/logical/false-dax/)

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

- [DAX Guide: IF.EAGER](https://dax.guide/if-eager/) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/dax/logical/if-eager-dax/](https://www.thepexcel.com/functions/dax/logical/if-eager-dax/)_
