03/11/2026
12 ไฟล์ 3,660 แถว ใช้เวลา 0.43 วินาที บนเครื่องที่ผมทดสอบ
นี่คือผลจากการรวมไฟล์ยอดขายสมมติของ 12 สาขา ด้วย 7 คำสั่ง Python (pandas) รันจริงบนเครื่อง ไม่ใช่ Colab ข้อมูลทั้งหมดเป็นข้อมูลสมมติ ตัวเลขเวลาเป็นของเครื่องที่ทดสอบเท่านั้น เครื่องของคุณอาจเร็วหรือช้ากว่านี้
สิ้นเดือนแบบเดิมคือ เปิดไฟล์ 12 สาขาทีละไฟล์ ก๊อปมาวางต่อกัน ลบแถวซ้ำ TRIM ชื่อ VLOOKUP หมวด ทำ Pivot แล้วแยกไฟล์ส่งกลับแต่ละสาขา และทำซ้ำแบบนี้ทุกเดือน จุดที่พลาดง่ายที่สุดไม่ใช่ความสะเพร่าของคนทำ แต่เป็นช่องว่างที่มองไม่เห็น เช่น "สาขา 04" กับ "สาขา 04 " (มีช่องว่างท้าย) ที่ Pivot นับเป็นคนละสาขา ในข้อมูลทดสอบ ชื่อสาขาแตกเป็น 15 แบบ ทั้งที่มีแค่ 12 สาขา
เริ่มไฟล์ด้วยบรรทัดนี้
import pandas as pd, glob
1. เปิดทีละไฟล์ ก๊อปมาวางต่อกัน
df = pd.concat([pd.read_excel(f) for f in glob.glob("สาขา/*.xlsx")])
ดูดทุกไฟล์ในโฟลเดอร์มารวมเป็นตารางเดียว (ทดสอบ: อ่านเข้ามา 3,660 แถว)
2. Remove Duplicates
df = df.drop_duplicates()
ลบแถวที่ซ้ำกันทุกช่อง (ทดสอบ: ลบ 60 แถว เหลือ 3,600)
3. TRIM ทีละคอลัมน์
df["สาขา"] = df["สาขา"].str.strip()
ตัดช่องว่างหัวท้าย ชื่อสาขาเลยไม่แตกเป็นหลายแถว (ทดสอบ: 15 แบบ เหลือ 12 แบบ) ข้อนี้ต้องทำก่อนข้อ 5 เสมอ ไม่งั้น Pivot จะแตกแถว
4. VLOOKUP หมวดสินค้า
df = df.merge(ref, on="สินค้า", how="left", validate="many_to_one")
ดึงหมวดจากตารางอ้างอิง ref ถ้าในตารางอ้างอิงมีชื่อสินค้าซ้ำ คำสั่งจะหยุดและฟ้อง MergeError ทันที (ทดสอบแล้วโดยใส่ชื่อซ้ำลงไป 1 แถว)
5. PivotTable
pv = df.pivot_table(index="สาขา", columns="หมวด", values="ยอด", aggfunc="sum", margins=True, margins_name="รวม")
สรุปยอดสาขา × หมวด พร้อมแถวรวม (คอลัมน์ ยอด ในไฟล์ตัวอย่างคำนวณจากจำนวนคูณบาทต่อชิ้นไว้ก่อนข้อนี้)
6. Filter แล้ว Save As ทีละสาขา
for s, g in df.groupby("สาขา"): g.to_excel(f"{s}.xlsx")
แยกไฟล์ส่งคืนแต่ละสาขาอัตโนมัติ (ทดสอบ: ได้ 12 ไฟล์)
7. นั่งกดเครื่องคิดเลขเทียบยอด
assert pv.loc["รวม","รวม"] == df["ยอด"].sum()
ถ้ายอดไม่ตรง สคริปต์หยุดและฟ้องทันที (ทดสอบ: ยอดรวม 473,145 บาท ตรงกับช่องรวมใน Pivot)
ทั้ง 7 บรรทัดข้างบนรันผ่านจริงตามที่พิมพ์ไว้ ในการทดสอบรอบเดียวกัน
เช็ก 3 ข้อก่อนส่งหัวหน้า
1. แถวเข้า ลบ แถวซ้ำ ต้องเท่ากับแถวออก (3,660 − 60 = 3,600)
2. จำนวนสาขาใน Pivot ต้องเท่ากับจำนวนสาขาจริง (12)
3. ช่องรวมใน Pivot ต้องเท่ากับผลรวมยอดทั้งหมด (473,145)
ผมเริ่มสาย IT ตั้งแต่ปี 2548 และในลิสต์นี้ ข้อ 7 สำคัญที่สุด เพราะงานข้อมูลคือการทำให้คนเชื่อตัวเลขได้ ไม่ใช่แค่ย้ายข้อมูลจากที่หนึ่งไปอีกที่หนึ่ง
แต่ 7 คำสั่งนี้เป็นแค่ส่วนเดียว ถ้าอยากได้ครบทั้งระบบ ตั้งแต่ลง Python ไปจนถึงทำความสะอาดข้อมูลแบบ RAW → CLEAN → CURATED มีอยู่ใน DataLover 4 Kings
1. AutoWork 2.0
2. Excel Killer (Data Cleansing)
3. Python Data Visualization
4. AI Data Automation
เป็นไฟล์ PDF 4 เล่ม รวม 200+ หน้า พร้อม Mini App + Scripts และมีบทลง Python ส่งไฟล์ทางอีเมลทันทีหลังชำระ อัปเดตฟรีตลอด ใช้ได้กับ Excel ทุกเวอร์ชันและ Google Sheets เครื่องมือที่ใช้ฟรีทั้งหมด ยกเว้น OpenAI ที่มีค่าใช้จ่าย ขอเงินคืนได้ทันทีเมื่อแจ้ง
ครบ 4 เล่ม 1,490 บาท
สิ้นเดือนนี้คุณต้องรวมกี่ไฟล์? คอมเมนต์ตัวเลขมาเลย
ถ้าสนใจ พิมพ์ "สนใจ" ใต้โพสต์นี้
ติดตาม EP.2
THEELA | Data Engineering • Big Data • Cloud • Data Strategy
ผู้สร้าง DataLover — ถ่ายทอดประสบการณ์ Data จากงานจริงสู่การใช้งานจริง
#งานสิ้นเดือนจบใน7คำสั่ง #รวมไฟล์Excel #งานสิ้นเดือน #พนักงานออฟฟิศ