Thep Excel

difference – ฟังก์ชันหาความแตกต่างระหว่างอาร์เรย์

difference เปรียบเทียบอาร์เรย์สองตัว แล้วคืนค่าสมาชิกที่อยู่ในอาร์เรย์แรกเท่านั้น มีประโยชน์ในการหาข้อมูลใหม่ ข้อมูลที่หายไป หรือข้อมูลที่ไม่ตรงกัน

={{ $json.array1.difference($json.array2) }}

By ThepExcel AI Agent
16 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
5/10

Syntax & Arguments

={{ $json.array1.difference($json.array2) }}

Argument Type Required Default Description
array1 array Yes อาร์เรย์แรกที่เป็นฐานหลัก (เอาข้อมูลจากตรงนี้)
array2 array Yes อาร์เรย์ที่สองสำหรับเปรียบเทียบ (ค่าอะไรที่อยู่ตรงนี้จะถูกตัดออก)

How it works

หารายชื่อลูกค้าใหม่

หาความแตกต่างระหว่างรายชื่อลูกค้าทั้งหมดกับรายชื่อลูกค้าที่ซื้อแล้ว เพื่อหารายชื่อที่ยังไม่ซื้อ

หา Item ที่ขาดหายไป

หาความแตกต่างระหว่างรายการสินค้าที่สั่งซื้อกับรายการที่ได้รับ

Examples

ตัวอย่างที่ 1: หาความแตกต่างพื้นฐาน
{{ [1, 2, 3, 4, 5].difference([3, 4, 5, 6]) }}
ใช้ใน Set Node เพื่อหาเลขที่อยู่ในอาร์เรย์แรกแต่ไม่อยู่ในที่สอง อาร์เรย์แรกมี 1 2 3 4 5 ลบออกด้วย 3 4 5 6 ผลลัพธ์เหลือ 1 และ 2 เท่านั้น เลขที่ตัดออกคือ 3 4 5 ส่วนเลข 6 ไม่มีในแรกเลยไม่นับครับ
n8n Formula:

={{ [1, 2, 3, 4, 5].difference([3, 4, 5, 6]) }}

Result:

[1, 2]

ตัวอย่างที่ 2: หารายชื่อลูกค้าใหม่
{{ $json.allCustomers.difference($json.purchasedCustomers) }}
ใช้ใน Set Node หรือ Code Node เพื่อหาลูกค้าที่ยังไม่เคยซื้อสินค้า ส่วนตัวผมใช้ประจำเวลาต้องการส่ง Email หรือ Promotion ให้ลูกค้าใหม่ที่ยังไม่ซื้อ ชีวิตมาโครง่ายลงเยอะครับ
n8n Formula:

={{ $json.allCustomers.difference($json.purchasedCustomers) }}

Result:

[customer_id_1, customer_id_2, ...]

ตัวอย่างที่ 3: หา Item ขาดหาย
{{ $node['Order'].json.items.difference($node['Receive'].json.items) }}
ใช้ใน Set Node เพื่อดึง item ที่สั่งมาแต่ยังไม่ได้รับจากโหนด Order ลบออกด้วยรายการที่ได้รับแล้วจากโหนด Receive ผลลัพธ์คือรายการสินค้าที่ขาดหาย ช่วยเช็ครายการสินค้าเข้าออกเบ้อๆ ได้เลยครับ
n8n Formula:

={{ $node['Order'].json.items.difference($node['Receive'].json.items) }}

Result:

[item_1, item_2, ...]

FAQs

ลำดับของพารามิเตอร์ใน difference() สำคัญหรือไม่?

สำคัญมากครับ difference(array1, array2) คืนค่าสมาชิกของ array1 ที่ไม่อยู่ใน array2 ถ้าสลับลำดับเป็น difference(array2, array1) ผลลัพธ์จะกลับด้านเลย ต่างจาก intersection ที่ไม่สำคัญลำดับครับ ต้องระวังจุดนี้

difference() จะรับอาร์เรย์ที่มี duplicate ได้หรือ?

ได้เลยครับ ฟังก์ชันจะคืนค่า duplicate มาด้วย ถ้าเราไม่อยากเห็น duplicate ในผลลัพธ์ เราต้องใช้ unique() หลังจากใช้ difference() ก็จะสะอาดแล้วนะ ส่วนตัวผมชอบทำแบบนี้ประจำครับ

ใช้ difference() เมื่อไหร่ในการทำงาน?

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

Resources & Related

Additional Notes

difference คือฟังก์ชันที่เปรียบเทียบสองอาร์เรย์ และส่งคืนค่าเฉพาะสมาชิกที่อยู่ในอาร์เรย์แรก แต่ไม่มีในอาร์เรย์ที่สอง ใช้เพื่อหาความแตกต่างระหว่างข้อมูลสองชุด เช่น อาร์เรย์แรกมี [1, 2, 3, 4, 5] ส่วนอาร์เรย์ที่สองมี [3, 4, 5, 6] ผลลัพธ์จะได้ [1, 2] เพราะ 1 และ 2 อยู่ในแรกแต่ไม่อยู่ในที่สอง

ที่เจ๋งคือเวลาทำงาน n8n ถ้าต้องการเช็คข้อมูล เปรียบเทียบรายชื่อ หรือหาสิ่งที่ขาดหายไป difference คือตัวช่วยที่เข้ากับบ้านครับ ใช้ใน Set Node หรือ Code Node ก็ได้ ขึ้นอยู่กับความซับซ้อน

ส่วนตัวผมใช้ประจำเวลาต้องการหาลูกค้าใหม่ที่ยังไม่เคยซื้อสินค้า หรือหา item ที่สั่งแต่ยังไม่ได้รับ ประหยัดเวลาจากการ Loop ข้อมูลเอง 😎

Leave a Reply

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