🏠 ระบบที่ 1 — Executive Dashboard

แดชบอร์ดผู้บริหาร | ภาพรวมทุกระบบในหน้าเดียว

วัตถุประสงค์

รวมข้อมูลจากทุกระบบมาแสดงผลแบบ Real-time เพื่อให้ผู้บริหารเห็นภาพรวมธุรกิจทั้งหมดในหน้าเดียว มี KPI การเงิน, การบริหารคน, ยานพาหนะ และสถานะแต่ละโครงการ

ชีต Google Sheets ที่เกี่ยวข้อง

ชีตข้อมูลที่ดึงช่วง
LMC Daily Manpowerจำนวนพนักงาน, ขาดงานB:E ทุกแถว
LMC_รับจ่ายรายรับ-รายจ่ายรวมคอลัมน์ยอดเงิน
LMC_ระบบน้ำมัน_DEVปริมาณน้ำมันรวมคอลัมน์ลิตร
LMC_บริหารคนขับรถ_MASTERจำนวนรถ, สถานะคอลัมน์ Status

สูตร KPI หลัก

รายได้รวมเดือน
=SUMIFS(รับจ่าย!C:C, รับจ่าย!A:A, "รับ", รับจ่าย!B:B, ">="&DATE(ปี,เดือน,1), รับจ่าย!B:B, "<="&EOMONTH(DATE(ปี,เดือน,1),0))
รวมเฉพาะรายการ "รับ" ในเดือนที่กำหนด
ค่าใช้จ่ายรวมเดือน
=SUMIFS(รับจ่าย!C:C, รับจ่าย!A:A, "จ่าย", รับจ่าย!B:B, ">="&DATE(ปี,เดือน,1))
รวมรายการ "จ่าย" ทั้งหมดในเดือน
กำไรสุทธิ
=รายได้รวม - ค่าใช้จ่ายรวม
หรือ =D2-E2 หากอยู่ในแถวเดียวกัน
อัตราขาดงาน %
=COUNTIF(แรงงาน!E:E,"ขาด")/COUNTA(แรงงาน!A:A)*100
นับแถวที่มี "ขาด" หารจำนวนพนักงานทั้งหมด

👷 ระบบที่ 2 — แรงงานรายวัน (Daily Manpower)

บันทึกการเข้างาน, ขาดงาน รายวันแยกตามไซต์งาน

โครงสร้างข้อมูล

คอลัมน์ข้อมูลตัวอย่าง
Aวันที่21/06/2026
Bชื่อไซต์งานลำพูน A
Cจำนวนพนักงานทั้งหมด25
Dเข้างาน23
Eขาดงาน2
FOT (ชั่วโมง)8
Gหัวหน้าไซต์นายสมชาย

สูตรสำคัญ

จำนวนคนเข้างานรวมเดือน (ต่อไซต์)
=SUMIFS(D:D, B:B, "ลำพูน A", A:A, ">="&DATE(2026,6,1), A:A, "<="&EOMONTH(DATE(2026,6,1),0))
นับผลรวมคนเข้างานเฉพาะไซต์และเดือนที่ต้องการ
อัตราขาดงาน % (ต่อวัน)
=E2/C2*100
ขาดงาน ÷ พนักงานทั้งหมด × 100
Man-Days รวมเดือน
=SUMPRODUCT((MONTH(A2:A200)=6)*(YEAR(A2:A200)=2026)*D2:D200)
รวม Man-Days ทุกไซต์เดือนมิถุนายน 2026
วันขาดงานมากสุด (ไซต์ไหน?)
=INDEX(B:B, MATCH(MAX(E:E), E:E, 0))
ดึงชื่อไซต์ที่มีการขาดงานสูงสุด
💡 เทคนิค: ใช้ Data Validation ในคอลัมน์ B เป็น Dropdown เลือกชื่อไซต์ เพื่อป้องกันพิมพ์ผิด และทำให้ SUMIFS ทำงานถูกต้อง

