ความแตกต่างระหว่างฟังก์ชัน Filter และ LookUp ใน Power Apps :  การใช้งานร่วมกับ Gallery และ Form Display

การดึงข้อมูลมาแสดงในคอมโพเนนต์ต่าง ๆ ใน Power Apps มีหลายวิธี ขึ้นอยู่กับประเภทของข้อมูลที่ต้องการแสดง โดยฟังก์ชัน Filter() และ LookUp() เป็นฟังก์ชันที่ใช้บ่อยในการดึงข้อมูลจากแหล่งข้อมูล (Data Source) มาแสดงใน Gallery และ Form Display ซึ่งมีพฤติกรรมที่แตกต่างกันเมื่อใช้งานร่วมกับคอมโพเนนต์เหล่านี้ บทความนี้จะอธิบายการใช้งานฟังก์ชันทั้งสอง พร้อมทั้งเปรียบเทียบผลลัพธ์ที่เกิดขึ้นในแต่ละกรณี

การทดสอบครั้งนี้ เราใช้คอมโพเนนต์หลักใน Power Apps ได้แก่:

  • Gallery: ใช้สำหรับแสดงข้อมูลหลายรายการ รองรับการกำหนดค่า Items
  • Form Display: ใช้สำหรับแสดงข้อมูลเพียงรายการเดียว รองรับการกำหนดค่า Item
  • Text Input (txtSearchType): ใช้สำหรับป้อนค่าประเภทที่ต้องการค้นหา เช่น movie หรือ TV Show

เราจะเปรียบเทียบการใช้ฟังก์ชัน Filter() และ LookUp() กับคอมโพเนนต์เหล่านี้ เพื่อดูว่าผลลัพธ์ที่ได้นั้นแตกต่างกันอย่างไร

กรณีที่ 1: ใช้ฟังก์ชัน Filter() ใน Gallery และ Form Display

จากรูปที่ 1 มีการใช้ฟังก์ชัน Filter() กับ Gallery และ Form Display โดย formula ที่ใช้มีลักษณะดังนี้:

ผลลัพธ์ :

  • Gallery สามารถแสดงข้อมูลที่กรองมาได้ทั้งหมดที่ตรงกับประเภทที่ค้นหา (movie)
  • Form Display ไม่แสดงข้อมูลใดเลย

เหตุผล:

  • Filter() จะคืนค่าข้อมูลเป็นประเภท Table
  • Gallery รองรับข้อมูลประเภท Table และสามารถแสดงผลรายการทั้งหมดที่ตรงกับเงื่อนไขได้
  • Form Display รองรับข้อมูลประเภท Record เท่านั้น ไม่สามารถแสดงข้อมูลที่เป็น Table ได้ จึงไม่มีข้อมูลแสดง

กรณีที่ 2: ใช้ LookUp() ใน Form Display แต่ยังใช้ Filter() ใน Gallery

จากรูปที่ 2 มีการใช้ฟังก์ชัน LookUp() กับ Form Display ในขณะที่ Gallery ยังใช้ Filter() เหมือนเดิม

ผลลัพธ์:

  • Gallery ยังสามารถแสดงข้อมูลที่กรองมาได้หลายรายการ
  • Form Display สามารถแสดงข้อมูลของ หนึ่งรายการแรกเท่านั้น ที่ตรงกับประเภทที่ค้นหา (movie)

เหตุผล:

  • LookUp() คืนค่าข้อมูลเป็นประเภท Record ซึ่งเป็น แค่รายการแรกที่พบ แม้ว่าจะมีหลายรายการที่ตรงกับเงื่อนไข
  • Form Display รองรับข้อมูลประเภท Record ได้ จึงสามารถแสดงข้อมูลได้ตามปกติ
  • Gallery ยังคงใช้ Filter() ซึ่งคืนค่าข้อมูลประเภท Table ทำให้สามารถแสดงข้อมูลหลายรายการได้

กรณีที่ 3: ใช้ LookUp() ทั้งใน Gallery และ Form Display

จากรูปที่ 3 มีการใช้ LookUp() ทั้งใน Gallery และ Form Display:

ผลลัพธ์:

  • Gallery แสดงเพียง 1 รายการแรกเท่านั้น แทนที่จะเป็นหลายรายการ
  • Form Display แสดงข้อมูลได้ตามปกติ แต่เป็นเพียงรายการแรกที่พบ

เหตุผล:

  • LookUp() คืนค่าเป็น Record ซึ่งหมายถึงแค่ 1 รายการแรกที่พบ ทำให้ Gallery ได้รับแค่ 1 รายการเท่านั้น แม้จะมีหลายรายการที่ตรงกับเงื่อนไข
  • Form Display ยังคงแสดงข้อมูลได้ตามปกติ เพราะรองรับข้อมูลประเภท Record

บทสรุป

จากการทดลองข้างต้น สามารถสรุปข้อแตกต่างของ Filter() และ LookUp() ได้ดังนี้

ฟังก์ชันประเภทข้อมูลที่คืนค่าใช้งานกับ Gallery ได้หรือไม่ใช้งานกับ Form Display ได้หรือไม่
Filter()Table (หลายรายการ)✅ แสดงผลหลายรายการ❌ ไม่รองรับ Table
LookUp()Record (แค่ 1 รายการแรกที่พบ)✅ แสดงแค่ 1 รายการแรกที่พบ✅ แสดงผลรายการแรกที่พบ

  • หากต้องการแสดง หลายรายการ ให้ใช้ Filter() และควรใช้กับ Gallery
  • หากต้องการแสดง รายการแรกที่พบ ให้ใช้ LookUp() ซึ่งจะเหมาะกับ Form Display
  • Gallery สามารถใช้ได้ทั้ง Filter() และ LookUp() แต่หากใช้ LookUp() จะสามารถแสดงได้เพียง รายการเดียวเท่านั้น
  • Gallery ใช้ Items เป็น property สำหรับกำหนดข้อมูลที่ใช้แสดง ซึ่งสามารถเป็นได้ทั้ง Table หรือ Record
  • Form Display ใช้ Item เป็น property ที่รับได้เฉพาะ Record เท่านั้น ไม่สามารถรับ Table ได้

การเลือกใช้ฟังก์ชันให้เหมาะสมกับคอมโพเนนต์จะช่วยให้สามารถดึงข้อมูลมาแสดงได้อย่างถูกต้องและมีประสิทธิภาพมากขึ้น

หวังว่าบทความนี้จะช่วยให้คุณเข้าใจความแตกต่างของ Filter() และ LookUp() ใน Power Apps ได้ดีขึ้น และสามารถเลือกใช้ได้อย่างเหมาะสมกับการพัฒนาแอปของคุณ

หลักสูตรที่เกี่ยวข้อง

Microsoft 365 for End User Training
Microsoft SharePoint Online For Front-End
Microsoft Power Apps (Canvas App) Workshop
Microsoft Power Automate (Cloud)
Microsoft Copilot Studio (Former Power Virtual Agent)

สนใจสอบถามรายละเอียดเพิ่มเติม

Tel: 021198405

Line: @M365th

Email: Sales@m365.co.th