ในโลกที่ข้อมูลจาก PDF ถูกแปลงผ่าน OCR แล้วกระจัดกระจายไปหลายหมื่นบรรทัดอย่างไร้รูปแบบ—จะมีใครคิดว่า Excel ธรรมดา ๆ จะสามารถจัดการสิ่งเหล่านี้ได้อย่างสง่างาม?
🎯 ปัญหาที่พบ
- ข้อมูลต้นทางมาเป็น ไฟล์ Excel ที่แยกเป็น Invoice แต่ละใบ เรียงต่อกันลงด้านล่าง
- แต่ละ Invoice มีหลายหน้า และกระจายไปในคอลัมน์ไม่เท่ากัน
- บางใบมีการ เยื้องเซลล์ไม่ตรงกัน ทั้งซ้ายและขวา
- ข้อมูลสำคัญบางส่วน เช่น ยอดเงิน หรือ ภาษี อาจอยู่คนละบรรทัดกับรายการหลัก ต้องใช้ ข้อมูลแวดล้อม เพื่อจับคู่และสรุปผล
🛠 วิธีการจัดการ
- Loop ทีละใบ Invoice โปรแกรมจะตรวจจับขอบเขตของแต่ละใบ แล้วแยกไปจัดการในพื้นที่เฉพาะ
- ลบเซลล์ว่างเพื่อจัดตำแหน่ง ใช้ VBA Loop ลบเซลล์ว่างที่อยู่ด้านหน้า เพื่อขยับข้อมูลให้ตรงกับคอลัมน์เป้าหมาย เช่น บริษัท, วันที่, รายการ, จำนวนเงิน ฯลฯ
- วิเคราะห์ข้อมูลแวดล้อม สำหรับข้อมูลที่อยู่คนละบรรทัด เช่น ยอดเงินหรือภาษี โปรแกรมจะใช้ตรรกะในการค้นหาและจับคู่กับรายการที่เกี่ยวข้อง
- นำผลลัพธ์ไปวางใน Database หลังจัดระเบียบแล้ว ข้อมูลจะถูกนำไปวางในชีต Database พร้อมใช้งานทันที
🧪 การใช้งาน
ผู้ใช้เพียงแค่นำข้อมูล OCR ที่ได้จาก PDF มาวางในชีตชื่อ Data
แล้วคลิกปุ่ม Run
ระบบจะทำงานอัตโนมัติ
- แยก Invoice ทีละใบ
- จัดตำแหน่งข้อมูลให้ตรง
- วิเคราะห์ข้อมูลแวดล้อม
- สร้าง Database ที่ประกอบด้วย:
- บริษัท
- วันที่
- เลขที่
- รายการ
- จำนวนหน่วย
- ราคา
- จำนวนเงิน
- ภาษี (ถ้ามี)
🖼 ตัวอย่างภาพประกอบจากระบบ OCR Invoice Processing

🧠 ปรัชญาเบื้องหลัง
นี่ไม่ใช่แค่การเขียน VBA เพื่อจัดการข้อมูล—แต่คือการออกแบบระบบที่ คนทั่วไปใช้ได้จริง ไม่ต้องมีตำแหน่ง ไม่ต้องมีปริญญา แค่มี Excel และใจที่อยากทำให้ข้อมูลมีระเบียบ