⏰ ระบบที่ 3 — OT (ค่าล่วงเวลา)

คำนวณ OT รายคน, รายไซต์ · สลิปค่าจ้างรายบุคคล

โครงสร้างข้อมูล

คอลัมน์ข้อมูลหน่วย
Aชื่อพนักงาน
Bตำแหน่ง/ประเภท
Cไซต์งาน
Dจำนวนวันทำงานวัน
Eอัตราค่าจ้าง/วันบาท
Fชั่วโมง OTชั่วโมง
Gอัตรา OT/ชั่วโมงบาท (ปกติ 250 ฿)

สูตรสำคัญ

ค่าจ้างปกติ
=D2*E2
จำนวนวันทำงาน × อัตราค่าจ้าง/วัน
ค่า OT
=F2*G2
ชั่วโมง OT × อัตรา OT (250 ฿/ชม.)
รายได้รวมต่อคน
=(D2*E2)+(F2*G2)
ค่าจ้างปกติ + ค่า OT
OT รวมรายไซต์
=SUMIF(C:C, "ลำพูน A", F:F)
รวม OT เฉพาะไซต์ที่ต้องการ
ค่า OT รวมทั้งบริษัท
=SUMPRODUCT(F2:F100, G2:G100)
คูณชั่วโมง OT × อัตราแต่ละคน แล้วรวม
💡 หมายเหตุ: อัตรา OT ตามกฎหมาย = 1.5 เท่าของค่าแรงต่อชั่วโมง วันหยุด = 3 เท่า ตรวจสอบให้แน่ใจว่า G2 ใส่อัตราถูกต้อง

🚛 ระบบที่ 4 — บริหารคนขับรถและเครื่องจักร

ทะเบียนรถ, ประกัน, ซ่อมบำรุง, สถานะรายคัน

ประเภทยานพาหนะ

TRK รถบรรทุก TRL รถพ่วง DRV รถยนต์ทั่วไป MIX รถผสมคอนกรีต

โครงสร้างข้อมูล MASTER

คอลัมน์ข้อมูล
Aรหัสรถ (เช่น TRK-001)
Bทะเบียนรถ
Cประเภท (TRK/TRL/DRV/MIX)
Dชื่อคนขับ
Eสถานะ (พร้อมใช้/ใช้งาน/จอดซ่อม)
Fวันประกันหมด
Gไซต์ที่ประจำการ

สูตรสำคัญ

นับรถตามสถานะ
=COUNTIF(E:E, "พร้อมใช้")
เปลี่ยน "พร้อมใช้" เป็น "ใช้งาน" หรือ "จอดซ่อม" ตามต้องการ
รถประกันหมดภายใน 30 วัน
=COUNTIFS(F:F, "<="&(TODAY()+30), F:F, ">="&TODAY())
แจ้งเตือนรถที่ต้องต่อประกัน
ค่าซ่อมรวมต่อคัน
=SUMIF(ซ่อมบำรุง!A:A, A2, ซ่อมบำรุง!F:F)
รวมค่าซ่อมจากชีตซ่อมบำรุงโดยใช้รหัสรถ

⛽ ระบบที่ 5 — ระบบน้ำมัน

บันทึกการเติมน้ำมัน, ต้นทุนน้ำมัน, รายงานรายคัน

โครงสร้างข้อมูล

คอลัมน์ข้อมูลตัวอย่าง
Aวันที่21/06/2026
BรหัสรถTRK-001
Cทะเบียนบจ 1234 ลป
Dปั๊มน้ำมันPTT ลำพูน
Eลิตร80
Fราคา/ลิตร35.50
Gยอดรวม2,840
Hประเภทน้ำมันดีเซล B7

สูตรสำคัญ

