0
โปรเจคที่ 2: สร้าง Budget Dashboard สรุปค่าใช้จ่ายส่วนตัว | Data Analyst Portfolio Lab
Data Analyst Portfolio Lab
โปรเจคที่ 2 จาก 20 · ระดับเริ่มต้น
โปรเจคที่ 2 · เริ่มต้น

สร้าง Budget Dashboard สรุปค่าใช้จ่ายส่วนตัว

โปรเจคที่สอง เปลี่ยนธีมจาก "ข้อมูลร้านค้า" มาเป็น "ข้อมูลของตัวเอง" — หยิบรายจ่ายย้อนหลัง 6 เดือน มาแบ่งหมวด หาสัดส่วน และดูแนวโน้ม เพื่อตอบคำถามที่ทุกคนสงสัย: "เงินหายไปไหนบ้าง"

⏱️ อ่าน ~40 นาที + ลงมือทำ ~3-4 ชม. ระดับความยาก 🛠️ Excel / Google Sheets

จากคนสร้างคอร์ส — โปรเจคนี้พิเศษตรงที่เราไม่ต้องรอไฟล์จากใคร เพราะข้อมูลที่แท้จริงที่สุด ที่เรามีอยู่แล้วคือ "รายจ่ายของตัวเอง" หลายคนที่ย้ายสายมาทาง Data มักมองข้ามโปรเจคแบบนี้ เพราะคิดว่าธรรมดาเกินไป แต่ในความเป็นจริง Budget Dashboard คือหนึ่งในโปรเจคที่คนสัมภาษณ์เข้าใจง่ายที่สุด เพราะทุกคนมีรายจ่ายเป็นของตัวเอง เวลาเราเล่าว่า "เจอว่าค่าอาหารตัวเองสูงขึ้นทุกเดือนจนเกินงบ" คนฟังจะอินตามได้ทันที ต่างจากตัวเลขธุรกิจที่ไกลตัวกว่า

โจทย์ของเรา

รอบนี้ไม่มีลูกค้าจ้างงาน แต่ให้ลองสวมบทบาทเป็นตัวเราเอง — สมมติว่าช่วงนี้รู้สึกว่าเงินเดือนหมดเร็วขึ้นเรื่อยๆ ทั้งที่รายได้เท่าเดิม จึงลองโหลด statement บัตรเครดิตกับสลิปโอนเงินย้อนหลัง 6 เดือนมารวมเป็นไฟล์เดียว แล้วตั้งคำถามกับตัวเองว่า

"เงินของเราไปอยู่ที่หมวดไหนมากที่สุด แล้วมีหมวดไหนที่ใช้เกินงบที่ควรจะเป็นบ้าง"

สังเกตว่าคำถามนี้คล้ายกับโปรเจคที่แล้ว (แยกตามหมวด + เทียบกับเกณฑ์) แต่ต่างกันตรงที่รอบนี้เราต้องหา "เกณฑ์เปรียบเทียบ" เอง ไม่มีใครบอกไว้ตรงๆ ว่าอะไรคือ "เกินงบ" นี่คือทักษะสำคัญของ Data Analyst — รู้จักหลักการที่ใช้เปรียบเทียบตัวเลขให้มีความหมาย ไม่ใช่แค่รายงานตัวเลขเฉยๆ

ทำไมโปรเจคนี้ควรอยู่ใน Portfolio

  • แสดงว่าเราวิเคราะห์ "สัดส่วน" (proportion) ได้ ไม่ใช่แค่ "ผลรวม" (sum) แบบโปรเจคที่แล้ว
  • ฝึกใช้กราฟคนละแบบ (Pie/Donut Chart + Line Chart) ทำให้ Portfolio ดูหลากหลายขึ้น
  • ใช้เกณฑ์อ้างอิงจากหลักการทางการเงินจริง (50/30/20 Rule) ทำให้ insight มีน้ำหนักมากกว่าการเดา
  • เล่าตอนสัมภาษณ์ได้ง่าย เพราะเป็นเรื่องที่ทุกคนมีประสบการณ์ร่วม

ทำความรู้จักข้อมูลก่อนเริ่ม

ไฟล์ข้อมูลรอบนี้มีลักษณะเป็น "ธุรกรรมย่อย" คือแต่ละแถวคือ 1 รายการใช้จ่าย ไม่ใช่ยอดรวมสำเร็จรูป เราต้องรวมยอดเองในขั้นตอนถัดไป มาดูความหมายของแต่ละคอลัมน์กันก่อน:

