สร้างแอพบันทึกรายรับ–รายจ่ายประจำวัน ด้วย Google AppSheet และ Google Sheets
คู่มือออกแบบ Daily Finance Tracker สำหรับใช้งานส่วนตัวคนเดียว บันทึกเงินเข้า–เงินออก ดูยอดคงเหลือสะสม (Balance) พร้อม Dashboard และสัญลักษณ์เตือนเมื่อเงินเหลือน้อย (Low Balance) โดยไม่ต้องเขียน PHP หรือสร้างฐานข้อมูล MySQL
1. ความสามารถของแอพ
| ฟังก์ชัน | รายละเอียด |
|---|---|
| บันทึกรายรับ | วันที่ หมวดหมู่ รายละเอียด จำนวนเงิน |
| บันทึกรายจ่าย | วันที่ หมวดหมู่ รายละเอียด จำนวนเงิน |
| Balance | ยอดยกมา + รายรับสะสม − รายจ่ายสะสม |
| Dashboard | ยอดคงเหลือ รายการล่าสุด และกราฟค่าใช้จ่าย |
| Low Balance | เตือนบนหน้าจอเมื่อยอดต่ำกว่าเกณฑ์ที่ตั้งไว้ |
| รายงาน | ดูข้อมูลรายวันและรายเดือน |
| การเข้าถึง | ลงชื่อเข้าใช้ด้วยบัญชี Google ของเจ้าของแอพ |
2. ตัวอย่างหน้าจอ Dashboard
My Finance — ข้อมูลสมมติ
+ ฿25,000
− ฿21,150
ตัวอย่างสัดส่วนรายจ่าย
| หมวด | ยอด (บาท) |
|---|---|
| อาหาร | 6,200 |
| เดินทาง | 4,300 |
| ที่พัก | 8,000 |
| อื่น ๆ | 2,650 |
ตัวเลขเป็นเพียงตัวอย่างเพื่อแสดงรูปแบบ Dashboard ไม่ใช่ข้อมูลทางการเงินจริง
3. เตรียม Google Sheets เป็นฐานข้อมูล
เปิด Google Sheets สร้างไฟล์ชื่อ Daily_Finance_Tracker และสร้าง 3 แท็บ ได้แก่ Transactions, Categories, Settings หัวคอลัมน์ต้องอยู่แถวแรก ไม่ใช้เซลล์รวม (Merge)
ชีต Transactions — รายการเงินเข้า–ออก
| ชื่อคอลัมน์ | ชนิดข้อมูล AppSheet | คำอธิบาย |
|---|---|---|
| ID | Text (Key) | รหัสไม่ซ้ำกัน |
| Date | Date | วันที่ทำรายการ |
| Type | Enum | Income / Expense |
| Category | Enum | หมวดหมู่ |
| Description | LongText | รายละเอียดเพิ่มเติม |
| Amount | Price | จำนวนเงินเป็นค่าบวก |
| CreatedAt | DateTime | เวลาบันทึก |
ตัวอย่างข้อมูล:
| Date | Type | Category | Amount |
|---|---|---|---|
| 18/10/2026 | Income | เงินเดือน | 25,000 |
| 18/10/2026 | Expense | อาหาร | 250 |
| 18/10/2026 | Expense | เดินทาง | 1,200 |
ชีต Categories — หมวดหมู่
สร้างคอลัมน์ CategoryID, Type, CategoryName ตัวอย่างหมวดรายรับ: เงินเดือน, รายรับพิเศษ, อื่น ๆ และรายจ่าย: อาหาร, เดินทาง, ที่พัก, ค่าน้ำ–ไฟ, สุขภาพ, อื่น ๆ
ชีต Settings — ยอดยกมาและเกณฑ์เตือน
| SettingID | OpeningBalance | LowBalanceLimit |
|---|---|---|
| MAIN | 0 | 5000 |
สำหรับผู้ใช้คนเดียว ให้มีเพียงหนึ่งแถวคือ MAIN และตั้ง SettingID เป็น Key
4. ขั้นตอนสร้างแอพใน Google AppSheet
Transactions ให้ตรงตามตารางข้างต้น ตั้ง ID เป็น Key และ Initial value เป็น UNIQUEID()Date เป็น TODAY() และ CreatedAt เป็น NOW() พร้อมตั้ง Amount ให้รับค่ามากกว่า 0Transactions เพื่อบันทึกรายรับและรายจ่าย5. สูตรคำนวณ Balance ใน AppSheet
เพิ่ม Virtual Columns ในตาราง Settings ชื่อ TotalIncome, TotalExpense และ Balance โดยใช้ App formula ดังนี้
TotalIncome — รายรับสะสม
SUM(
SELECT(
Transactions[Amount],
[Type] = "Income"
)
)
TotalExpense — รายจ่ายสะสม
SUM(
SELECT(
Transactions[Amount],
[Type] = "Expense"
)
)
Balance — ยอดคงเหลือ
[OpeningBalance] + [TotalIncome] - [TotalExpense]
หลักคำนวณ: Balance = ยอดยกมา + รายรับสะสม − รายจ่ายสะสม
6. ตั้งค่าแจ้งเตือน Low Balance
เพิ่ม Virtual Column ชื่อ BalanceStatus ชนิด Text ในตาราง Settings และใส่สูตร:
IF(
[Balance] < [LowBalanceLimit],
"⚠️ LOW BALANCE",
"✅ NORMAL"
)
จากนั้นเข้าเมนู Format Rules สร้างกฎกับตาราง Settings โดยใช้เงื่อนไข:
[Balance] < [LowBalanceLimit]
กำหนดไอคอนเตือนและสีแดง เพื่อให้สถานะโดดเด่นในหน้า Detail หรือ Dashboard
7. สร้าง Dashboard
ในเมนู App → Views สร้าง View ย่อยแล้วนำมารวมเป็น Dashboard
| ชื่อ View | ชนิด | หน้าที่ |
|---|---|---|
| BalanceCard | Detail | ยอด Balance และ BalanceStatus จาก Settings |
| TransactionsList | Table | รายการล่าสุดจาก Transactions |
| ExpenseChart | Chart | กราฟรายจ่ายตามหมวดหมู่ |
| FinanceDashboard | Dashboard | รวมสาม View ข้างต้น |
สร้าง FinanceDashboard ชนิด Dashboard แล้วเลือก View ย่อยที่ต้องการแสดง หากต้องการให้กราฟรวมรายจ่ายตามหมวด ให้ตั้งค่ากราฟให้รวมยอด Amount ตาม Category และใช้ข้อมูลเฉพาะ Expense
ตัวกรองรายการเดือนปัจจุบัน
สร้าง Slice ของ Transactions และใส่ Row filter condition:
AND(
MONTH([Date]) = MONTH(TODAY()),
YEAR([Date]) = YEAR(TODAY())
)
ถ้าต้องการเฉพาะรายจ่ายเดือนนี้ ให้เพิ่มเงื่อนไข [Type] = "Expense" เข้าไปด้วย จากนั้นใช้ Slice นี้เป็นแหล่งข้อมูลของกราฟรายจ่ายรายเดือน
8. ความปลอดภัยและการใช้งานคนเดียว
เปิด Require sign-in และกำหนดให้เข้าถึงแอพได้เฉพาะบัญชี Google ของเจ้าของแอพ หลีกเลี่ยงการเผยแพร่ข้อมูล Google Sheets เป็นสาธารณะ ตรวจสอบการแชร์ไฟล์และสิทธิ์ AppSheet ก่อนใช้งานจริง
AppSheet มีเงื่อนไขการใช้งานและแผนราคาแตกต่างกันตามรูปแบบการใช้งาน ควรตรวจสอบรายละเอียดล่าสุดจาก เว็บไซต์ AppSheet ก่อน Deploy
9. ทดสอบระบบก่อนใช้จริง
| รายการทดสอบ | จำนวนเงิน (บาท) |
|---|---|
| OpeningBalance | 10,000 |
| รายรับ | +5,000 |
| รายจ่าย | −8,000 |
| Balance ที่ควรได้ | 7,000 |
ตั้ง LowBalanceLimit เป็น 8,000 บาท แล้วตรวจสอบว่าระบบแสดง ⚠ LOW BALANCE เมื่อยอดคงเหลือ 7,000 บาท
ทดสอบเพิ่ม แก้ไข ลบรายการ ซิงก์ข้อมูลกลับ Google Sheets และดูผลบนมือถือ ก่อนลบรายการทดลองและเริ่มบันทึกข้อมูลจริง
10. เริ่มใช้งานจริง
- สร้างไฟล์ Google Sheets และตั้งหัวตารางให้ครบ
- นำไฟล์มาเชื่อม AppSheet
- ตั้ง Key และฟอร์มบันทึกรายการ
- เพิ่ม Virtual Columns และสูตร Balance
- สร้าง Low Balance Format Rule
- สร้าง Dashboard และทดสอบข้อมูล
- ลบข้อมูลทดลอง ตั้งยอดยกมาจริง แล้วเริ่มใช้งาน
สรุป: สำหรับผู้ใช้คนเดียว ระบบนี้ไม่ต้องมีตาราง Users หรือสิทธิ์หลายระดับ เริ่มจาก Google Sheets 3 ตารางก็เพียงพอสำหรับบันทึกรายรับ–รายจ่าย คำนวณยอดคงเหลือ และแจ้งเตือน Low Balance บน Dashboard
คู่มือนี้เป็นแนวทางการออกแบบและตั้งค่า ไม่ใช่แอพที่ Deploy แล้ว และตัวเลขตัวอย่างทั้งหมดเป็นข้อมูลสมมติ