หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําไปใช้กับ: แอป
พื้นที่ทํางาน Copilot Studio
Desktop โฟลว์
แอป
แบบจําลอง Power Platform CLI
ฟังก์ชัน
Dataverse Power Pages
ค้นหาอย่างน้อยหนึ่ง เรกคอร์ด ใน ตาราง
ดูวิดีโอนี้เพื่อเรียนรู้วิธีการใช้ FilterSearchฟังก์ชัน , และLookUp:
หมายเหตุ
คําสั่ง PAC CLI pac power-fx ไม่รองรับ Search ฟังก์ชัน
Description
ฟังก์ชัน Filter ค้นหาระเบียนในตารางที่เป็นไปตามสูตร ใช้ Filter เพื่อค้นหาชุดของระเบียนที่ตรงกับเกณฑ์อย่างน้อยหนึ่งเกณฑ์ และละทิ้งระเบียนเหล่านั้นที่ไม่ตรงกัน
ฟังก์ชัน LookUp ค้นหาระเบียนแรกในตารางที่ตรงกับสูตร ใช้ LookUp เพื่อค้นหาระเบียนเดียวที่ตรงกับเกณฑ์อย่างน้อยหนึ่งข้อหรือมากกว่า
สำหรับทั้งสองฟังก์ชัน สูตรจะถูกคำนวณสำหรับแต่ละเรกคอร์ดของตาราง เรกคอร์ดที่ส่งผล จริง จะรวมอยู่ในผลลัพธ์ นอกเหนือจาก ตัวดำเนินการ ของสูตรปกติ คุณสามารถใช้ตัวดำเนินการ in และ exactin สำหรับสตริงย่อยที่ตรงกันได้
ฟิลด์ของเรกคอร์ดที่กำลังประมวลผลอยู่สามารถใช้งานได้ภายในสูตร ใช้ ตัวดำเนินการ ThisRecord หรือเพียงแค่อ้างอิงชื่อของฟิลด์เหมือนที่คุณทำกับค่าอื่น ตัวดำเนินการ Asยังสามารถใช้เพื่อตั้งชื่อเรกคอร์ดที่กำลังประมวลผล ซึ่งสามารถช่วยให้สูตรของคุณง่ายต่อการเข้าใจมากขึ้น และทำให้สามารถเข้าถึงเรกคอร์ดที่ซ้อนกันได้ สำหรับข้อมูลเพิ่มเติม ดูตัวอย่างด้านล่างและ การทำงานกับขอบเขตเรกคอร์ด
ฟังก์ชัน Search ค้นหาระเบียนในตารางที่มีสตริงในคอลัมน์ สตริงอาจอยู่ที่ใดก็ได้ในคอลัมน์ ตัวอย่างเช่น การค้นหา "rob" หรือ "bert" จะค้นหารายการที่ตรงกันในคอลัมน์ที่มี "Robert" การค้นหาต้องตรงตามตัวพิมพ์ใหญ่-เล็ก ซึ่งแตกต่างจาก Filter และ LookUpSearch ฟังก์ชันใช้สตริงเดียวเพื่อจับคู่แทนที่จะเป็นสูตร
Filter และ Search ส่งกลับตารางที่มีคอลัมน์เดียวกันกับตารางต้นฉบับและระเบียนที่ตรงกับเกณฑ์ LookUp แสดงเฉพาะระเบียนแรกที่พบหลังจากนําสูตรไปใช้เพื่อลดระเบียนให้เป็นค่าเดียวแล้วเท่านั้น ถ้าไม่พบระเบียน และ FilterSearchส่งกลับตารางว่าง และLookUpส่งกลับ ค่าว่าง
ตาราง คือค่าใน Power Apps เช่นเดียวกับสตริงหรือตัวเลข ซึ่งสามารถถูกส่งไปและส่งกลับจากฟังก์ชันได้ Filter, Searchและ LookUp อย่าปรับเปลี่ยนตาราง แต่ฟังก์ชันเหล่านี้จะมองตารางเป็นอาร์กิวเมนต์ และส่งกลับตาราง เรกคอร์ด หรือค่าเดียวจากตาราง ดูที่ การทำงานกับตาราง สำหรับรายละเอียดเพิ่มเติม
การมอบหมาย
เมื่อสามารถทำได้ Power Apps จะมอบสิทธิ์การดำเนินการกรองและเรียงลำดับให้กับแหล่งข้อมูลและหน้าผ่านทางผลลัพธ์ตามความต้องการ ตัวอย่างเช่น เมื่อคุณเริ่มต้นแอปที่แสดงการควบคุม แกลเลอรี ที่มีข้อมูล เฉพาะชุดเรกคอร์ดชุดแรกเท่านั้นที่จะมีการนำมายังอุปกรณ์ในตอนแรก เมื่อผู้ใช้เลื่อน จะมีการดึงข้อมูลเพิ่มเติมลงมาจากแหล่งข้อมูล เวลาในการเริ่มต้นของผลลัพธ์จะเร็วขึ้นสำหรับแอปและสามารถเข้าถึงชุดข้อมูลได้จำนวนมาก
อย่างไรก็ตาม การมอบสิทธิ์อาจไม่สามารถใช้งานได้ทุกครั้ง แหล่งข้อมูลจะแตกต่างกันไปตามฟังก์ชันและตัวดำเนินการที่รองรับการมอบสิทธิ์ หากการมอบสิทธิ์ทั้งหมดของสูตรไม่สามารถทำได้ สภาพแวดล้อมในการสร้างจะกำหนดค่าสถานะด้วยการเตือนให้กับส่วนที่ไม่สามารถมอบสิทธิ์ เมื่อสามารถทำได้ ให้ลองเปลี่ยนสูตรเพื่อหลีกเลี่ยงฟังก์ชันและตัวดำเนินการที่ไม่สามารถมอบสิทธิ์ รายการการมอบสิทธิ์ จะแสดงรายละเอียดของแหล่งข้อมูลและการดำเนินการที่สามารถมอบสิทธิ์
หากการมอบสิทธิ์ไม่สามารถทำได้ Power Apps จะดึงข้อมูลเฉพาะชุดเรกคอร์ดขนาดเล็กที่จะทำงานภายในเครื่องเท่านั้น Filter และฟังก์ชันการเรียงลําดับจะดําเนินการกับชุดระเบียนที่ลดลง การดำเนินการที่สามารถใช้ได้ใน แกลเลอรี อาจไม่ใช่ทั้งหมด ซึ่งอาจทำให้เกิดความสับสนกับผู้ใช้
ดู ภาพรวมของการมอบสิทธิ์ สำหรับข้อมูลเพิ่มเติม
ไวยากรณ์
Filter(ตาราง*, สูตร 1 [, *สูตร 2*, ... ] )
- ตาราง - จำเป็นต้องมี ตารางสำหรับค้นหา
- สูตร - จำเป็น สูตรที่คำนวณแต่ละเรกคอร์ดของตาราง ฟังก์ชันจะส่งกลับเรกคอร์ดทั้งหมดที่ส่งผล จริง คุณสามารถอ้างอิงคอลัมน์ภายในตารางได้ ถ้าคุณใส่สูตรมากกว่าหนึ่งสูตร ผลลัพธ์ของสูตรทั้งหมดจะถูกรวมด้วยฟังก์ชัน And
Search(ตาราง*, SearchString, Column1 [, *Column2*, ... ] )
- ตาราง - จำเป็นต้องมี ตารางสำหรับค้นหา
- SearchString - จำเป็น สตริงสำหรับค้นหา ถ้าเป็น ค่าว่าง หรือสตริงว่าง เรกคอร์ดทั้งหมดจะถูกส่งกลับ
- คอลัมน์ - จำเป็น ชื่อของคอลัมน์ภายใน ตาราง สำหรับค้นหา ถ้าพบ SearchString ภายในข้อมูลของคอลัมน์ใดก็ตามเป็นรายการที่ตรงกันบางส่วน เรกคอร์ดทั้งหมดจะถูกส่งกลับ
หมายเหตุ
ใน Power Apps ก่อนเวอร์ชัน 3.24042 ชื่อคอลัมน์สําหรับ Search ฟังก์ชันได้รับการระบุด้วยสตริงข้อความโดยใช้เครื่องหมายอัญประกาศคู่ และหากเชื่อมต่อกับแหล่งข้อมูล พวกเขายังจําเป็นต้องเป็นชื่อตรรกะ ตัวอย่างเช่น ชื่อตรรกะ "cr43e_name" ที่มีเครื่องหมายคำพูดคู่ถูกนำมาใช้แทนชื่อที่แสดง ชื่อ ที่ไม่มีเครื่องหมายคำพูด สำหรับแหล่งข้อมูล SharePoint และ Excel ที่มีชื่อคอลัมน์ที่มีการเว้นวรรค แต่ละช่องว่างจะถูกระบุด้วย "_x0020_" เช่น "ชื่อคอลัมน์" เป็น "Column_x0020_Name" หลังจากเวอร์ชันนี้ แอปทั้งหมดได้รับการอัปเดตโดยอัตโนมัติเป็นไวยากรณ์ใหม่ที่อธิบายไว้ในบทความนี้
LookUp(ตาราง*, สูตร [, *ReductionFormula* ] )
- ตาราง - จำเป็นต้องมี ตารางสำหรับค้นหา ใน UI จะแสดงไวยากรณ์เป็น แหล่ง เหนือกล่องฟังก์ชัน
- สูตร - จำเป็น สูตรที่คำนวณแต่ละเรกคอร์ดของตาราง ฟังก์ชันจะส่งกลับเรกคอร์ดแรกที่ส่งผล จริง คุณสามารถอ้างอิงคอลัมน์ภายในตารางได้ ใน UI จะแสดงไวยากรณ์เป็น เงื่อนไข เหนือกล่องฟังก์ชัน
- ReductionFormula - ตัวเลือก สูตรนี้จะคำนวณกับเรกคอร์ดที่พบ จากนั้นลดเรกคอร์ดจนเหลือค่าเดียว คุณสามารถอ้างอิงคอลัมน์ภายในตารางได้ ถ้าคุณไม่ใช้พารามิเตอร์นี้ ฟังก์ชันจะส่งกลับเรกคอร์ดทั้งหมดจากตาราง ใน UI จะแสดงไวยากรณ์เป็น ผลลัพธ์ เหนือกล่องฟังก์ชัน
ตัวอย่าง
ตัวอย่างต่อไปนี้ ใช้ IceCreamแหล่งข้อมูล:
| สูตร | Description | Result |
|---|---|---|
| Filter(IceCream, OnOrder > 0) | ส่งกลับเรกคอร์ดที่ OnOrder มีค่ามากกว่าศูนย์ |
|
| Filter(IceCream, Quantity + OnOrder > 225) | ส่งกลับเรกคอร์ดที่ผลรวมของคอลัมน์ ปริมาณ และ OnOrder มีค่ามากกว่า 225 |
|
| Filter(ไอศกรีม, "ช็อกโกแลต" ใน Lower(Flavor )) | ส่งกลับเรกคอร์ดที่มีคำว่า "chocolate" ปรากฏอยู่ในชื่อ Flavor โดยไม่ขึ้นอยู่กับตัวพิมพ์ใหญ่หรือเล็ก |
|
| Filter(IceCream, Quantity < 10 & OnOrder < 20) | ส่งกลับเรกคอร์ดที่ ปริมาณ มีค่าน้อยกว่า 10 และ OnOrder มีค่าน้อยกว่า 20 ไม่มีเ่รกคอร์ดที่ตรงกับเกณฑ์เหล่านี้ จึงส่งกลับเป็นตารางเปล่า |
|
| Search(ไอศกรีม, "choc", Flavor) | ส่งกลับเรกคอร์ดที่มีสตริง "choc" ปรากฏอยู่ในชื่อ Flavor โดยไม่ขึ้นอยู่กับตัวพิมพ์ใหญ่หรือเล็ก |
|
| Search(ไอศกรีม, "", รสชาติ) | เนื่องจากคำที่ใช้ค้นหาเป็นค่าว่าง จึงส่งกลับเรกคอร์ดทั้งหมด |
|
| LookUp(ไอศกรีม, รสชาติ = "ช็อกโกแลต", ปริมาณ) | ค้นหาเรกคอร์ดมี Flavor เท่ากับ "Chocolate" ซึ่งมีเพียงรายการเดียว สำหรับเรกคอร์ดแรกที่พบ ส่งกลับ ปริมาณ ของเรกคอร์ดนั้น | 100 |
| LookUp(IceCream, Quantity > 150, Quantity + OnOrder) | ค้นหาเรกคอร์ดที่มี ปริมาณ มากกว่า 150 ซึ่งมีหลายรายการ สำหรับเรกคอร์ดแรกที่พบ ซึ่งก็คือ Flavor "Vanilla" ส่งกลับผลรวมของคอลัมน์ ปริมาณ และ OnOrder | 250 |
| LookUp(IceCream, Flavor = "Pistachio", OnOrder) | ค้นหาเรกคอร์ดที่มี Flavor เท่ากับ "Pistachio" ซึ่งไม่มีอยู่เลย เนื่องจากไม่พบอะไร LookUp จึงส่งกลับ ค่าว่าง | ว่างเปล่า |
| LookUp(ไอศกรีม, รสชาติ = "วานิลลา") | ค้นหาเรกคอร์ดที่มี Flavor เท่ากับ "Vanilla" ซึ่งมีเพียงรายการเดียว เนื่องจากไม่มีสูตรการลด จึงส่งกลับทั้งเรกคอร์ด | { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 } |
การกรองด้วยคอลัมน์ตัวเลือก
ตัวอย่างต่อไปนี้ใช้ตาราง บัญชีผู้ใช้ ใน Microsoft Dataverse เป็นแหล่งข้อมูล ตัวอย่างนี้แสดงวิธีการ Filter แสดงรายการของบัญชีที่ยึดตามค่าตัวควบคุมกล่องคําสั่งผสมที่เลือก:
ทีละขั้นตอน
เปิดแอปเปล่า
เพิ่มหน้าจอใหม่โดยเลือกตัวเลือก หน้าจอใหม่
บนแท็บ แทรก เลือก แกลเลอรี แล้วเลือก แนวตั้ง
บนแท็บ คุณสมบัติ ของบานหน้าต่างด้านขวา เปิด แหล่งข้อมูล จากนั้นเลือก บัญชีผู้ใช้
(ไม่บังคับ) ในรายการ เค้าโครง เลือกตัวเลือกต่างๆ
บนแท็บ แทรก เลือก ข้อมูลป้อนเข้า แล้วเลือก กล่องคำสั่งผสม ทำซ้ำขั้นตอนเพื่อเพิ่มตัวควบคุมกล่องคำสั่งผสมอีกสองตัว
สำหรับแต่ละตัวควบคุมกล่องคำสั่งผสม บนแท็บ คุณสมบัติ ของบานหน้าต่างด้านขวา เปิด แหล่งข้อมูล จากนั้นเลือก บัญชีผู้ใช้ เลือก แก้ไข ถัดจากตัวเลือก ฟิลด์ จากนั้นเลือกค่า ข้อความหลัก และ SearchField ข้อความหลัก ควรเป็นคอลัมน์ตัวเลือกที่คุณต้องการเพิ่มลงในกล่องคำสั่งผสม ทำซ้ำขั้นตอนเพื่อเพิ่มตัวควบคุมกล่องคำสั่งผสมอื่นอีกสองตัว
คอนนี้เลือกตัวควบคุม แกลเลอรี และตั้งค่าคุณสมบัติ Items เป็นสูตรดังนี้:
Filter(Accounts, 'Industry' = ComboBox3.Selected.Industry Or IsBlank(ComboBox3.Selected.Industry), 'Relationship Type' = ComboBox2.Selected.'Relationship Type' Or IsBlank(ComboBox2.Selected.'Relationship Type'), 'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact' Or IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
Search ประสบการณ์ผู้ใช้
ตัวอย่างต่อไปนี้ ใช้ IceCreamแหล่งข้อมูล:
ในหลายแอป คุณสามารถพิมพ์อักขระอย่างน้อยหนึ่งตัวลงในกล่องค้นหาเพื่อกรองรายการของเรกคอร์ดในชุดข้อมูลขนาดใหญ่ ขณะที่คุณพิมพ์ รายการจะแสดงเฉพาะเรกคอร์ดที่ตรงกับเกณฑ์การค้นหาเท่านั้น
ตัวอย่างในส่วนที่เหลือของบทความนี้แสดงผลลัพธ์ของการค้นหารายการ ซึ่งมีชื่อว่า ลูกค้า ที่ประกอบด้วยข้อมูลนี้:
เมื่อต้องการสร้างแหล่งข้อมูลนี้เป็นคอลเลกชัน ให้สร้างตัวควบคุม ปุ่ม และตั้งค่าคุณสมบัติ OnSelect เป็นสูตรดังนี้:
ClearCollect(ลูกค้า, ตาราง({ ชื่อ: "Fred Garcia", บริษัท: "Northwind Traders" }, { ชื่อ: "Cole Miller", บริษัท: "Contoso" }, { ชื่อ: "Glenda Johnson", บริษัท: "Contoso" }, { ชื่อ: "Mike Collins", บริษัท: "Adventure Works" }, { ชื่อ: "Colleen Jones", บริษัท: "Adventure Works" }) )
เช่นเดียวกับตัวอย่างนี้ คุณสามารถแสดงรายการของเรกคอร์ดใน ตัวควบคุมแกลเลอรี ที่ด้านล่างของหน้าจอได้ ใกล้กับด้านบนของหน้าจอ คุณสามารถเพิ่มตัวควบคุม การป้อนข้อความ ที่ชื่อ SearchInput เพื่อให้ผู้ใช้สามารถระบุเรกคอร์ดที่สนใจได้
เมื่อผู้ใช้พิมพ์อักขระใน SearchInput ผลลัพธ์ในแกลเลอรีจะถูกกรองโดยอัตโนมัติ ในกรณีนี้ มีการกำหนดค่าแกลเลอรีให้แสดงเรกคอร์โที่ชื่อของลูกค้า (ไม่ใช่ชื่อของบริษัท) เริ่มต้นด้วยลำดับของอักขระใน SearchInput ถ้าผู้ใช้พิมพ์ co ในกล่องค้นหา แกลเลอรีจะแสดงผลลัพธ์เหล่านี้:
เมื่อต้องการกรองโดยยึดตามคอลัมน์ ชื่อ ให้ตั้งค่าคุณสมบัติ Items ของตัวควบคุมแกลเลอรีเป็นหนึ่งในสูตรเหล่านี้:
| สูตร | Description | Result |
|---|---|---|
| Filter(ลูกค้า, StartsWith(Name, SearchInput.Text) ) | กรองแหล่งข้อมูล ลูกค้า สำหรับเรกคอร์ดที่สตริงการค้นหาปรากฏขึ้นที่จุดเริ่มต้นของคอลัมน์ ชื่อ การทดสอบไม่ต้องตรงตามตัวอักษรพิมพ์ใหญ่-เล็ก ถ้าผู้ใช้พิมพ์ co ในกล่องค้นหา แกลเลอรีจะแสดง Colleen Jones และ Cole Miller แกลเลอรีจะไม่แสดง Mike Collins เนื่องจากคอลัมน์ Name ของเรกคอร์ดนั้นไม่ได้เริ่มต้นด้วยสตริงการค้นหา |
|
| Filter(ลูกค้า, SearchInput.Text in Name) | กรองแหล่งข้อมูล ลูกค้า สำหรับเรกคอร์ดที่สตริงการค้นหาปรากฏที่ใดก็ได้ในคอลัมน์ ชื่อ การทดสอบไม่ต้องตรงตามตัวอักษรพิมพ์ใหญ่-เล็ก ถ้าผู้ใช้พิมพ์ co ในกล่องค้นหา แกลเลอรีจะแสดง Colleen Jones,Cole Miller, และ Mike Collins เนื่องจากการค้นหา สตริงที่ปรากฏอยู่ที่ใดที่หนึ่งในคอลัมน์ ชื่อ ของเรกคอร์ดทั้งหมดเหล่านั้น |
|
| Search(ลูกค้า, SearchInput.Text, Name) | คล้ายกับการใช้ตัวดําเนินการ in ฟังก์ชันจะ Search ค้นหารายการที่ตรงกันจากทุกที่ภายในคอลัมน์ Name ของแต่ละระเบียน คุณต้องใส่ชื่อคอลัมน์ในเครื่องหมายอัญประกาศ |
|
คุณสามารถขยายการค้นหาของคุณให้รวมถึงคอลัมน์ Company และคอลัมน์ Name ได้:
| สูตร | Description | Result |
|---|---|---|
| Filter(ลูกค้า, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) | กรองแหล่งข้อมูล ลูกค้า สำหรับเรกคอร์ดที่คอลัมน์ ชื่อ หรือ บริษัท เริ่มต้นด้วยสตริงการค้นหา (ตัวอย่างเช่น co) || ตัวดำเนินการ เป็น จริง ถ้าฟังก์ชัน StartsWith ใดก็ตามเป็น จริง |
|
| Filter(Customers, SearchInput.Text in Name || SearchInput ข้อความในบริษัท) | กรองแหล่งข้อมูล ลูกค้า สำหรับเรกคอร์ดที่คอลัมน์ ชื่อ หรือ บริษัท มีสตริงการค้นหา (ตัวอย่างเช่น co) ที่ใดก็ได้ภายในนั้น |
|
| Search(ลูกค้า, SearchInput.Text, Name, Company) | คล้ายกับการใช้ตัวดําเนินการ in ฟังก์ชันจะ Search ค้นหาแหล่งข้อมูล Customers สําหรับระเบียนที่คอลัมน์ Name หรือ Company มีสตริงการค้นหา (ตัวอย่างเช่น co) ที่ใดก็ได้ภายในนั้น ฟังก์ชันSearchนี้ง่ายต่อการอ่านและเขียนมากกว่าFilterถ้าคุณต้องการระบุหลายคอลัมน์และหลายตัวดําเนินการใน |
|