คอลัมน์ ความหมาย ตัวอย่างค่า
expense_id เลขอ้างอิงรายการใช้จ่าย ใช้แยกแต่ละรายการไม่ให้ซ้ำกัน 2004
expense_date วันที่จ่ายเงิน ใช้จัดกลุ่มเป็นรายเดือนเพื่อดูแนวโน้ม 2025-03-22
category หมวดค่าใช้จ่าย ใช้สรุปว่าเงินไปอยู่ที่หมวดไหนมากที่สุด อาหาร
description รายละเอียดของรายการ ใช้ตอนอยากรู้ลึกถึงระดับรายการเดี่ยวๆ กินข้าวนอกบ้าน
amount_thb จำนวนเงินของรายการนั้น (บาท) — คอลัมน์หลักที่เราจะรวมยอด 4200
payment_method ช่องทางที่จ่ายเงิน ใช้ดูพฤติกรรมการใช้จ่ายเสริมได้ (ไม่บังคับต้องใช้ในโปรเจคนี้) เงินสด

ขั้นที่ 1-2: สำรวจ + ทำความสะอาดข้อมูล

ก่อนรวมยอด เช็ก 3 อย่างเดิมที่เราฝึกมาจากโปรเจคที่แล้ว บวกอีก 1 อย่างที่ข้อมูลธุรกรรมย่อยแบบนี้มักเจอ:

  • คอลัมน์ amount_thb เป็นตัวเลขล้วนไหม ไม่มีสัญลักษณ์ ฿ หรือ comma ปนอยู่
  • ชื่อหมวด (category) สะกดตรงกันทุกแถวไหม
  • วันที่ถูกอ่านเป็นรูปแบบวันที่จริงไหม ไม่ใช่ข้อความ
  • (ใหม่) มีรายการซ้ำไหม เช่น รายการเดียวกันถูกบันทึกไว้ 2 ครั้งโดยไม่ตั้งใจ ซึ่งพบบ่อยเวลารวมไฟล์จากหลายแหล่ง (บัตรเครดิต + สลิปโอน)
ตัวอย่างปัญหาที่พบบ่อยในข้อมูลธุรกรรมย่อย
expense_id, category,  amount_thb
2071,       ช้อปปิ้ง, ฿1,500      ← มีสัญลักษณ์และ comma ปน ทำให้ SUM ไม่ได้
2072,       ชอปปิง,   2000        ← สะกดคนละแบบกับ "ช้อปปิ้ง" ที่ใช้อยู่เดิม
2073,       ช้อปปิ้ง, 800
2073,       ช้อปปิ้ง, 800         ← แถวซ้ำ (บันทึกรายการเดิมสองครั้ง)
📝 วิธีเช็กแถวซ้ำแบบเร็วๆ ใน Sheets
เลือกทั้งตาราง แล้วไปที่ Format → Conditional formatting → Custom formula ใส่สูตร =COUNTIF(A:A,A1)>1 (อ้างอิงคอลัมน์ expense_id) ระบบจะไฮไลต์แถวที่เลข id ซ้ำกันให้เห็นทันที
📄 Dataset สำหรับโปรเจคนี้

ไฟล์รายจ่ายส่วนตัว 6 เดือน (ม.ค.–มิ.ย.) แยกตามหมวดและช่องทางการจ่ายเงิน ดาวน์โหลดได้จากโฟลเดอร์ Google Drive ของคอร์ส

📁 เปิดโฟลเดอร์ Dataset ทั้งหมดใน Google Drive

ขั้นที่ 3: สรุปสัดส่วนแต่ละหมวดด้วย Pivot Table

เลือกช่วงข้อมูลทั้งหมด แล้วไปที่ Insert → Pivot table ตั้งค่าแบบนี้:

ตั้งค่า Pivot Table (สรุปตามหมวด)
Rows:    category
Values:  amount_thb (Summarize by: SUM)
Sort:    มาก → น้อย

ได้ยอดรวมแต่ละหมวดแล้ว ให้เพิ่มคอลัมน์คำนวณสัดส่วน % ต่อไป เพราะตัวเลขยอดรวมเฉยๆ ยังไม่บอกว่า "เยอะเทียบกับอะไร"

💡 เคล็ดลับ
ใน Pivot Table เอง สามารถเปลี่ยนวิธีแสดงผลจาก "SUM" เป็น "% of Total" ได้เลย โดยคลิกที่ค่าที่ Values → Show as → % of column total ไม่ต้องคำนวณเองด้วยสูตรก็ได้

ผลลัพธ์: สัดส่วนค่าใช้จ่ายแต่ละหมวด

