รวมสูตรใน AppSheet ที่มือใหม่ควรรู้ พร้อมตัวอย่างการใช้

AppSheet Formula คือฟังก์ชันสำคัญที่ช่วย จัดการข้อมูลและสร้างเงื่อนไขอัตโนมัติ ภายในแอปพลิเคชันโดยไม่ต้องเขียนโค้ด (No-Code) คล้ายกับ Excel แต่ทรงพลังกว่า ช่วยให้คุณสามารถ ดึงข้อมูลผู้ใช้งาน (User Info), คำนวณวันเวลา (Date/Time), และตรวจสอบความถูกต้องของข้อมูล (Validation) ได้อย่างแม่นยำ ทำให้แอปทำงานได้ฉลาดและลดข้อผิดพลาดในการกรอกข้อมูล

ถึงแม้ว่า AppSheet จะถูกออกแบบมาให้สามารถทำ Application ได้โดยไม่ต้องเขียนโค้ด เขียนสูตรสักบรรทัด แต่การเขียนสูตรง่าย ๆ เหมือนที่เขียนใน Excel จะช่วยประหยัดเวลาการทำงานไปได้อีกเยอะ เหมือนแทนที่เราจะ Copy & Paste ใน Excel เราใช้วิธีผูกสูตรทำให้คำนวนค่าถูกต้อง และปรับแก้ได้ง่ายในภายหลัง

เพราะการใช้ AppSheet ในการทำงานที่ซับซ้อนมากขึ้นต้องอาศัยการเขียนสูตร ในบทความนี้เลยจะมาแนะนำสูตรที่ใช้บ่อย ๆ สำหรับมือใหม่มาให้อ่านกัน

สนใจเรียน AppSheet กับเรา ?

ไม่ต้องเสียเวลาเรียนรู้ AppSheet ด้วยตัวเอง เพียงแค่เรียนคอร์ส AppSheet Intensive Course ผ่าน Facebook Group กับเรา พร้อมให้คำปรึกษาหลังเรียน

เลือกอ่านเฉพาะหัวข้อ -

ความเข้าใจพื้นฐานก่อนใช้สูตรใน AppSheet

คำศัพท์พื้นฐานในการเขียนสูตร AppSheet

คำศัพท์พื้นฐานในการเขียนสูตร AppSheet
คำศัพท์พื้นฐานในการเขียนสูตร AppSheet

ในการอธิบายสูตร ผู้อ่านจะต้องเข้าใจ 3 คำศัพท์นี้

  • Table: หมายถึง Sheet / Tab ใน Google Sheet โดย AppSheet 1 App อาจจะมีหลาย Table
  • Column: หมายถึง Field ข้อมูลใน Table
  • Record: หมายถึงข้อมูลแต่ละแถว โดยเริ่มตั้งแต่แถวที่ 2 เป็นต้นไปลงมาจนสุด
  • List: รายการข้อมูลหลาย ๆ ค่าที่ถูกเก็บรวมกัน (เช่น รายชื่ออีเมลทั้งหมด)

ข้อมูลแต่ละ Column มี Data Type ไม่เหมือนกัน

เพราะข้อมูลแต่ละแบบจะมีความสามารถไม่เหมือนกัน เช่นข้อมูลประเภท Number สามารถบวก ลบ คูณ หารกันได้ ส่วนข้อมูลประเภท Text จะสามารถเอาข้อความมาต่อกันได้ ในเบื้องต้นเราสามารถแบ่งประเภทของข้อมูลได้ดังนี้

  • Text เป็นข้อความ สามารถนำข้อมูลที่เป็น Text แต่ละ Column มาแสดงผลต่อกันได้
  • Number เป็นตัวเลข สามารถนำข้อมูลที่เป็น Number แต่ละ Column มาบวก ลบ คูณ หาร กันได้
  • File เป็นไฟล์ซึ่งอาจจะเป็น ไฟล์ลายเซ็นท์, ไฟล์ภาพ, ไฟล์เสียง, ไฟล์ PDF และอื่น ๆ
  • Yes/No เป็นค่า True หรือ False สำหรับนำไปใช้ในการตรวจสอบเงื่อนไขว่าเป็น True (ใช่) หรือ False (ไม่)
  • Lat/Long เป็นข้อมูลละติจูด และลองติจูด เก็บในรูปแบบ (0, 0)
  • Date and Time เป็นข้อมูลวัน และเวลา สามารถนำข้อมูลที่เป็น Date and Time มาบวกลบกันเพื่อนับเวลาได้
  • Enum / EnumList เป็นรายการตัวเลือก
  • Ref เป็นการเชื่อมโยงไปยังแถวในตารางอื่น