ยอดน้ำมันรวม (สูตรในคอลัมน์ G)
=E2*F2
ลิตร × ราคาต่อลิตร
ค่าน้ำมันรวมรายเดือน
=SUMIFS(G:G, A:A, ">="&DATE(2026,6,1), A:A, "<="&EOMONTH(DATE(2026,6,1),0))
รวมยอดน้ำมันทั้งเดือนมิถุนายน
ค่าน้ำมันต่อคัน (เดือนนี้)
=SUMIFS(G:G, B:B, "TRK-001", A:A, ">="&DATE(2026,6,1))
เปลี่ยน "TRK-001" เป็นรหัสรถที่ต้องการ
ลิตรรวมต่อปั๊ม
=SUMIF(D:D, "PTT ลำพูน", E:E)
รวมลิตรที่เติมที่ปั๊มนั้นๆ
รถที่ใช้น้ำมันมากสุด Top 5
=LARGE(SUMIF(B:B, UNIQUE(B:B), G:G), 1)
ใช้ SUMIF + UNIQUE + LARGE (Google Sheets)

💰 ระบบที่ 6 — รับ-จ่าย (Finance)

รายรับ-รายจ่ายทั้งหมด, กระแสเงินสด, กำไรสุทธิ

โครงสร้างข้อมูล

คอลัมน์ข้อมูลตัวอย่าง
Aประเภท (รับ/จ่าย)รับ
Bวันที่10/06/2026
Cจำนวนเงิน150,000
Dหมวดหมู่ค่างวดงาน
Eโครงการลำพูน A
Fหมายเหตุงวดที่ 2
Gผู้ดำเนินการสมชาย

สูตรสำคัญ

รายรับรวมเดือน
=SUMIFS(C:C, A:A, "รับ", B:B, ">="&DATE(2026,6,1), B:B, "<="&EOMONTH(DATE(2026,6,1),0))
กรองเฉพาะ "รับ" ในช่วงเวลาที่กำหนด
รายจ่ายรวมเดือน
=SUMIFS(C:C, A:A, "จ่าย", B:B, ">="&DATE(2026,6,1), B:B, "<="&EOMONTH(DATE(2026,6,1),0))
กระแสเงินสดสะสม
=SUMIFS(C:C, A:A, "รับ", B:B, "<="&B2) - SUMIFS(C:C, A:A, "จ่าย", B:B, "<="&B2)
รายรับสะสม - รายจ่ายสะสม ณ วันที่ B2
รายจ่ายรายหมวด
=SUMIFS(C:C, A:A, "จ่าย", D:D, "ค่าแรง")
เปลี่ยนชื่อหมวดตามต้องการ

🔧 ระบบที่ 7 — ค่างวดรถ

ตารางผ่อนรถ, งวดคงเหลือ, ยอดหนี้รวม

โครงสร้างข้อมูล

คอลัมน์ข้อมูล
Aรหัสรถ
Bชื่อไฟแนนซ์
Cราคารถ
Dเงินดาวน์
Eงวด/เดือน (฿)
Fจำนวนงวดทั้งหมด
Gงวดที่จ่ายแล้ว
Hงวดคงเหลือ (=F-G)
Iยอดหนี้คงเหลือ (=H*E)

สูตรสำคัญ

งวดคงเหลือ (คอลัมน์ H)
=F2-G2
งวดทั้งหมด ลบ งวดที่จ่ายแล้ว
ยอดหนี้คงเหลือ (คอลัมน์ I)
=(F2-G2)*E2
งวดที่เหลือ × ค่างวด/เดือน
งวดรวมทั้งบริษัท/เดือน
=SUM(E:E)
รวมค่างวดทุกคันต่อเดือน
รถที่ผ่อนเสร็จแล้ว
=COUNTIF(H:H, 0)
นับรถที่งวดคงเหลือ = 0
แจ้งเตือนกำหนดชำระ
=IF(DAY(TODAY())>20,"ใกล้ถึงกำหนดชำระ!","")
แจ้งเตือนหลังวันที่ 20 ของเดือน

📦 ระบบที่ 8 — สต๊อกวัสดุก่อสร้าง