เมื่อรวมยอด 6 เดือนแล้วคิดเป็นสัดส่วน จะได้ผลประมาณนี้ กราฟที่เหมาะกับคำถาม "สัดส่วนของทั้งหมด" คือ Pie Chart หรือ Donut Chart เพราะเน้นให้เห็นว่าแต่ละส่วนคิดเป็นกี่ % ของวงกลมทั้งวง ต่างจาก Bar Chart ที่เน้นเทียบ "ค่า" ระหว่างกลุ่มมากกว่า "สัดส่วน"

สัดส่วนค่าใช้จ่ายแต่ละหมวด 6 เดือน โดนัทชาร์ตแสดงสัดส่วนค่าใช้จ่าย 7 หมวด ที่พักและอาหารรวมกันเกินครึ่งหนึ่งของรายจ่ายทั้งหมด 157,700 บาท / 6 เดือน ที่พัก — 31% อาหาร — 27% ออมเงิน — 11% ช้อปปิ้ง — 10% บันเทิง — 8% เดินทาง — 8% สาธารณูปโภค — 5%

สัดส่วนค่าใช้จ่ายแต่ละหมวด รวม 6 เดือน (% ของรายจ่ายทั้งหมด)

🤔 ลองคิดดูก่อน
กฎการเงินยอดนิยมอย่าง 50/30/20 Rule แนะนำให้แบ่งรายได้เป็น 3 ส่วน: 50% สำหรับ "รายจ่ายจำเป็น" (Needs) เช่น ที่พัก อาหาร ค่าเดินทาง สาธารณูปโภค, 30% สำหรับ "รายจ่ายตามใจอยาก" (Wants) เช่น ช้อปปิ้ง บันเทิง, และ 20% สำหรับ "เงินออม" — ลองรวมสัดส่วนหมวดที่พัก+อาหาร+เดินทาง+สาธารณูปโภคจากกราฟด้านบนดูว่าเกิน 50% หรือไม่

ขั้นที่ 4: ดูแนวโน้มรายเดือนของหมวดที่น่าสงสัยที่สุด

จากกราฟสัดส่วน หมวด "อาหาร" มีสัดส่วนสูงเป็นอันดับ 2 ทั้งที่ไม่ใช่ค่าใช้จ่ายคงที่แบบค่าเช่า ลองกลับไปทำ Pivot Table รอบใหม่ โดยกรองเฉพาะหมวดอาหาร แล้ว Rows เป็นเดือนแทน เพื่อดูว่ามีแนวโน้มยังไง

ตั้งค่า Pivot Table (แนวโน้มรายเดือน เฉพาะหมวดอาหาร)
Filters: category = อาหาร
Rows:    expense_date (จัดกลุ่มเป็นรายเดือน)
Values:  amount_thb (Summarize by: SUM)

คราวนี้กราฟที่เหมาะกว่าคือ Line Chart เพราะเราต้องการดู "แนวโน้ม" ที่เปลี่ยนแปลงต่อเนื่องตามเวลา ไม่ใช่แค่เทียบค่าระหว่างกลุ่มแบบ Bar Chart

แนวโน้มค่าอาหารรายเดือน กราฟเส้นแสดงค่าอาหารที่เพิ่มขึ้นต่อเนื่องทุกเดือนจาก 6,000 เป็น 8,200 บาท 6,000 6,500 7,000 7,500 7,800 8,200 ม.ค. ก.พ. มี.ค. เม.ย. พ.ค. มิ.ย.

ค่าอาหารรายเดือน (บาท) — เพิ่มขึ้นต่อเนื่องทุกเดือน รวม 37% ตลอด 6 เดือน

📝 จำง่ายๆ
เลือกกราฟให้ตรงกับคำถาม 3 แบบหลักๆ: Bar Chart เทียบค่าระหว่างกลุ่ม, Line Chart ดูแนวโน้มต่อเนื่องตามเวลา, Pie/Donut Chart ดูสัดส่วนของทั้งหมด — เลือกผิดชนิด กราฟจะตอบคำถามผิดข้อทันที ต่อให้ตัวเลขถูกต้องก็ตาม

ขั้นที่ 5: สรุป Insight พร้อมคำแนะนำ

ตอนนี้เรามีทั้งภาพสัดส่วนรวม และแนวโน้มของหมวดที่น่าสงสัย ให้รวมสองมุมมองเข้าด้วยกันเป็นข้อสรุปเดียว พร้อมเทียบกับเกณฑ์ 50/30/20 ที่ตั้งไว้ตั้งแต่ต้น