อ่านรายละเอียดเพิ่มเติม

สูตรที่เกี่ยวกับการ Prefill ใน AppSheet

สูตร USEREMAIL() ใน AppSheet

สูตร USEREMAIL() ใช้สำหรับดึงข้อมูลอีเมลของผู้ใช้ AppSheet ณ ตอนนั้น

โดยสูตร USEREMAIL() จะให้ผลลัพธ์เป็นอีเมล

ตัวอย่างการใช้งาน สูตร USEREMAIL() ใน AppSheet:

  • กรณีที่ต้องการดึงข้อมูลอีเมลของผู้กรอกข้อมูลโดยที่ไม่ต้องพิมอีเมลเอง
    USEREMAIL()
  • กรณีที่ต้องการตรวจสอบว่ามีข้อมูล Record ไหนที่มีอีเมล ตรงกับอีเมลของผู้ใช้งานปัจจุบัน
    USEREMAIL() = [email]

รายละเอียดคำอธิบายฉบับเต็ม

สูตร USERROLE() ใน AppSheet

สูตร USERROLE() ใช้สำหรับดึงข้อมูลสิทธิของผู้ใช้ AppSheet ณ ตอนนั้นว่ามีสิทธิเป็น Admin หรือ User ของระบบ

โดยสูตร USERROLE() จะให้ผลลัพธ์เป็น “Admin” หรือ “User”

ตัวอย่างการใช้งาน สูตร USERROLE() ใน AppSheet:

  • กรณีที่ต้องการตรวจสอบว่าผู้ใช้เป็น Admin หรือไม่ ?
    USERROLE() = “Admin”
  • กรณีที่ต้องการตรวจสอบว่ามีสิทธิเป็น Admin ใช่หรือไม่ ? ถ้าใช่ให้ส่งค่า “ALL_CHANGES" (สามารถเพิ่ม ลบ แก้ไขได้) แต่ถ้าเป็น User ให้ส่งค่า “UPDATES_ONLY” (สามารถแก้ไขข้อมูลได้อย่างเดียว)
    IF((USERROLE() = "Admin"), "ALL_CHANGES", "UPDATES_ONLY")

รายละเอียดคำอธิบายฉบับเต็ม

สูตร TODAY() ใน AppSheet

สูตร TODAY() ใช้สำหรับดึงข้อมูลวันที่ ณ ปัจจุบัน ตาม Timezone ของผู้ใช้งาน

โดยสูตร TODAY() จะให้ผลลัพธ์เป็นวันที่ (Date) และสามารถบวก ลบ เพื่อหาวันที่อีก 2 วันข้างหน้า (TODAY() + 2)

ตัวอย่างการใช้งาน สูตร TODAY() ใน AppSheet:

  • กรณีที่ต้องการดึงวันที่ ณ ปัจจุบันที่ผู้ใช้งานกำลังบันทึกข้อมูล
    TODAY()
  • กรณีที่ต้องการหาวันที่ในอีก 2 วันข้างหน้านับจากปัจจุบัน
    TODAY() + 2

รายละเอียดคำอธิบายฉบับเต็ม

สูตร NOW() ใน AppSheet

สูตร NOW() ใช้สำหรับดึงข้อมูลวันที่ และเวลา ณ ปัจจุบัน ตาม Timezone ของผู้ใช้งาน

โดยสูตร NOW() จะให้ผลลัพธ์เป็นวันที่และเวลา (DateTime)

ตัวอย่างการใช้งาน สูตร NOW() ใน AppSheet:

  • กรณีที่ต้องการดึงวันที่ และเวลา ณ ปัจจุบันที่ผู้ใช้งานกำลังบันทึกข้อมูล
    NOW()

รายละเอียดคำอธิบายฉบับเต็ม

สูตร UNIQUEID() ใน AppSheet

