สูตร VLOOKUP สำหรับงานขาย: 7 ตัวอย่างตั้งแต่ใบเสนอราคาถึงค่าคอมมิชชัน
· อ่านประมาณ 12 นาที
ฝ่ายขายเป็นทีมที่ใช้ สูตร VLOOKUP มากที่สุดทีมหนึ่ง ทั้งทำใบเสนอราคา ดึงราคาสินค้า คิดส่วนลด คำนวณค่าคอมมิชชัน และตรวจสต็อก บทความนี้รวม 7 ตัวอย่างการใช้ VLOOKUP ในงานขายสินค้า ที่นำไปใช้ได้ทันที พร้อมข้อมูลตัวอย่างและสูตรที่คัดลอกไปปรับใช้ได้
ทบทวนสูตร VLOOKUP ใน 30 วินาที
=VLOOKUP(ค่าที่ค้นหา, ตารางข้อมูล, ลำดับคอลัมน์, FALSE)
- ค่าที่ค้นหา ต้องอยู่ในคอลัมน์แรก (ซ้ายสุด) ของตารางข้อมูล
- ลำดับคอลัมน์ นับจากคอลัมน์แรกของตารางเป็น 1
- FALSE = ค้นหาแบบตรงตัว ใช้กับรหัสสินค้าและรหัสลูกค้า ส่วน TRUE = ค้นหาแบบช่วง ใช้กับตารางขั้นบันได เช่น ส่วนลดและค่าคอม
ข้อมูลตัวอย่าง: ชีท "สินค้า"
| A: รหัส | B: ชื่อสินค้า | C: หมวด | D: ราคาปลีก | E: ราคาส่ง | F: คงเหลือ |
|---|---|---|---|---|---|
| SKU-101 | น้ำดื่ม 600 มล. (แพ็ก 12) | เครื่องดื่ม | 65 | 55 | 340 |
| SKU-102 | กาแฟกระป๋อง (แพ็ก 6) | เครื่องดื่ม | 99 | 84 | 120 |
| SKU-201 | ขนมปังกรอบ | ขนม | 35 | 29 | 15 |
| SKU-202 | มันฝรั่งทอด | ขนม | 30 | 25 | 260 |
| SKU-301 | น้ำยาล้างจาน 500 มล. | ของใช้ | 45 | 38 | 80 |
สมมติว่าตารางนี้อยู่ในช่วง สินค้า!$A$2:$F$500 (หรือแปลงเป็น Table ชื่อ tblProduct ด้วย Ctrl + T เพื่อให้เพิ่มสินค้าได้โดยไม่ต้องแก้สูตร)
ตัวอย่างที่ 1: ทำใบเสนอราคา พิมพ์รหัสแล้วชื่อและราคาขึ้นเอง
ในชีท "ใบเสนอราคา" คอลัมน์ A = รหัส, B = ชื่อสินค้า, C = ราคาต่อหน่วย, D = จำนวน, E = จำนวนเงิน
B2: =VLOOKUP(A2, สินค้า!$A$2:$F$500, 2, FALSE)
C2: =VLOOKUP(A2, สินค้า!$A$2:$F$500, 4, FALSE)
E2: =C2*D2

ใบเสนอราคามักมีแถวว่างเผื่อไว้ ซึ่งจะขึ้น #N/A ให้ครอบสูตรแบบนี้เพื่อเว้นว่างเมื่อยังไม่กรอกรหัส และเตือนเมื่อกรอกรหัสผิด
=IF(A2="", "", IFNA(VLOOKUP(A2, สินค้า!$A$2:$F$500, 2, FALSE), "รหัสไม่ถูกต้อง"))
ถ้าตารางสินค้าอยู่คนละชีทแล้วเขียนสูตรไม่ถูก อ่านวิธีละเอียดในการสร้างสูตร VLOOKUP ข้ามชีทใน Excel
ตัวอย่างที่ 2: เลือกราคาปลีกหรือราคาส่งตามประเภทลูกค้า
ใส่ประเภทลูกค้าไว้ที่เซลล์ $H$1 เป็น "ปลีก" หรือ "ส่ง" (ทำเป็น Dropdown จะสะดวกที่สุด) แล้วให้สูตรเปลี่ยนเลขคอลัมน์ตามประเภท
=VLOOKUP(A2, สินค้า!$A$2:$F$500, IF($H$1="ส่ง", 5, 4), FALSE)
ถ้าเลือก "ส่ง" จะดึงคอลัมน์ที่ 5 (ราคาส่ง) ถ้าไม่ใช่ จะดึงคอลัมน์ที่ 4 (ราคาปลีก) ใบเสนอราคาใบเดียวใช้ได้กับลูกค้าทุกประเภท

