ทำแอพเชคชื่อใน 15 นาที ด้วย Appsheet ep2

 ตอนที่ 2 เราจะมาขยายความสามารถของแอพ ในการสร้างตารางเพิ่ม เพื่อเรียกดูข้อมูล การบันทึกเวลา เข้างานออกงาน ของแต่ละคน กันครับ 

🔁 ถามตัวเองก่อนจะสร้าง Table ใหม่:

คำถามถ้าคำตอบคือ "ใช่" → สร้าง Table ใหม่
ต้องการคำนวณผลต่างของเวลา (IN - OUT)?
ต้องสรุปผลรายวัน/รายเดือนของแต่ละพนักงาน?
ต้องการดูค่าเฉลี่ยเวลาทำงานหรือสะสม?

ตามเหตุผล เรามาสร้างตารางเพิ่มก่อน ตามคำแนะนำ ด้านล่าง 

🔧 ขั้นตอนที่ 1: เตรียม Google Sheet

  1. ไปที่ไฟล์ Google Sheet ของคุณ

  2. เพิ่มแผ่นใหม่ ชื่อว่า DailyWorkSummary

  3. ใส่หัวตารางแบบนี้:

SummaryIDEmployeeIDDateInTimeOutTimeWorkHours
(Auto ID)E0012025-05-2508:00 AM05:00 PM9.0

นำเข้าข้อมูลไปที่ Appsheet และกำหนดชนิดของคอลัมน์ ดังนี้

🔧 ขั้นตอนที่ 2: ตั้งค่า Column ใน AppSheet

  1. ไปที่ Data > Columns > DailyWorkSummary

  2. ตรวจสอบและตั้งค่า:

    • SummaryID: Key (Auto)

    • EmployeeID: Type = Ref → Table = Employee

    • Date: Type = Date

    • InTime / OutTime: Type = DateTime

    • WorkHours: Type = Decimal (หรือ Duration ก็ได้)


วิธี : ใช้สูตร Virtual Column คำนวณเวลาจาก TimeLogs

🔧 วิธีเพิ่ม Virtual Column ใน DailyWorkSummary

🧩 Virtual Column 1: In Time

MIN(

  SELECT(

    TimeLogs[เวลา],

    AND(

      [EmployeeID] = [_THISROW].[EmployeeID],

      [ประเภท] = "เวลาเข้า",

      DATE([เวลา]) = [_THISROW].[Date]

    )

  )

)

สร้างอีกคอลัมน์จำลอง 

🧩 Virtual Column 2: Out Time

MAX(

  SELECT(

    TimeLogs[เวลา],

    AND(

      [EmployeeID] = [_THISROW].[EmployeeID],

      [ประเภท] = "เวลาออก",

      DATE([เวลา]) = [_THISROW].[Date]

    )

  )

)



🔧 ขั้นตอนที่ 3: สร้างกราฟสรุปจาก DailyWorkSummary

  1. ไปที่ UX > Views

  2. กด “New View”

  3. ตั้งชื่อ: กราฟเวลาทำงาน

  4. View type: Chart

  5. For table: DailyWorkSummary

  6. Chart type: Column หรือ Line

  7. Label: Date

  8. Series: WorkHours

  9. Group by: EmployeeID หรือ Name


🎯 เสริม: เพิ่มใน Dashboard

  1. ไปที่ UX > Views

  2. New View → Type = Dashboard

  3. เพิ่ม View:

    • Table ของ DailyWorkSummary

    • Form (ถ้ามี)

    • Chart ที่สร้างไว้

วิธีป้องกันการลงเวลาเข้างานซ้ำในแต่ละวัน

✅ สูตร Valid If (เช็คทั้ง "เวลาเข้า" และ "เวลาออก")

IF(
  [ประเภท] = "เวลาเข้า",
  ISBLANK(
    FILTER(
      "TimeLogs",
      AND(
        ([EmployeeID] = [_THISROW].[EmployeeID]),
        ([วันที่] = [_THISROW].[วันที่]),
        ([ประเภท] = "เวลาเข้า")
      )
    )
  ),
  IF(
    [ประเภท] = "เวลาออก",
    AND(
      ISBLANK(
        FILTER(
          "TimeLogs",
          AND(
            ([EmployeeID] = [_THISROW].[EmployeeID]),
            ([วันที่] = [_THISROW].[วันที่]),
            ([ประเภท] = "เวลาออก")
          )
        )
      ),
      NOT(
        ISBLANK(
          FILTER(
            "TimeLogs",
            AND(
              ([EmployeeID] = [_THISROW].[EmployeeID]),
              ([วันที่] = [_THISROW].[วันที่]),
              ([ประเภท] = "เวลาเข้า")
            )
          )
        )
      )
    ),
    TRUE
  )
)



ليست هناك تعليقات:

إرسال تعليق