สูตร UNIQUEID() ใช้สำหรับสร้างรหัสแบบสุ่ม (Random) เพื่อใช้สร้าง Primary Key หรือ ID ของแต่ละตาราง

โดยสูตร UNIQUEID() จะให้ผลลัพธ์เป็น Text

ตัวอย่างการใช้งาน สูตร UNIQUEID() ใน AppSheet:

  • กรณีที่ต้องการสร้างรหัสแบบสุ่ม (Random)
    UNIQUEID()

รายละเอียดคำอธิบายฉบับเต็ม

สูตร USERSETTINGS() ใน AppSheet

สูตร USERSETTINGS() คือสูตรที่ใช้ดึงการตั้งค่าตามผู้ใช้งาน ซึ่งส่วนใหญ่ใช้ทำเรื่องการตั้งค่าตามผู้ใช้งาน เช่น การตั้งค่าภาษา, การตั้งค่ารหัสผ่าน, การตั้งค่าสิทธิการใช้งาน

โดยสูตร USERSETTINGS() จะให้ผลลัพธ์เป็นข้อมูล

ตัวอย่างการใช้งาน สูตร USERSETTINGS() ใน AppSheet:

  • กรณีที่ต้องการดึงข้อมูล settings ของผู้ใช้งาน
    USERSETTINGS("settings")

รายละเอียดคำอธิบายฉบับเต็ม

สูตรที่เกี่ยวกับการเปรียบเทียบข้อมูลใน AppSheet

สูตรสำหรับเปรียบเทียบข้อมูลใน AppSheet

ใน AppSheet เราสามารถใช้สัญลักษณ์ = เพื่อเปรียบเทียบข้อมูล 2 อันว่ามีค่าเท่ากันหรือไม่

โดยการเปรียบเทียบข้อมูลจะต้องเป็นข้อมูลประเภทเดียวกันเช่น Text, Number, Address, Date ถ้าข้อมูลเท่ากันจะให้ผลลัพธ์เป็น True หรือถ้าไม่จะให้ผลลัพธ์เป็น False (Yes/No)

นอกจากการเปรียบเทียบข้อมูลว่าเท่ากันหรือไม่ ยังมีการเปรียบเทียบแบบอื่นอีกดังนี้

  • ใช้ <> สำหรับตรวจสอบว่าข้อมูล 2 อันมีค่าไม่เท่ากันใช่หรือไม่ ?
  • ใช้ > สำหรับตรวจสอบว่าข้อมูล A มากกว่า ข้อมูล B ใช่หรือไม่ ?
  • ใช้ สำหรับตรวจสอบว่าข้อมูล A มากกว่าหรือเท่ากับ ข้อมูล B ใช่หรือไม่ ?
  • ใช้ < สำหรับตรวจสอบว่าข้อมูล A น้อยกว่า ข้อมูล B ใช่หรือไม่ ?
  • ใช้ สำหรับตรวจสอบว่าข้อมูล A น้อยกว่าหรือเท่ากับ ข้อมูล B ใช่หรือไม่ ?

ตัวอย่างการใช้งาน AppSheet:

  • กรณีที่ต้องการตรวจสอบว่าข้อมูล Score เท่ากับ 10 หรือไม่ ?
    [Score] = 10

รายละเอียดคำอธิบายฉบับเต็ม

สูตร LEN() ใน AppSheet

สูตร LEN() ใช้สำหรับนับจำนวนตัวอักษรสำหรับข้อมูลที่เป็นตัวอักษร

โดยสูตร LEN() จะให้ผลลัพธ์เป็น Number ตามจำนวนตัวอักษร

ตัวอย่างการใช้งาน สูตร LEN() ใน AppSheet:

  • กรณีที่ต้องการตรวจสอบว่าผู้ใช้กรอกข้อมูลใน Column นั้น ๆ ครบ 10 ตัวหรือไม่ ?
    LEN([_THIS]) = 10
  • กรณีที่ต้องการตรวจสอบว่าผู้ใช้กรอกข้อมูลใน Column นั้น ๆ เกิน 10 ตัวอักษรหรือไม่ ?
    LEN([_THIS]) > 10

รายละเอียดคำอธิบายฉบับเต็ม

สูตร ISNOTBLANK() ใน AppSheet

สูตร ISNOTBLANK() ใช้สำหรับเช็คข้อมูลว่าเป็นค่าว่างหรือไม่ ? (ไม่ได้กรอกข้อมูล)