ตัวอย่างสรุป Insight
รายจ่ายจำเป็น (ที่พัก + อาหาร + เดินทาง + สาธารณูปโภค) รวมกันคิดเป็น 70% ของรายจ่ายทั้งหมด
สูงกว่าเกณฑ์ 50/30/20 Rule ที่แนะนำไว้ที่ 50% ค่อนข้างมาก

สาเหตุหลักมาจากหมวดอาหาร ที่เพิ่มขึ้นต่อเนื่องทุกเดือน จาก 6,000 บาท เป็น 8,200 บาท
(เพิ่มขึ้น 37% ใน 6 เดือน) โดยเฉพาะยอดกินข้าวนอกบ้านที่โตเร็วกว่าค่าซื้อของกินเข้าบ้าน

เงินออมอยู่ที่ 11% ของรายจ่ายทั้งหมด ต่ำกว่าเป้าหมาย 20%

แนะนำ: ลดความถี่การกินข้าวนอกบ้านลง แล้วนำส่วนต่างไปเพิ่มเงินออมให้เข้าใกล้เป้าหมาย 20% มากขึ้น
🧩 Solution เต็มรูปแบบ (สูตร Google Sheets)

สูตรคำนวณสัดส่วน % ของแต่ละหมวดแบบไม่ต้องพึ่ง Pivot Table ก็ได้ คัดลอกไปวางแล้วปรับ range ตามไฟล์ของตัวเอง

Google Sheets Formula
=SUMIF(C:C, "อาหาร", E:E) / SUM(E:E)
// C:C = คอลัมน์ category
// E:E = คอลัมน์ amount_thb
// สูตรนี้คำนวณว่าหมวดอาหารคิดเป็นสัดส่วนกี่ % ของรายจ่ายทั้งหมด
// จัด format ผลลัพธ์เป็น Percent (Format → Number → Percent)

// ถ้าอยากดูยอดรวมเฉพาะเดือนมิถุนายนของหมวดอาหาร ใช้ SUMIFS แทน
=SUMIFS(E:E, C:C, "อาหาร", D:D, ">="&DATE(2025,6,1), D:D, "<"&DATE(2025,7,1))

สรุปสิ่งที่โปรเจคนี้สอน

  • คำนวณสัดส่วน (% of total) ไม่ใช่แค่ยอดรวม เพื่อให้ตัวเลขมีความหมายเทียบกับภาพรวม
  • เลือกกราฟให้ตรงกับคำถาม — Pie/Donut สำหรับสัดส่วน, Line Chart สำหรับแนวโน้ม
  • ใช้เกณฑ์อ้างอิงจากหลักการที่มีอยู่จริง (เช่น 50/30/20 Rule) แทนการเดาว่า "เยอะไปไหม"
  • เช็กแถวข้อมูลซ้ำก่อนวิเคราะห์ เพราะทำให้ยอดรวมคลาดเคลื่อนได้ง่าย
  • รวมหลายมุมมอง (สัดส่วน + แนวโน้ม) เข้าด้วยกันเป็นข้อสรุปเดียวที่นำไปใช้ตัดสินใจได้จริง

คำศัพท์ที่เจอในบทนี้

Proportion / % of Total
สัดส่วนของค่าหนึ่งเทียบกับผลรวมทั้งหมด มักแสดงเป็นเปอร์เซ็นต์ ช่วยตอบคำถามว่า "เยอะแค่ไหนเมื่อเทียบกับภาพรวม"
Pie Chart / Donut Chart
กราฟวงกลมที่ใช้แสดงสัดส่วนของแต่ละกลุ่มเทียบกับทั้งหมด เหมาะกับคำถามเรื่อง "สัดส่วน" ไม่ใช่ "ค่าเปรียบเทียบ"
Line Chart
กราฟเส้นที่ใช้แสดงการเปลี่ยนแปลงของตัวเลขต่อเนื่องตามเวลา เหมาะกับการดูแนวโน้ม (Trend)
Trend
ทิศทางการเปลี่ยนแปลงของข้อมูลเมื่อเวลาผ่านไป เช่น เพิ่มขึ้นต่อเนื่อง ลดลงต่อเนื่อง หรือคงที่
50/30/20 Rule
หลักการแบ่งงบประมาณส่วนบุคคล แนะนำให้แบ่งรายได้เป็น 50% รายจ่ายจำเป็น 30% รายจ่ายตามใจอยาก และ 20% เงินออม

✍️ เขียนทบทวนโปรเจคนี้

ลองเขียนสรุปด้วยคำพูดของตัวเอง — เก็บไว้ใช้ตอนเล่าโปรเจคนี้ตอนสัมภาษณ์งานได้เลย เช่น ได้เรียนรู้อะไรบ้าง ติดปัญหาอะไร แล้วแก้ยังไง