ทำไมเพิ่งเจอ! สูตร Excel คำนวณ % การเปลี่ยนแปลง ep 2 (% Growth YoY)

“อยากคำนวณ %Change เทียบกับเป้าหมาย ต้องเขียนสูตรยังไงครับ” โจ้ถามในเช้าวันสงกรานต์ที่ไม่ได้เป็นวันหยุด
“ช่วงนี้ตกเป้ากระจุยเลยพี่ คิดเปอร์เซ็นต์เปลี่ยนแปลงผิดทุกที” โจ้เสริม
“เอ … พี่คุ้น ๆ ว่าเหมือนเคยสอนสูตรนี้แล้วนะ ใช่มะ ?”
“เออใช่! พี่เคยสอนแล้ว เดี๋ยวขอหาแป๊ปนึง” โจ้ตอบพลางแบมือตบหน้าผากตัวเอง

“เจอแล้ว สูตรนี่ไง!” โจ้ร้องลั่นออฟฟิศ

=IF( AND( B4>0, C4=0 ),100%,
IF( AND( B4<0, C4=0 ),-100%,
IF( AND( B4=0, C4=0 ), 0,
(B4-C4) / ABS(C4) ) ) )

(สำหรับผู้ที่สนใจที่มาของสูตร อ่านรายละเอียดได้จากบทความ ep1 หรือคลิก ที่นี่ )

โจ้ร้องดังมาก น้องโบจึงเดินมาหาต้นเสียง เห็นผมกับโจ้สุมหัวกันเลยเข้ามาแจม นั่งดูสูตรแป๊ปนึงแล้วพูดว่า

“หนูว่าสูตรเหมือนดูซ้ำซ้อนนะคะพี่”
“เหมือนต้องการผลลัพธ์โดยดูจากเซลล์ B4 น่าจะใช้ฟังก์ชัน SIGN ได้นะคะ”
“เฮ้ย .. จริงด้วย!!”
ผมร้องลั่น เสียงดังกว่าโจ้อีก

ฟังก์ชัน SIGN คืออะไร?

ฟังก์ชัน SIGN คือฟังก์ชันที่ใช้แสดงเครื่องหมายของตัวเลข
โครงสร้างง่ายมาก คือ

SIGN( number )

number คือ ตัวเลข เช่น 2, 250, 0, -2, B4

SIGN ให้ผลลัพธ์ได้ 3 แบบ คือ 1, 0, -1
ถ้า number เป็นบวก ให้ผลลัพธ์เป็น 1
ถ้า number เป็นศูนย์ ให้ผลลัพธ์เป็น 0
ถ้า number เป็นลบ ให้ผลลัพธ์เป็น -1

เช่น
SIGN(2) = 1
SIGN(250) = 1
SIGN(0) = 0
SIGN(-2) = -1
SIGN(-250) = -1

แล้วจะเอาฟังก์ชัน SIGN มาใช้กับเคสนี้ยังไง?

มาลองวิเคราะห์สูตรเดิมกัน

=IF( AND( B4>0, C4=0 ),100%,
IF( AND( B4<0, C4=0 ),-100%,
IF( AND( B4=0, C4=0 ), 0,
(B4-C4) / ABS(C4) ) ) )

จะพบว่า IF 3 ชั้น ใช้ในกรณีที่ C4=0 หมดเลย
เพราะถ้า C4 เป็นศูนย์ ก็จับหาร (B4-C4) ไม่ได้ ไม่งั้นจะขึ้น #DIV/0!

แล้วถ้าใช้ฟังก์ชัน IFERROR แทน IF ล่ะ ?
อาจเขียนสูตรใหม่ได้เป็น

=IFERROR( (B4-C4)/ABS(C4),
IF( B4>0, 1,
IF( B4=0, 0,
IF( B4<0, -1 ) ) )
)

เริ่มเห็นสิ่งที่น้องโบ ‘เห็น’ แล้วใช่ไหมครับ ^__^

ใช่ครับ IF 3 ชั้น ถูกเขียนขึ้นมาเพื่อต้องการผลลัพธ์เป็นเครื่องหมายของ B4 นั่นเอง
ถ้า B4>0 หรือ B4 เป็นบวก ต้องการ 1
ถ้า B4=0 หรือ B4 เป็นศูนย์ ต้องการ 0
ถ้า B4<0 หรือ B4 เป็นลบ ต้องการ -1
นี่มัน SIGN(B4) ชัดๆ !!

ดังนั้น
IF( B4>0, 1,
IF( B4=0, 0,
IF( B4<0, -1 ) ) )

สามารถยุบได้เหลือเพียง
SIGN(B4)

หรือเขียนสูตรใหม่ได้เป็น

=IFERROR( (B4-C4)/ABS(C4), SIGN(B4) )

นี่แหละครับ ความเจ๋งของฟังก์ชันที่ชื่อสั้นๆว่า SIGN ^__^

ด้วยผลกระทบจาก COVID-19 ตัวเลขช่วงนี้อาจต่ำเป้าหมายที่วางไว้ สูตรนี้น่าจะช่วยให้คำนวณได้ง่ายขึ้น
ตัวเลขไม่ดีอาจทำให้หลายคนเครียด แต่เครียดไปตัวเลขก็เท่าเดิม งั้นก็ไม่เครียดดีกว่า สิ่งสำคัญในยามนี้คือการอยู่รอดและกำลังใจ เราจะฝ่าฟันวิกฤติครั้งนี้ไปด้วยกันครับ
สู้ๆ !

สำหรับใครที่สนใจไฟล์ตัวอย่างของบทความนี้ สามารถดาวน์โหลดเพื่อศึกษาเพิ่มเติมได้เลยครับ

ป.ล. ผู้คิดสูตร IFERROR( (B4-C4)/ABS(C4),SIGN(B4) ) คือคุณ Bo Rydobon เจ้าของเพจ Excel Wizard นั่นเอง
ขอบคุณ “น้องโบ” ที่แชร์เทคนิคดีๆครับ ^/\^

.
หากคุณชอบบทความแนวนี้ สามารถอัพเดตบทความใหม่โดยคลิก Like เฟซบุ๊กแฟนเพจ วิศวกรรีพอร์ต
อย่าลืมแชร์ให้เพื่อนอ่านเพื่อเป็นกำลังใจให้คนเขียนด้วยนะครับ ^__^

อ้อ! ตอนนี้ผมมีสอนแบบออนไลน์แล้วนะครับ สนใจดูรายละเอียดได้จาก ลิงก์นี้ ครับ

วิศวกรรีพอร์ต

คนธรรมดาผู้มีประสบการณ์ทำงานหลากหลายตำแหน่ง คลุกคลีกับการทำรีพอร์ตมาโดยตลอด สุดท้ายค้นพบแนวทางของตัวเอง จึงอยากแบ่งปันเคล็ดลับและประสบการณ์ให้กับผู้สนใจ

One thought on “ทำไมเพิ่งเจอ! สูตร Excel คำนวณ % การเปลี่ยนแปลง ep 2 (% Growth YoY)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.