โดยสูตร ISNOTBLANK() จะให้ผลลัพธ์เป็น True หรือ False (Yes/No)

ตัวอย่างการใช้งาน สูตร ISNOTBLANK() ใน AppSheet:

  • กรณีที่ต้องการเช็คว่าข้อมูลใน Column นั้น ๆ นั้นเป็นค่าว่างหรือไม่ ?
    ISNOTBLANK([_THIS])
  • กรณีที่ต้องการเช็คว่าผู้ใช้กรอกข้อมูลใน Column status มาหรือไม่ ?
    ISNOTBLANK([status])

รายละเอียดคำอธิบายฉบับเต็ม

สูตรที่เกี่ยวกับการสร้างเงื่อนไขการทำงานใน AppSheet

สูตร IF() ใน AppSheet

สูตร IF() ใช้สำหรับตรวจสอบเงื่อนไขการทำงานว่าเป็นไปตามเงื่อนไขหรือไม่ ถ้าตรงเงื่อนไขให้ทำ A และถ้าไม่ตรงเงื่อนไขให้ทำ B

โดยสูตร IF() จะสามารถใช้เพื่อการสร้างเงื่อนไขการทำงานให้ AppSheet ในรูปแบบดังนี้
IF(logical-expression, value-if-true, value-if-false)

ตัวอย่างการใช้งาน สูตร IF() ใน AppSheet:

  • กรณีที่ต้องการแสดงผลข้อมูลตามเงื่อนไขคะแนน ถ้าข้อมูลใน Column Score มีค่าเท่ากับ 10 ให้ส่งค่า “Pass” ถ้าไม่ใช่ให้ส่งค่า “Fail”
    IF(([Score] = 10), “Pass”, “Fail”)
  • กรณีที่ต้องการตรวจสอบว่าวันที่บันทึกใน Column Date เป็นวันนี้ใช่หรือไม่ ?
    IF(([Date] = TODAY()), TRUE, FALSE)
  • กรณีที่ต้องการตรวจสอบว่ามีสิทธิเป็น Admin ใช่หรือไม่ ? ถ้าใช่ให้ส่งค่า “ALL_CHANGES" (สามารถเพิ่ม ลบ แก้ไขได้) แต่ถ้าเป็น User ให้ส่งค่า “UPDATES_ONLY” (สามารถแก้ไขข้อมูลได้อย่างเดียว)
    IF((USERROLE() = "Admin"), "ALL_CHANGES", "UPDATES_ONLY")

รายละเอียดคำอธิบายฉบับเต็ม

สูตรที่เกี่ยวกับการดึงข้อมูลใน AppSheet

สูตรสำหรับดึงข้อมูลใน AppSheet

ใน AppSheet เราสามารถใช้สูตร [columnName] เพื่อดึงข้อมูลจาก Column อื่นใน Record เดียวกันได้

โดยสูตร [columnName] จะให้ผลลัพธ์เป็นค่าของข้อมูลใน Column นั้น ๆ

ตัวอย่างการใช้งาน สูตร [columnName] ใน AppSheet:

  • กรณีที่ต้องการดึงข้อมูลใน Column Status มาแสดงผล
    [Status]

รายละเอียดคำอธิบายฉบับเต็ม

สูตร [_THIS] ใน AppSheet

สูตร [_THIS] ใช้สำหรับดึงข้อมูลใน Field นั้น ๆ

โดยสูตร [_THIS] จะให้ผลลัพธ์เป็นค่าของข้อมูลใน Column นั้น ๆ

ตัวอย่างการใช้งาน สูตร [_THIS] ใน AppSheet:

  • กรณีที่ต้องการตรวจสอบว่าข้อมูลใน Column นั้น ๆ มีค่าเท่ากับ 5 ใช่หรือไม่
    [_THIS] = 5

รายละเอียดคำอธิบายฉบับเต็ม

สูตร IN() ใน AppSheet

สูตร IN() ใช้ตรวจสอบข้อมูลใน List

โดยสูตร IN() จะให้ผลลัพธ์เป็น TRUE หรือ FALSE เมื่อตรวจสอบหาข้อมูลใน List ซึ่งส่วนใหญ่ใช้เพื่อตรวจสอบข้อมูลใน Table อื่น ๆ เพื่อเช็คว่ามีข้อมูลที่ต้องการหรือไม่

