เพราะการใช้ AppSheet ในการทำงานที่ซับซ้อนมากขึ้นต้องอาศัยการเขียนสูตร ในบทความนี้เลยจะมาแนะนำสูตรที่ใช้บ่อย ๆ สำหรับมือใหม่มาให้อ่านกัน
ถึงแม้ว่า AppSheet จะถูกออกแบบมาให้สามารถทำ Application ได้โดยไม่ต้องเขียนโค้ด เขียนสูตรสักบรรทัด แต่การเขียนสูตรง่าย ๆ เหมือนที่เขียนใน Excel จะช่วยประหยัดเวลาการทำงานไปได้อีกเยอะ เหมือนแทนที่เราจะ Copy & Paste ใน Excel เราใช้วิธีผูกสูตรทำให้คำนวนค่าถูกต้อง และปรับแก้ได้ง่ายในภายหลัง
สนใจเรียน AppSheet กับเรา ?
ไม่ต้องเสียเวลาเรียนรู้ AppSheet ด้วยตัวเอง เพียงแค่เรียนคอร์ส AppSheet Intensive Course ผ่าน Facebook Group กับเรา พร้อมให้คำปรึกษาหลังเรียน
ความเข้าใจพื้นฐานก่อนใช้สูตรใน 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")
สูตร UNIQUEID() ใน AppSheet
สูตร UNIQUEID() ใช้สำหรับสร้างรหัสแบบสุ่ม (Random) เพื่อใช้สร้าง Primary Key หรือ ID ของแต่ละตาราง
โดยสูตร UNIQUEID() จะให้ผลลัพธ์เป็น Text
ตัวอย่างการใช้งาน สูตร UNIQUEID() ใน AppSheet:
- กรณีที่ต้องการสร้างรหัสแบบสุ่ม (Random)
UNIQUEID()
สูตรที่เกี่ยวกับการเปรียบเทียบข้อมูลใน 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
สูตรที่เกี่ยวกับการคำนวนข้อมูลใน 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 และแบ่งปันเทคนิคในการสร้างแอปพลิเคชั่น