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

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

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

สนใจเรียน 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 เป็นต้นไปลงมาจนสุด

ข้อมูลแต่ละ 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 มาบวกลบกันเพื่อนับเวลาได้

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

สูตรที่เกี่ยวกับการ 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")

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

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