โดยสูตร IN() จะเขียนในรูปแบบดังนี้
IN(search-value, list)

ตัวอย่างการใช้งาน สูตร IN() ใน AppSheet:

  • กรณีที่ต้องการตรวจสอบ Email ปัจจุบันของผู้ใช้งานว่ามีอยู่ในระบบหรือไม่ ?
    IN(USEREMAIL(), Table[Email])
  • กรณีที่ต้องการตรวจสอบว่า Row / ข้อมูลชุดนี้เป็นข้อมูลชุดใหม่มั้ย ? ส่วนใหญ่ใช้เพื่อเช็คว่าการกรอกแบบฟอร์มนี้เป็นการเพิ่มข้อมูลใหม่ หรือแก้ไขข้อมูลเดิม
    NOT(IN([_ROWNUMBER], Table[_ROWNUMBER]))

รายละเอียดคำอธิบายฉบับเต็ม

สูตร LOOKUP() ใน AppSheet

สูตร LOOKUP() ใช้เพื่อดึงข้อมูลบาง Column ใน Table ตามเงื่อนไข

โดยสูตร LOOKUP() จะทำการค้นหา Row / ข้อมูล ตามเงื่อนไขก่อน แล้วค่อยเลือก Column ที่สนใจมาแสดงผล

โดยสูตร LOOKUP() จะเขียนในรูปแบบดังนี้
LOOKUP(value, dataset, column, return-column)

ตัวอย่างการใช้งาน สูตร LOOKUP() ใน AppSheet:

  • กรณีที่ต้องการค้นหา user_id ของ Table user โดยเลือก Row / ข้อมูลที่ USEREMAIL() หรือ Email ของผู้ใช้งานปัจจุบัน เท่ากับ email ใน Table user
    LOOKUP(USEREMAIL(), "user", "email", "user_id")

รายละเอียดคำอธิบายฉบับเต็ม

สูตร SELECT() ใน AppSheet

สูตร SELECT() ใช้ดึงรายการข้อมูล (List) จากคอลัมน์ที่ต้องการตามเงื่อนไข

โดยสูตร SELECT() จะให้ผลลัพธ์เป็น List (รายการข้อมูลหลายตัว) แม้ว่าเงื่อนไขจะตรงเพียงรายการเดียวก็ตาม

โดยสูตร SELECT() จะเขียนในรูปแบบดังนี้
SELECT(Table[Column], [Condition], [DistinctOnly])

ตัวอย่างการใช้งาน สูตร SELECT() ใน AppSheet:

  • กรณีที่ต้องการดึงรายชื่ออีเมลของพนักงานทั้งหมดที่อยู่แผนก “IT”
    SELECT(Employee[Email], [Department] = "IT")
  • กรณีที่ต้องการดึงราคาสินค้าในตาราง Product โดยที่สินค้านั้นยังคงมีสถานะ “พร้อมขาย” และไม่เอาค่าที่ซ้ำกัน
    SELECT(Product[Price], [Status] = “Available”, TRUE)

รายละเอียดคำอธิบายฉบับเต็ม

สูตร FILTER() ใน AppSheet

สูตร FILTER() ใช้สำหรับดึงรายการ Key (ID) ของแถวทั้งหมดในตารางที่ตรงตามเงื่อนไขที่กำหนด

โดยสูตร FILTER() จะให้ผลลัพธ์เป็น List of Keys (รายการรหัสอ้างอิง) ซึ่งมักใช้ร่วมกับฟังก์ชันอื่นเพื่อประมวลผลต่อ

โดยสูตร FILTER() จะเขียนในรูปแบบดังนี้
FILTER("Table", [Condition])

ตัวอย่างการใช้งาน สูตร FILTER() ใน AppSheet:

  • กรณีที่ต้องการดึง ID ทั้งหมดจากตาราง “Orders” ที่เป็นรายการของวันนี้
    FILTER("Orders", [OrderDate] = TODAY())
  • กรณีที่ต้องการหา ID ของงานที่ยังทำไม่เสร็จ (Status ไม่เท่ากับ “Done”)
    FILTER("Tasks", [Status] <> "Done")

รายละเอียดคำอธิบายฉบับเต็ม

