Page 1 of 1

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

Posted: Fri Feb 04, 2022 4:06 pm
by sosadboy
เนื่องจากผมต้องสรุปรายงานเป็นประจำ ซึ่งมีปัญหาตรงที่จำนวนชิ้นวัตถุดิบที่นำเข้าไม่เป็นมาตรฐานเดียวกัน มาทั้งชิ้นใหญ่ และชิ้นที่ส่งมาเป็นสำเร็จรูปแล้วทำให้ต้องหารชิ้นที่ส่งมาเป็นเป็นชิ้นสำเร็จรูปกลับเป็นชิ้นใหญ่เพื่อง่ายและสอดคล้องต่อการสรุปงาน โดยปัญหาหลักๆ คือในรายงานต้นฉบับไม่มีสัดส่วนชิ้นใหญ่ต่อชิ้นสำเร็จรูปให้ ทำให้ต้องมานั่งหารเอง โดยอาศัยตัวรายละเอียดของสินค้าที่มีคีย์เวิร์ดบางคำที่สอดคล้องกับสัดส่วนของงานมาใช้ในการเขียนสูตร(ตำแหน่งของคีย์เวิร์ดในแต่ละรายการจะไม่อยู่ตำแหน่งเดียวกัน รายการเดียวกันจะอยู่ตำแหน่งเดียวกัน)
และเขียนสูตรได้ดังในไฟล์ตัวอย่างตรงคอลัมป์ B2 โดยมีสูตรดังนี้

=IFERROR(IF(SEARCH("A",$A2)>0,$D2/8),
IFERROR(IF(SEARCH("B",$A2)>0,$D2/7),
IFERROR(IF(SEARCH("C",$A2)>0,$D2/6),
IFERROR(IF(SEARCH("D",$A2)>0,$D2/5),
IFERROR(IF(SEARCH("E",$A2)>0,$D2/4),
IFERROR(IF(SEARCH("F",$A2)>0,$D2/3),
IFERROR(IF(SEARCH("G",$A2)>0,$D2/2),
$C2)))))))

ซึ่งได้ผลตามต้องการ แต่ส่วนตัวแล้วรู้สึกว่าสูตรที่ได้ยาวเกินไป และได้มาจากการลองผิดลองถูกเอง จึงอยากทราบว่าสูตรที่เขียนเหมาะสมแล้วหรือไม่ สามารถย่อสูตรหรือมีวิธีการที่เหมาะสมและครอบคลุมกว่านี้หรือไม่ครับ และหากมีคีย์เวิร์ดต่างกันแต่อยู่ในเงื่อนไขเดียวกันสามารถรวมสูตรกันได้ไหมครับ เช่น

หากค้นหาเจอคีย์เวิร์ด A หรือ Z อย่างใดอย่างหนึ่งให้หารด้วย 8 สามารถเขียนสูตรให้อยู่ในรูปแบบประมาณนี้ได้หรือไม่ครับ

ส่วนตัวลองใช้ฟังก์ชัน OR มาช่วยแต่ยังไม่สามารถทำได้ครับ เหมือนยังเขียนสูตรไม่ถูก ฝากท่านผู้รู้ช่วยแนะนำด้วยครับ ขอบคุณครับ

Re: ต้องการย่อสูตรที่ใช้ฟังก์ชัน IF แบบหลายชั้นหรือมีฟังก์ชันไหนที่เหมาะสมกว่าไหมครับ

Posted: Fri Feb 04, 2022 5:33 pm
by norkaz
...

B2

=IFERROR(D2/LOOKUP(8,ROW($A$1:$A$7)/(SEARCH(CHAR(ROW($A$65:$A$90)),A2)>0),{8,7,6,5,4,3,2}),D2)

Norkaz

Re: ต้องการย่อสูตรที่ใช้ฟังก์ชัน IF แบบหลายชั้นหรือมีฟังก์ชันไหนที่เหมาะสมกว่าไหมครับ

Posted: Sat Feb 05, 2022 9:07 am
by sosadboy
ขอบคุณมากครับผม จะลองแกะสูตรเอาไปต่อยอดเพิ่มครับ