ตัวอย่างที่ 3: คิดส่วนลดตามยอดซื้อแบบขั้นบันได
สร้างตารางส่วนลดในชีท "ส่วนลด" โดยเรียงยอดซื้อขั้นต่ำจากน้อยไปมาก (จำเป็นมากสำหรับ VLOOKUP แบบ TRUE)
| A: ยอดซื้อขั้นต่ำ | B: ส่วนลด |
|---|---|
| 0 | 0% |
| 5,000 | 3% |
| 20,000 | 5% |
| 50,000 | 8% |
ถ้ายอดรวมก่อนส่วนลดอยู่ที่ E20
อัตราส่วนลด (E21): =VLOOKUP(E20, ส่วนลด!$A$2:$B$5, 2, TRUE)
ยอดส่วนลด (E22): =ROUND(E20*E21, 2)
ยอดสุทธิ (E23): =E20-E22
VLOOKUP แบบ TRUE จะหาค่าที่มากที่สุดที่ไม่เกินยอดซื้อ เช่น ยอด 27,500 บาท จะได้ขั้น 20,000 คือส่วนลด 5% ข้อดีคือเมื่อนโยบายส่วนลดเปลี่ยน แก้แค่ตาราง ไม่ต้องแก้สูตร IF ซ้อนหลายชั้น

ตัวอย่างที่ 4: คำนวณค่าคอมมิชชันพนักงานขาย
ใช้หลักเดียวกับส่วนลด ตาราง "ค่าคอม" เรียงยอดขายจากน้อยไปมาก
| A: ยอดขายขั้นต่ำ | B: อัตราค่าคอม |
|---|---|
| 0 | 0% |
| 100,000 | 2% |
| 300,000 | 3.5% |
| 500,000 | 5% |
ในชีทสรุปยอดรายเดือน คอลัมน์ A = ชื่อพนักงาน, B = ยอดขายเดือนนี้
อัตรา (C2): =VLOOKUP(B2, ค่าคอม!$A$2:$B$5, 2, TRUE)
ค่าคอม (D2): =ROUND(B2*C2, 0)

พนักงานที่ขายได้ 420,000 บาท ได้อัตรา 3.5% เป็นค่าคอม 14,700 บาท (สูตรนี้คิดอัตราเดียวทั้งยอด ถ้าบริษัทคิดค่าคอมแบบแบ่งขั้นสะสมเหมือนภาษี ต้องใช้สูตรอีกแบบ)
ยอดขายรายเดือนของแต่ละคน รวมจากรายการขายได้ด้วย SUMIFS เช่น =SUMIFS(ขาย!$H:$H, ขาย!$D:$D, A2)
ตัวอย่างที่ 5: ตรวจสต็อกก่อนยืนยันคำสั่งซื้อ
ในใบสั่งซื้อ ให้ดึงจำนวนคงเหลือมาเทียบกับจำนวนที่ลูกค้าสั่ง (D2)
คงเหลือ (F2): =VLOOKUP(A2, สินค้า!$A$2:$F$500, 6, FALSE)
สถานะ (G2): =IF(A2="", "", IF(D2>F2, "สินค้าไม่พอ ขาด " & D2-F2, "พร้อมส่ง"))