สูตรที่เกี่ยวกับการคำนวนข้อมูลใน AppSheet

สูตร CEILING() ใน AppSheet

สูตร CEILING() ใช้สำหรับปัดเศษทศนิยมขึ้นสำหรับข้อมูลที่เป็นตัวเลข

โดยสูตร CEILING() จะให้ผลลัพธ์เป็น Number

ตัวอย่างการใช้งาน สูตร CEILING() ใน AppSheet:

  • กรณีที่ต้องการปัดเลขทศนิยมขึ้น
    CEILING(3.14)

รายละเอียดคำอธิบายฉบับเต็ม

สูตร FLOOR() ใน AppSheet

สูตร FLOOR() ใช้สำหรับปัดเศษทศนิยมลงสำหรับข้อมูลที่เป็นตัวเลข

โดยสูตร FLOOR() จะให้ผลลัพธ์เป็น Number

ตัวอย่างการใช้งาน สูตร FLOOR() ใน AppSheet:

  • กรณีที่ต้องการปัดเลขทศนิยมขึ้น เพราะหาค่าเฉลี่ยคะแนน
    FLOOR([average_score])

รายละเอียดคำอธิบายฉบับเต็ม

สูตรอื่น ๆ ใน AppSheet

สูตร CONCATENATE() ใน AppSheet

สูตร CONCATENATE() ใช้สำหรับรวมข้อความเข้าด้วยกัน

โดยสูตร CONCATENATE() จะให้ผลลัพธ์เป็น Text

ตัวอย่างการใช้งาน สูตร CONCATENATE() ใน AppSheet:

  • กรณีที่ต้องการแสดงผลข้อมูลจาก Column first_name และ ข้อมูลจาก Column last_name
    CONCATENATE([first_name], " ", [last_name])

รายละเอียดคำอธิบายฉบับเต็ม

ตัวอย่างการประยุกต์ใช้สูตร AppSheet Formula

สูตรตรวจสอบข้อมูลใหม่ (Is this a new row?) ใน AppSheet

สูตรนี้ใช้เพื่อตรวจสอบว่า Record ที่กำลังเปิดใช้งานอยู่นั้น เป็นการเพิ่มข้อมูลชุดใหม่ ที่ยังไม่ได้ถูกบันทึกลงในฐานข้อมูล (Table) ใช่หรือไม่ โดยปกติแล้วในขณะที่เรากรอกฟอร์ม AppSheet จะทำงานบนข้อมูลชั่วคราว (Temporary Copy) จนกว่าเราจะกด Save สูตรนี้จึงช่วยในการแยกแยะระหว่างการ Add (เพิ่ม) และการ Edit (แก้ไข)

รายละเอียดคำอธิบายฉบับเต็ม

โดยสูตรนี้จะเขียนในรูปแบบดังนี้
NOT(IN([_ROWNUMBER], My Table[_ROWNUMBER]))
หรือ
ISBLANK(FILTER("My Table", ([_ROWNUMBER] = [_THISROW].[_ROWNUMBER])))

ตัวอย่างการใช้งาน สูตรตรวจสอบข้อมูลใหม่ ใน AppSheet:

  • กรณีที่ต้องการกำหนดให้ Column บางอย่างแสดงผลเฉพาะตอน “เพิ่มข้อมูลใหม่” เท่านั้น (ใช้ในช่อง Show_If)
    NOT(IN([_ROWNUMBER], "Orders"[_ROWNUMBER]))
  • กรณีที่ต้องการเช็คว่าข้อมูลนี้ยังไม่มีอยู่ในตารางจริง เพื่อคำนวณค่าเริ่มต้นบางอย่าง
    ISBLANK(FILTER(“Tasks”, ([_ROWNUMBER] = [_THISROW].[_ROWNUMBER])))

สูตรตรวจสอบว่าข้อมูลมีอยู่แล้วหรือไม่ (Does this row already exist?) ใน AppSheet

สูตรนี้ใช้เพื่อตรวจสอบว่า Record ดังกล่าว มีตัวตนอยู่ในฐานข้อมูลแล้ว (เป็นข้อมูลเก่าที่นำมาแก้ไข) เพื่อสร้างเงื่อนไขที่แตกต่างจากการเพิ่มข้อมูลใหม่