คลังวัสดุ, ใบสั่งซื้อ PO, แจ้งเตือนของใกล้หมด

โครงสร้างชีตหลัก (STOCK)

คอลัมน์ข้อมูลตัวอย่าง
AรหัสวัสดุMAT-001
Bชื่อวัสดุปูนซีเมนต์ตราช้าง
Cหมวดหมู่งานคอนกรีต
Dหน่วยถุง
Eจำนวนคงเหลือ1,240
Fจำนวนขั้นต่ำ2,000
Gราคา/หน่วย145
Hมูลค่าสต๊อก (=E×G)179,800
Iผู้จำหน่ายอินทรีซีเมนต์
Jสถานะใกล้หมด / ปกติ

สูตรสำคัญ

มูลค่าสต๊อก (คอลัมน์ H)
=E2*G2
จำนวนคงเหลือ × ราคาต่อหน่วย
สถานะสต๊อก (คอลัมน์ J)
=IF(E2=0,"หมดสต๊อก!",IF(E2
แสดงสถานะอัตโนมัติ 3 ระดับ
มูลค่าสต๊อกรวมทั้งหมด
=SUM(H:H)
รายการที่ต้องสั่งซื้อ
=COUNTIF(J:J, "ใกล้หมด")+COUNTIF(J:J, "หมดสต๊อก!")
รับเข้าคลัง (อัปเดต E)
=E2+จำนวนรับเข้า
ใช้ STOCK_IN ชีตแยก แล้ว SUMIF กลับมา
เบิกออก (อัปเดต E)
=E2-จำนวนเบิก
ใช้ STOCK_OUT ชีตแยก และ SUMIF กลับมา

โครงสร้างชีต PO (ใบสั่งซื้อ)

คอลัมน์ข้อมูล
Aเลขที่ PO (PO-YYMM-NNN)
Bวันที่สั่ง
Cรหัสวัสดุ
Dจำนวน
Eราคา/หน่วย
Fมูลค่า PO (=D×E)
Gผู้จำหน่าย
Hสถานะ (รอรับ/รับแล้ว)
Iวันที่รับจริง
💡 เทคนิค: ใช้ Conditional Formatting ไฮไลต์แถวที่ E < F เป็นสีแดง เพื่อเห็นของใกล้หมดได้ทันที: ไปที่ Format → Conditional Formatting → กำหนด Custom Formula: =E2<F2

🪨 ระบบที่ 9 — คอนกรีต

ออเดอร์คอนกรีต, ปริมาณส่ง, รายได้ต่อโครงการ

โครงสร้างข้อมูล

คอลัมน์ข้อมูลตัวอย่าง
Aเลขที่ออเดอร์CON-2606-001
Bวันที่01/06/2026
Cโครงการลำพูน A
DเกรดคอนกรีตC30
Eปริมาณสั่ง (คิว)45
Fปริมาณส่งจริง (คิว)45
Gราคา/คิว900
Hรายได้ (=F×G)40,500
Iรถผสมคอนกรีต (คัน)7
Jสถานะส่งแล้ว

สูตรสำคัญ

รายได้ต่อออเดอร์ (คอลัมน์ H)
=F2*G2
ปริมาณส่งจริง × ราคาต่อคิว
ปริมาณคอนกรีตรวมเดือน
=SUMIFS(F:F, B:B, ">="&DATE(2026,6,1), B:B, "<="&EOMONTH(DATE(2026,6,1),0))
รายได้รวมเดือน
=SUMIFS(H:H, B:B, ">="&DATE(2026,6,1), B:B, "<="&EOMONTH(DATE(2026,6,1),0))
ปริมาณรายโครงการ
=SUMIF(C:C, "ลำพูน A", F:F)
รวมคิวที่ส่งให้โครงการ ลำพูน A
อัตราการส่ง %
=SUM(F:F)/SUM(E:E)*100
ส่งจริงรวม ÷ สั่งรวม × 100
นับออเดอร์ที่รอส่ง
=COUNTIF(J:J, "รอส่ง")

📐 สูตร Google Sheets อ้างอิงเร็ว

สูตรที่ใช้บ่อยในทุกระบบ

รวมตามเงื่อนไข
=SUMIFS(ช่วงผลลัพธ์, ช่วงเงื่อนไข1, เงื่อนไข1, ช่วงเงื่อนไข2, เงื่อนไข2)
ใช้บ่อยที่สุด — รวมข้อมูลแบบมีตัวกรอง
วันสุดท้ายของเดือน
=EOMONTH(DATE(ปี,เดือน,1),0)
ใช้ใน SUMIFS เพื่อกำหนดช่วงปลายเดือน
นับตามเงื่อนไขหลายอย่าง
=COUNTIFS(ช่วงA, เงื่อนไขA, ช่วงB, เงื่อนไขB)
ค้นหาข้อมูลจากชีตอื่น
=VLOOKUP(ค่าค้นหา, ชีตอื่น!A:Z, คอลัมน์ผลลัพธ์, 0)
0 = ค้นหาตรงตัว, ไม่ใช้ค่าประมาณ
ค้นหาแบบยืดหยุ่น (แนะนำ)
=INDEX(ช่วงผลลัพธ์, MATCH(ค่าค้นหา, ช่วงค้นหา, 0))
ดีกว่า VLOOKUP คือสามารถค้นหาทางซ้ายได้
ลบข้อมูลซ้ำ
=UNIQUE(ช่วงข้อมูล)
Google Sheets เท่านั้น — ดึงค่าไม่ซ้ำ
วันนี้
=TODAY()
เดือนจากวันที่
=MONTH(A2)
ดึงเดือน (1-12) จากวันที่
ปีจากวันที่
=YEAR(A2)
ผลรวมแบบมีเงื่อนไขหลายรายการ
=SUMPRODUCT((เงื่อนไข1)*(เงื่อนไข2)*ช่วงผลลัพธ์)
ทรงพลังมาก ใช้แทน SUMIFS ได้ในหลายกรณี
IF ซ้อนกัน
=IF(เงื่อนไข1, ผล1, IF(เงื่อนไข2, ผล2, ผลอื่น))
จัดรูปแบบตัวเลข (Text)
=TEXT(A2,"#,##0.00")
แสดงตัวเลขพร้อม comma separator

💡 เทคนิคและข้อแนะนำ

Best practices สำหรับ LMC Smart Systems

การป้องกันข้อมูลผิดพลาด

Data Validation — Dropdown
Data → Data Validation → Dropdown (จากช่วง)
ใช้ใน: ชื่อไซต์, สถานะรถ, หมวดรายจ่าย — ป้องกันพิมพ์ผิด
ล็อคสูตร (Protect Sheet)
Data → Protect sheets and ranges
ล็อคเฉพาะคอลัมน์สูตร ให้แก้ได้เฉพาะคอลัมน์กรอกข้อมูล
แจ้งเตือนด้วยสี
Format → Conditional Formatting
ใช้ไฮไลต์สีแดงเมื่อสต๊อกต่ำกว่าขั้นต่ำ หรือประกันใกล้หมด

การตั้งชื่อช่วงข้อมูล (Named Range)

วิธีตั้ง: เลือกช่วงข้อมูล → Data → Named ranges → ตั้งชื่อ เช่น "SITES", "RATES"
ประโยชน์: เขียนสูตรได้ง่าย เช่น =SUMIF(SITES, "ลำพูน A", MAN_DAYS) แทนที่จะต้องจำ B:B, D:D

การสำรองข้อมูลรายเดือน

ทุกสิ้นเดือนให้ทำสำเนาชีตข้อมูล โดย: คลิกขวาที่แท็บชีต → Duplicate → เปลี่ยนชื่อเป็น "YYYY-MM BACKUP" แล้วล็อคไม่ให้แก้ไข