Thep Excel

DGETดึงค่าเดียวจาก Database

ดึงค่าเดียวออกจากคอลัมน์ที่ระบุของตารางแบบฐานข้อมูล โดยต้องมีแถวที่ตรงกับเงื่อนไขพอดี 1 แถวเท่านั้น ถ้าเจอมากกว่าหรือไม่เจอเลยจะได้ error ทันที

fx
=DGET(database, field, criteria)

ความนิยม3/10
ความยาก5/10
ประโยชน์4/10

อัปเดต 2 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
database Range ฐานข้อมูล
field Text/Number คอลัมน์
criteria Range เงื่อนไข (ต้องไม่ซ้ำ)

ฟังก์ชัน DGET ใน Excel ช่วยดึงค่าเดียวจากฐานข้อมูลที่ตรงตามเงื่อนไข เหมาะกับการค้นหาแบบ “ต้องเจอแค่รายการเดียว” เช่น ดึงราคาของ SKU ที่ไม่ซ้ำกัน ถ้าต้องการค่าจากแถวแรกที่เจอโดยไม่สนว่าจะซ้ำกี่แถว ควรใช้ XLOOKUP หรือ VLOOKUP แทน เพราะ DGET จะฟ้อง error ทันทีที่ข้อมูลซ้ำ

Examples

ดึงราคาสินค้าจากรหัส SKU ที่ไม่ซ้ำ (งานสต็อก/จัดซื้อ)DGET(Products, "ราคา", H1:H2)

เกณฑ์ใน H1:H2 คือ SKU="A1023" เนื่องจาก SKU ในตาราง Products ไม่ซ้ำกันเลย DGET จึงเจอแถวเดียวพอดีและดึงราคามาได้ = 850.50 บาท

fx
=DGET(Products, "ราคา", H1:H2)

ผลลัพธ์850.50
ดึงชื่อพนักงานจากรหัสพนักงาน (งาน HR)DGET(Employees, "ชื่อ-นามสกุล", K1:K2)

เกณฑ์ใน K1:K2 คือ รหัสพนักงาน="EMP045" ซึ่งเป็นค่าที่ไม่ซ้ำในตาราง Employees DGET จึงคืนชื่อพนักงานคนเดียวที่ตรงเงื่อนไขได้ถูกต้อง

fx
=DGET(Employees, "ชื่อ-นามสกุล", K1:K2)

ผลลัพธ์สมชาย ใจดี
ข้อควรระวัง: เงื่อนไขที่ตรงมากกว่า 1 แถวจะ errorDGET(Products, "ราคา", M1:M2)

เกณฑ์ใน M1:M2 คือ หมวดหมู่="เสื้อผ้า" ซึ่งมีสินค้าหลายรายการอยู่ในหมวดนี้ DGET จึงไม่รู้จะเลือกแถวไหน และคืนค่า #NUM! ทันที ต้องเจาะเงื่อนไขให้เหลือแถวเดียวก่อนถึงจะใช้ DGET ได้

fx
=DGET(Products, "ราคา", M1:M2)

ผลลัพธ์#NUM!

FAQs

DGET กับ VLOOKUP/XLOOKUP ต่างกันอย่างไร ควรใช้ตัวไหน?+

VLOOKUP/XLOOKUP คืนค่าจากแถวแรกที่เจอเสมอ แม้จะมีข้อมูลซ้ำหลายแถวก็ไม่ error ส่วน DGET เข้มงวดกว่า คือต้องเจอตรงเงื่อนไขพอดี 1 แถวเท่านั้น ถ้าซ้ำหรือไม่เจอจะ error ทันที เหมาะกับการันตีว่าข้อมูลไม่ซ้ำจริง ๆ เช่น รหัสพนักงานหรือ SKU

ทำไม DGET ได้ #VALUE! แทนที่จะได้ #NUM!?+

#VALUE! เกิดเมื่อไม่มีแถวไหนตรงเงื่อนไขเลย (หาไม่เจอ) ส่วน #NUM! เกิดเมื่อเจอมากกว่า 1 แถวที่ตรงเงื่อนไข (ข้อมูลซ้ำ) สองอย่างนี้คนละสาเหตุ ต้องแก้ต่างกัน

ใช้ DGET ดึงค่าจากหลายคอลัมน์พร้อมกันได้ไหม?+

ไม่ได้ในสูตรเดียว DGET ดึงค่าจาก field เดียวต่อ 1 สูตรเท่านั้น ถ้าต้องการหลายคอลัมน์ต้องเขียน DGET แยกสูตรต่อคอลัมน์ หรือเปลี่ยนไปใช้ FILTER ซึ่งดึงได้ทั้งแถวในคราวเดียว

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ DGET จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้DGETDatabase
Database (2)
DMAX

DMAX หาค่าสูงสุดจากคอลัมน์ในฐานข้อมูลที่ตรงกับเงื่อนไขที่กำหนด โดยต้องใช้กับหลายเงื่อนไขที่ซับซ้อน

DMIN

DMIN ค้นหาค่าต่ำสุดจากคอลัมน์ในฐานข้อมูลที่ตรงตามเงื่อนไขที่กำหนด เหมาะสำหรับการวิเคราะห์ข้อมูลแบบมีเงื่อนไข

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่