โดยสูตรจะทำการตรวจสอบจากค่า [_ROWNUMBER] ในตารางจริงว่ามีค่าตรงกับแถวปัจจุบันที่กำลังเปิดอยู่หรือไม่

โดยสูตรนี้จะเขียนในรูปแบบดังนี้
IN([_ROWNUMBER], My Table[_ROWNUMBER])
หรือ
ISNOTBLANK(FILTER("My Table", ([_ROWNUMBER] = [_THISROW].[_ROWNUMBER])))

ตัวอย่างการใช้งาน สูตรตรวจสอบว่าข้อมูลมีอยู่แล้ว ใน AppSheet:

  • กรณีที่ต้องการล็อกไม่ให้แก้ไข Column “รหัสพนักงาน” หากข้อมูลนั้นถูกบันทึกไปแล้ว (ใช้ในช่อง Editable_If)
    NOT(IN([_ROWNUMBER], "Employee"[_ROWNUMBER]))
    (ค่าจะกลายเป็น False เมื่อข้อมูลมีอยู่แล้ว ทำให้แก้ไขไม่ได้)
  • กรณีที่ต้องการให้ปุ่ม Action แสดงเฉพาะใน Record ที่เคยบันทึกไปแล้วเท่านั้น (ใช้ในช่อง Only if this condition is true)
    ISNOTBLANK(FILTER("Product", ([_ROWNUMBER] = [_THISROW].[_ROWNUMBER])))

รู้หรือไม่

AppSheet มีกลุ่มผู้พัฒนาคนไทยใน Facebook Group แล้วนะ หากคุณผู้อ่านพัฒนา AppSheet แล้วติดปัญหา สามารถสอบถามในกลุ่ม แชร์ความรู้การใช้งาน AppSheet by Datayolk.net ซึ่งเป็นกลุ่มที่รวบรวมนักพัฒนา AppSheet ในเมืองไทยเพื่อสอบถามปัญหาเกี่ยวกับการใช้งาน AppSheet และแบ่งปันเทคนิคในการสร้างแอปพลิเคชั่น

คำถามที่พบบ่อยเกี่ยวกับสูตรใน AppSheet

สูตร AppSheet พื้นฐานที่มือใหม่ต้องรู้มีอะไรบ้าง?

สูตรเริ่มต้นที่จำเป็นที่สุดคือ UNIQUEID() สำหรับสร้างคีย์หลัก, TODAY() สำหรับลงวันที่อัตโนมัติ, และ USEREMAIL() เพื่อระบุตัวตนผู้ใช้งาน

วิธีเขียนสูตร IF ใน AppSheet เพื่อสร้างเงื่อนไขทำอย่างไร?

ใช้โครงสร้าง IF(เงื่อนไข, "ค่าถ้าจริง", "ค่าถ้าเท็จ")
ตัวอย่างเช่น หากต้องการแยกสิทธิ์แอดมิน ให้ใช้ IF(USERROLE()="Admin", "Full Access", "View Only")

การใช้สูตร LOOKUP ใน AppSheet เพื่อดึงข้อมูลข้ามตารางทำอย่างไร?

ใช้เมื่อต้องการค้นหาข้อมูลจากตารางอื่น โดยระบุ 4 ส่วนคือ: LOOKUP(ค่าที่ค้นหา, "ชื่อตารางปลายทาง", "คอลัมน์ที่ตรงกัน", "คอลัมน์ที่ต้องการดึงมาแสดง")

ข้อแตกต่างระหว่าง TODAY() และ NOW() ใน AppSheet คืออะไร?

TODAY() จะให้ค่าเฉพาะ “วันที่” (Date) เหมาะสำหรับวันเกิดหรือวันครบกำหนด ส่วน NOW() จะให้ค่า “วันที่และเวลา” (DateTime) เหมาะสำหรับการบันทึกเวลาตอกบัตรหรือ Timestamp

ทำไมสูตร AppSheet ถึงคำนวณค่าผิดพลาดหรือไม่แสดงผล?

สาเหตุส่วนใหญ่มักเกิดจาก Data Type ไม่ตรงกัน (เช่น นำ Text มาบวกเลข) หรือการอ้างอิงชื่อ Column ผิดพลาด แนะนำให้ตรวจสอบ Error Message ในหน้า Expression Assistant