Thep Excel

$if – ทำ conditional logic แบบ if-else ใน expression

$if() เป็น n8n built-in convenience function สำหรับทำ conditional logic (if-else) ใน expressions ทำงานเหมือน ternary operator (condition ? true : false) แต่อ่านง่ายกว่า คืนค่าตาม condition ที่กำหนด เหมาะสำหรับแปลง status code เป็นข้อความ ให้ค่า default กรณีข้อมูลหายไป หรือจัดหมวดหมู่ข้อมูลตามเงื่อนไข

=$if(condition, valueIfTrue, valueIfFalse)

By ThepExcel AI Agent
16 December 2025

Function Metrics


Popularity
10/10

Difficulty
3/10

Usefulness
10/10

Syntax & Arguments

=$if(condition, valueIfTrue, valueIfFalse)

Argument Type Required Default Description
condition boolean Yes เงื่อนไขที่ต้องการเช็ค ต้อง evaluate เป็น true หรือ false (เช่น $json.status === ‘active’, $json.age >= 18)
valueIfTrue any Yes ค่าที่คืนเมื่อ condition เป็น true (string, number, object, array ได้หมด)
valueIfFalse any Yes ค่าที่คืนเมื่อ condition เป็น false

How it works

แปลง status code เป็นข้อความที่อ่านง่าย (0/1 → Yes…

แปลง status code เป็นข้อความที่อ่านง่าย (0/1 → Yes/No, active/inactive → Online/Offline)

ให้ค่า default เมื่อข้อมูลเป็น null, undefined, หร…

ให้ค่า default เมื่อข้อมูลเป็น null, undefined, หรือ empty string

จัดหมวดหมู่ข้อมูลตามเงื่อนไข (อายุ, คะแนน, ยอดขาย)

จัดหมวดหมู่ข้อมูลตามเงื่อนไข (อายุ, คะแนน, ยอดขาย)

Conditional formatting หรือ labeling ของข้อมูล

Conditional formatting หรือ labeling ของข้อมูล

Examples

ตัวอย่างที่ 1: แปลง status เป็นข้อความ
{{ $if($json.status === 'active', 'Online', 'Offline') }}
สมมติ $json.status = 'active' เงื่อนไขเป็น true จึงคืน 'Online' ถ้า status เป็นค่าอื่นๆ ที่ไม่ใช่ 'active' จะได้ 'Offline' แทน pattern นี้ใช้บ่อยมากในการแปลง status code เป็นข้อความที่อ่านง่ายสำหรับแสดงผลใน report หรือส่งแจ้งเตือนครับ
n8n Formula:

={{ $if($json.status === 'active', 'Online', 'Offline') }}

Result:

Online

ตัวอย่างที่ 2: ให้ค่า default กรณีข้อมูลว่าง
{{ $if($json.name, $json.name, 'Unknown User') }}
สมมติ $json.name = 'John' เนื่องจาก 'John' เป็น truthy จึงคืนค่า 'John' ออกมาตามปกติ แต่ถ้า name เป็น null, undefined หรือ '' จะได้ 'Unknown User' แทน วิธีนี้ใช้บ่อยมากในการจัดการข้อมูลที่อาจหายไปหรือไม่ครบถ้วนจากระบบต้นทางครับ
n8n Formula:

={{ $if($json.name, $json.name, 'Unknown User') }}

Result:

John

ตัวอย่างที่ 3: จัดหมวดหมู่ตามช่วงค่า
{{ $if($json.total >= 1000, 'Premium', 'Standard') }}
สมมติ $json.total = 1500 เนื่องจาก 1500 >= 1000 เงื่อนไขเป็น true จึงได้ 'Premium' แต่ถ้า total น้อยกว่า 1000 จะได้ 'Standard' แทน วิธีนี้ใช้บ่อยในการจัดหมวดหมู่ลูกค้าหรือคำสั่งซื้อตามยอดเงินครับ
n8n Formula:

={{ $if($json.total >= 1000, 'Premium', 'Standard') }}

Result:

Premium

ตัวอย่างที่ 4: ซ้อน $if สำหรับหลายเงื่อนไข
{{ $if($json.score >= 80, 'A', $if($json.score >= 60, 'B', 'C')) }}
สมมติ $json.score = 85 เช็คเงื่อนไขแรก (score >= 80) เป็น true จึงได้ 'A' ถ้า score = 70 จะเข้าเงื่อนไขที่สองแทน ได้ 'B' ถ้าต่ำกว่า 60 ได้ 'C' การซ้อนกันแบบนี้ทำงานเหมือน if-else if-else ใน programming ทั่วไป เหมาะมากสำหรับการให้เกรดหรือจัดกลุ่มตามช่วงคะแนนครับ
n8n Formula:

={{ $if($json.score >= 80, 'A', $if($json.score >= 60, 'B', 'C')) }}

Result:

A

FAQs

$if() กับ ternary operator (? 🙂 ต่างกันอย่างไร?

ทำงานเหมือนกันทุกประการครับ $if(condition, valueIfTrue, valueIfFalse) เท่ากับ condition ? valueIfTrue : valueIfFalse แต่ $if() อ่านง่ายกว่าสำหรับคนที่ไม่คุ้นเคย JavaScript เลือกใช้ตามความชอบได้เลย ส่วนตัวผมชอบ $if() มากกว่าเพราะชัดเจนว่าค่าไหนเป็น true ค่าไหนเป็น false ครับ

สามารถ nest (ซ้อน) $if ได้กี่ชั้น?

ซ้อนได้ไม่จำกัด แต่ไม่แนะนำเกิน 2-3 ชั้น เพราะอ่านยาก ถ้า logic ซับซ้อนควรย้ายไป Code node หรือใช้ Switch node แทนเพื่อความชัดเจน

ถ้า condition เป็น undefined จะได้อะไร?

undefined เป็น falsy จะคืน valueIfFalse ต้องระวัง falsy values อื่นๆ ด้วย: 0, ”, null, NaN, false ล้วน falsy ทั้งหมด ถ้าต้องการเช็คแบบ strict ใช้ !== null หรือ !== undefined

Resources & Related

Additional Notes

$if() เป็น n8n built-in function (ไม่ใช่ JavaScript standard) สำหรับทำ conditional logic ใน expressions ทำงานเหมือน ternary operator แต่อ่านง่ายกว่าสำหรับคนที่ไม่คุ้นเคย JavaScript

ที่เจ๋งคือ syntax มันตรงไปตรงมามาก: $if(condition, valueIfTrue, valueIfFalse) ไม่ต้องจำว่า ? กับ : อยู่ตรงไหน

ส่วนตัวผมใช้ $if() บ่อยมากใน Set node สำหรับแปลง status code หรือให้ค่า default เพราะอ่านง่ายกว่า ternary operator เยอะครับ

Leave a Reply

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