การใช้ Filter, Search, Lookup ใน Power Apps

by

Filter คือ ฟังก์ชันที่ใช้ค้นหา record ในตาราง ถ้าข้อมูลไหนที่ตรงกับสูตร (formula) ก็จะนำข้อมูลนั้นมาแสดง ข้อมูลไหนที่ไม่ตรงก็จะไม่แสดง เช่น ให้หาคำว่า “chocolate”

ผลลัพธ์ที่ return กลับมาจะเป็นตารางที่มี record ที่ตรงกับเงื่อนไข ในกรณีที่ไม่มี record ไหนที่ตรงกับสูตรจะ return empty

Search คือ ฟังก์ชันที่ใช้ค้นหา record ในตาราง ที่มีข้อความ (string) ตรงกับคอลัมน์ โดยที่ข้อความนั้นจะอยู่ส่วนไหนในคอลัมน์ก็ได้ เช่น ให้หาคำว่า “choc” ฟังก์ชัน Search เป็น case-insensitive

ผลลัพธ์ที่ return กลับมาจะเป็นตารางที่มี record ที่ตรงกับเงื่อนไข ในกรณีที่ไม่มี record ไหนที่ตรงกับข้อความจะ return empty

Lookup คือ ฟังก์ชันที่ใช้ค้นหา record แรกในตาราง ถ้าข้อมูลไหนที่ตรงกับสูตร (formula) ก็จะนำข้อมูลนั้นมาแสดง ข้อมูลไหนที่ไม่ตรงก็จะไม่แสดง ผลลัพธ์ที่ return กลับมาจะมีแค่ record แรกที่ตรงกับเงื่อนไข ในกรณีที่ไม่มี record ไหนที่ตรงกับสูตรจะ return blank

ตัวอย่างการใช้ Filter, Search, Lookup แบบง่ายๆ

วันนี้จะลองเขียนตามตัวอย่างของไมโครซอฟท์

สร้างตารางตามเอกสารของไมโครซอฟท์ใน SharePoint (ในบทความนี้เพ็ญจะเพิ่มรูปภาพเข้าไปด้วย เพื่อเขียนใน Gallery)

สร้างข้อมูลใน SharePoint หารูปภาพจาก Google มาใส่

สร้าง Canvas app แล้ว connect data ไปที่ SharePoint

Connect to SharePoint

Insert Control ที่ต้องการ เช่น Gallery, Data Table

สมมุติว่าใช้ Gallery อาจจะเลือกเป็น Vertical gallery แล้วจัดองค์ประกอบตามที่ต้องการ

ใช้เป็น Vertical gallery ก็ได้
Gallery แสดงรูป, Flavor, Quantity, OnOrder

สมมุติว่าใช้ Data table ก็ลบ column ที่ไม่ใช้ออก (สามารถสลับตำแหน่ง Column ได้, เปลี่ยน Header Text ได้)

ใช้ Data table ก็ได้
สามารถสลับตำแหน่ง Column ได้

ตัวอย่างการใช้ Filter

ที่ Item properties ของ control (Gallery หรือ Table) ลองใส่สูตร

Filter(IceCream, OnOrder > 0)

หมายถึง ในตาราง IceCream ให้กรองข้อมูลที่ OnOrder มีค่ามากกว่า 0

Filter ค่าจาก Gallery IceCream ที่ OnOrder มีค่ามากกว่า 0 (Gallery)
Filter ค่าจากตาราง IceCream ที่ OnOrder มีค่ามากกว่า 0 (Data Table)

ตัวอย่างการใช้ Search

ที่ Item properties ของ control (Gallery หรือ Table) ลองเปลี่ยนสูตรเป็น

Search(IceCream, "choc", Flavor)

หมายถึง ในตาราง IceCream ให้ค้นหาข้อมูลที่ Flavor มีคำว่า choc

Search ค่าจาก Gallery IceCream ที่มีคำว่า choc ในคอลัมน์ Flavor
Search ค่าจากตาราง IceCream ที่มีคำว่า choc ในคอลัมน์ Flavor

ส่วนใครที่ต้องการใช้ Search แบบที่ไม่มี Delegation Warning ให้ไปดูคลิปของ Matthew ได้ ที่นี่

ตัวอย่างการใช้ Lookup

สำหรับ Lookup จะคล้ายกับการใช้ VLOOKUP() ใน Excel คือ ถ้ามีข้อมูลที่ตรงกับเงื่อนไขหลายอันจะเลือกข้อมูลที่เจออันแรกมาแสดง

LookUp(IceCream, Quantity > 150, Quantity + OnOrder)

หมายถึง ในตาราง IceCream ให้ค้นหาข้อมูลที่ Quantity มีค่ามากกว่า 150 แล้วให้เอาค่าใน Quantity บวกกับค่าใน OnOrder

ในตารางมี Quantity มากกว่า 150 อยู่ 2 ค่า โดยค่าที่ได้ค่าแรกคือ Vanilla เมื่อนำค่าใน Quantity + OnOrder จะได้ 250

หรือถ้าเปลี่ยนสูตรเป็น

LookUp(IceCream, Flavor = "Chocolate", Quantity)

หมายถึง ในตาราง IceCream ให้ค้นหาข้อมูลที่ Flavor เท่ากับ Chocolate แล้วให้เอาค่าใน Quantity มาแสดง

หา Chocolate ในตาราง IceCream แล้วนำ Quantity มาแสดง

ตัวอย่างการนำไปใช้

1. Text Input Control กับ Search function

จากในตัวอย่างที่เราใส่สูตรลงไปใน Table หรือ Gallery ตรงๆ ด้วยคำที่ตัวอย่างให้มา เช่น

Search(IceCream, "choc", Flavor) 

ก็ให้เราเปลี่ยนตรงคำค้นหาให้ไปอ่านจากค่าใน control แทน เช่น ถ้าจะใช้ Search กับ control “Text Input” ให้ใส่สูตรไว้ที่ Tabl หรือ Gallery ว่า

Search(IceCream,txtFlavor.Text,Flavor)

2. Drop down control กับ Filter function

จากตัวอย่างของไมโครซอฟท์ที่เขียนสูตรลงไปด้วยข้อความตรงๆ เช่น

 Filter(IceCream, "chocolate" in Lower(Flavor ))

ก็ให้เราเปลี่ยนตรงคำค้นหาให้ไปอ่านจากค่าใน control แทน เช่น ถ้าจะใช้ Filter กับ control “Drop down” ให้ใส่สูตรไว้ที่ Tabl หรือ Gallery ว่า

Filter(IceCream, drpFlavor.SelectedText.Flavor = Flavor)

3. Combo box control กับ Filter function

จากตัวอย่างของไมโครซอฟท์ที่เขียนสูตรลงไปด้วยข้อความตรงๆ เช่น

 Filter(IceCream, "chocolate" in Lower(Flavor ))

ก็ให้เราเปลี่ยนตรงคำค้นหาให้ไปอ่านจากค่าใน control แทน เช่น ถ้าจะใช้ Filter กับ control “Combo box” ให้ใส่สูตรไว้ที่ Tabl หรือ Gallery ว่า

Filter(IceCream, Flavor in ComboBox1.SelectedItems.Flavor)

Video

Did You Enjoy this Article?

Subscription to get new articles sent to your inbox each week for FREE

Question?

If you have any questions or feedback about this article please leave a message in the comments section below.


Comments

Leave a comment

Subscribe to get new articles sent to your inbox each week for FREE