Page 1 of 1

ต้องการสูตรสำหรับ เช็คว่า ถ้ามีรหัสสินค้าเหมือนกัน ราคาต้องไม่มากกว่าของเดิม

Posted: Tue Sep 26, 2017 8:55 pm
by lephia
ต้องการทำ Data validation warning ให้ตรวจสอบว่า ถ้าเป็นรหัสสินค้าเดิม แล้วมีราคามากกว่าเดิมให้มีการแจ้งเตือน ผมควรใส่สูตรอย่างไรครับ

เช่น จากไฟล์ตัวอย่าง Row 2 รหัสสินค้า A001 ราคา 500, ตอนใส่ข้อมูล Row 4 รหัสสินค้า A001 เหมือนกัน แล้วตอนใส่ราคา 600 ให้มี warning แจ้งเตือน

ตัวอย่างไฟล์ครับ

Re: ต้องการสูตรสำหรับ เช็คว่า ถ้ามีรหัสสินค้าเหมือนกัน ราคาต้องไม่มากกว่าของเดิม

Posted: Tue Sep 26, 2017 9:39 pm
by snasui
:D กรณี A001 ในคอลัมน์ A มีหลาย ๆ เซลล์ ต้องการจะตรวจสอบกับค่าในเซลล์ใดเป็นหลักครับ :?:

Re: ต้องการสูตรสำหรับ เช็คว่า ถ้ามีรหัสสินค้าเหมือนกัน ราคาต้องไม่มากกว่าของเดิม

Posted: Wed Sep 27, 2017 8:00 am
by lephia
เทียบโดยใช้คอลัมน์ D(Price)ครับ โดยจะดูจาก row ก่อนหน้าที่ input ว่าราคาที่ input นี้เกินกว่าของเก่าที่เคยมีหรือไม่

เช่น
row 1 A001 price500 ไม่เกิดอะไรขึ้นเพราะเป็นรายการครั้งแรก
row 2 A001 price600 เจอ warning (เจอ 500) แล้วสมมติว่ากด ok ยอมรับค่า
row 3 A001 price550 ไม่เกิดอะไรขึ้น เพราะก่อนหน้านี้มีราคาที่แพงกว่านี้คือ 600
row 4 A001 price700 เจอ warning เพราะก่อนหน้านี้มี 600 เป็นราคาสูงสุด

ขอบคุณมากครับ

Re: ต้องการสูตรสำหรับ เช็คว่า ถ้ามีรหัสสินค้าเหมือนกัน ราคาต้องไม่มากกว่าของเดิม

Posted: Wed Sep 27, 2017 10:16 am
by parakorn
การใช้ Data validation จะแจ้งเตือน เฉพาะ Cell ที่ทำงานอยู่เท่านั้นครับ เช่น หากใช้ Data validation ดักไว้ที่ Column F
แต่ Column F ใส่สูตรทิ้งไว้อยู่แล้ว ต่อให้มีผลลัพท์ขึ้นเท่าไหร่ Data validation ก็ไม่แจ้งเตือนครับ

จากไฟล์ที่แนบมา ผมสมมติว่า User จะมีการคีย์จำนวนที่ Column E เพื่อหาผลลัพท์ (Column F ใส่สูตรทิ้งไว้ได้เลย)

ที่ Cell
I2 =LOOKUP(2,1/($A1:$A10<>""),$A1:$A10) Enter

J2 =IF((INDEX($F$2:$F$10,SMALL(IF($A$2:$A$10=$I$2,ROW($F$2:$F$10)-ROW($F$2)+1),COUNTIF($A$2:$A$10,$I$2)-1))+1)=1,9.99999999999999E+307,INDEX($F$2:$F$10,SMALL(IF($A$2:$A$10=$I$2,ROW($F$2:$F$10)-ROW($F$2)+1),COUNTIF($A$2:$A$10,$I$2)-1))+1) Ctrl+Shift+Enter

E2 > Data > Data Tools > Data Validation > Settings > ปรับ Allow เป็น Custom > ช่อง Formula ใส่สูตร =IF(F2<$J$2,1,0)
> Error Alert ปรับ Style เป็น Information แล้วกรอกข้อความที่ต้องการให้แจ้งเตือน > Ok
แล้ว Copy Cell E2 ลงไปด้านล่าง

Clear ข้อมูล สินค้า Column A ถึง E ทั้งหมด แล้วลองคีย์ทีละรายการดูครับ

Re: ต้องการสูตรสำหรับ เช็คว่า ถ้ามีรหัสสินค้าเหมือนกัน ราคาต้องไม่มากกว่าของเดิม

Posted: Wed Sep 27, 2017 10:22 am
by DhitiBank
ลองแบบนี้อีกวิธีหนึ่งครับ

1. เลือกเซลล์ F2
2. ไปที่เมนู Data validation...
  • 2.1 ที่แท็ป Settings
    • Allow: ให้เลือก custom
      Formula: ให้คีย์ =OR(COUNTIF(A$1:A1,A2)=0,F2<=MAX(IF(A$1:A1=A2,F$1:F1)))
    2.2 ที่แท็ป Error alert
    • Style: เลือก Warning
      Title กับ message จะใส่อะไรก็ได้
    2.3 OK
3. คัดลอกเซลล์ F2 >> ลากคลุม F3 ลงไปถึงแถวไหนก็ได้ที่ต้องการให้แจ้งเตือนแบบนี้ >> คลิกขวา >> paste special >> validation >> OK
2017-09-27 10_31_00-Microsoft Excel - example check price.xlsx.png
2017-09-27 10_31_53-Microsoft Excel - example check price.xlsx.png
แก้ไข
อ่อ ขออภัยครับ :shock: ผมเข้าใจผิด ไม่ได้ดูว่าคอลัมน์ F ใส่สูตรผูกเอาไว้ นึกว่าคีย์มือเอาเอง ทำตามวิธีคุณ parakorn เลยครับ