07 June 2025

Cleaning data ต้องใช้สูตรอะไรก่อน พอปัดฝุ่นแล้ว สูตร IF จะได้ทำงานถูกต้อง

ยุคนี้เรื่องการทำความสะอาด Cleaning Data เริ่มมีความสนใจอยากใช้มากขึ้น ส่วนใหญ่มักบอกกันว่าต้องทำความสะอาดข้อมูลก่อนเพื่อช่วยทำให้สูตร VLookup, XLookup หาค่าเจอ เช่น

=Trim(Cell) เพื่อตัดวรรคที่ใส่มาเกิน ไม่ว่าจะวรรคหน้าหลังหรือตรงกลาง ให้เหลือวรรคเดียวระหว่างคำ เช่น abc def

=Left(Cell,3) เพื่อตัดข้อความให้เหลือเพียง 3 ตัว abc นับมาจากด้านซ้าย
=Right(Cell,3) เพื่อตัดข้อความให้เหลือเพียง 3 ตัว def นับมาจากด้านขวา
=Mid(Cell,3,1) เพื่อตัดข้อความให้เหลือเพียง 1 ตัว c นับมาจากด้านซ้ายตัวที่ 3

 

สูตรพวกนี้มักนำมาคลีนข้อมูลที่เป็นตัวอักษร ถ้านำมาใช้กับตัวเลข ต้องระวังว่าผลที่ได้จะกลายเป็น Text เช่น ถ้าในเซลล์ใส่เลข 123 เอาไว้ =Mid(Cell,3,1) แม้จะได้ค่าออกมาเห็นเป็นเลข 3 แต่เลข 3 ที่ได้จะชิดซ้ายออกมาให้รู้ว่ามีสถานะเป็น Text ไปแล้ว 

ก่อนจะนำเลข 3 ที่ได้ไปใช้บวกลบต่อต้องปรับให้กลับมาเป็นตัวเลข 3 ที่ชิดขวา โดยใส่เครื่องหมายลบลบกระตุ้นให้กลับมาเป็นตัวเลขแบบเซลล์เดิมต้นทาง

Cleaning Data ที่สำคัญมากๆแต่มักนึกไม่ถึงกัน ถ้าเป็นตัวเลขที่เกิดจากการคำนวณ หากจะนำไปใช้ต่อในการตัดสินใจ ต้องหาทางทำให้ตัวเลขผลลัพธ์ที่ได้มานั้นมีค่าตรงกับเงื่อนไขที่ใช้ก่อน จึงจะนำไปใช้กับสูตร IF, Choose, Match, VLookup, XLookup แล้ว Excel ตัดสินใจถูกต้อง

ตัวอย่างง่ายๆ เช่น ในเซลล์ B2 สร้างสูตร =2.3-2.2 ไว้ เรามักนึกว่าได้คำตอบเป็นเลข 0.1 แต่พอนำค่าไปเทียบด้วยสูตร IF กลับให้คำตอบเป็น No

=IF( B2 = 0.1, "Yes", "No")

สาเหตุที่สูตร IF ไม่คืนค่าออกมาเป็น Yes เพราะแท้จริงแล้ว 2.3-2.2 ได้ค่า 0.0999999999999996 ออกมาแต่เพราะเจอรูปแบบให้แสดงทศนิยม 1 หลักเลยแสดง 0.1 ให้เห็น

ถ้าต้องการนำไปเทียบกับ 0.1 ว่าเท่ากันจริงไหม ต้องปรับสูตรเป็น

=IF( ROUND(2.3-2.2, 1) = 0.1, "Yes", "No") 
หรือ
=IF( ROUND(ฺB2, 1) = 0.1, "Yes", "No") 

จึงจะได้คำตอบ Yes ออกมา

ขอให้หลักไว้ว่า ก่อนที่จะนำผลที่ได้จากการคำนวณไปใช้ต่อในการตัดสินใจ ต้องจัดการปรับค่าที่ได้ให้ตรงกับเงื่อนไขที่ใช้เทียบเสมอ แต่ถ้าไม่ได้ใช้ต่อในการตัดสินใจก็ปล่อยไปไม่ต้องทำความสะอาดก็ได้

Download ตัวอย่าง

https://drive.google.com/file/d/1sygrBbeWRZS-Mrr0gHh2ZP8ueGd53JFe/view?usp=sharing 

 

 

 

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.