เพิ่ม Conditional Formatting ให้แถวที่ขึ้น "สินค้าไม่พอ" เป็นสีแดง ฝ่ายขายจะเห็นทันทีก่อนยืนยันกับลูกค้า
ตัวอย่างที่ 6: ดึงข้อมูลพนักงานขายเพื่อสรุปยอดตามทีม
รายการขายมักมีแค่รหัสพนักงานขาย ถ้าต้องการสรุปยอดตามทีมหรือภาค ให้ดึงข้อมูลจากชีท "พนักงานขาย" (A = รหัส, B = ชื่อ, C = ทีม, D = ภาค) มาเพิ่มเป็นคอลัมน์ในชีทรายการขาย
ชื่อ: =VLOOKUP(D2, พนักงานขาย!$A$2:$D$100, 2, FALSE)
ทีม: =VLOOKUP(D2, พนักงานขาย!$A$2:$D$100, 3, FALSE)
ภาค: =VLOOKUP(D2, พนักงานขาย!$A$2:$D$100, 4, FALSE)
จากนั้นสรุปยอดตามทีมหรือภาคด้วย Pivot Table ได้ทันที
ตัวอย่างที่ 7: หารหัสสินค้าที่ไม่มีในระบบ
เมื่อได้รายการสั่งซื้อจากลูกค้าหรือไฟล์จากระบบอื่น ให้ตรวจก่อนว่ามีรหัสไหนไม่อยู่ในตารางสินค้า
=IF(ISNA(VLOOKUP(A2, สินค้า!$A$2:$A$500, 1, FALSE)), "ไม่พบในระบบ", "")
กรองคอลัมน์นี้เฉพาะ "ไม่พบในระบบ" จะได้รายการที่ต้องตรวจสอบหรือเพิ่มสินค้าใหม่ ถ้าหลายรายการขึ้นไม่พบทั้งที่มีจริง มักเป็นปัญหาช่องว่างเกินหรือรหัสเป็นข้อความกับตัวเลขไม่ตรงกัน ดูวิธีแก้ใน8 สาเหตุที่ VLOOKUP ขึ้น #N/A
เคล็ดลับให้ไฟล์งานขายใช้ VLOOKUP ได้ไม่พัง
- รหัสสินค้าต้องไม่ซ้ำ VLOOKUP คืนค่าแถวแรกที่เจอเสมอ ถ้ารหัสซ้ำอาจดึงราคาเก่า ตรวจด้วย
=COUNTIF(สินค้า!$A:$A, A2)>1 - ใช้ Table สำหรับตารางสินค้า เพิ่มสินค้าใหม่แล้วสูตรหาเจอทันที
- แยกตารางราคา ส่วนลด และค่าคอมไว้ชีทเดียว และป้องกันชีท (Review > Protect Sheet) ไม่ให้คนแก้โดยไม่ตั้งใจ
- ใบเสนอราคาที่ส่งแล้ว ควรบันทึกเป็น PDF หรือ Paste Values เก็บไว้ เพราะถ้าเปลี่ยนราคาในตารางสินค้า ใบเสนอราคาเก่าที่ยังเป็นสูตรจะเปลี่ยนตาม
- ถ้าใช้ Microsoft 365 ลองใช้ XLOOKUP ซึ่งไม่ต้องนับเลขคอลัมน์ และไม่ต้องเรียงตารางขั้นบันไดก่อน
สรุป
VLOOKUP แบบ FALSE ใช้ดึงข้อมูลจากรหัส เช่น ชื่อสินค้า ราคา สต็อก และข้อมูลพนักงานขาย ส่วน VLOOKUP แบบ TRUE ใช้กับตารางขั้นบันได เช่น ส่วนลดและค่าคอมมิชชัน เพียงสองแบบนี้ก็ทำให้ใบเสนอราคาและรายงานยอดขายทำงานอัตโนมัติได้เกือบทั้งหมด
ถ้าทีมขายของคุณอยากใช้ VLOOKUP, SUMIFS และ Pivot Table ทำรายงานยอดขายได้เอง ดูหลักสูตรอบรม Excel Advance ที่สอน Excel แบบ Workshop จากข้อมูลตัวอย่างจริง หรือจัดอบรม Excel In-house ที่ใช้ตัวอย่างแบบเดียวกับงานขายของบริษัทคุณ
- #VLOOKUP
- #สูตร Excel งานขาย
- #ค่าคอมมิชชัน
- #ใบเสนอราคา
- #Excel Advance