Filter, Search, dan LookUp fungsi

Terpakai kepada: Apl kanvas Aliran Desktop Copilot Studio Apl dipacu model Power Platform CLI Fungsi Dataverse Halaman Kuasa

Mencari satu atau lebih rekod dalam jadual.

Tonton video ini untuk mengetahui cara menggunakan Filter, Searchdan LookUp fungsi:

Nota

Arahan PAC CLI pac power-fx tidak menyokong fungsi tersebut Search .

Perihalan

Fungsi ini Filter mencari rekod dalam jadual yang memenuhi formula. Gunakan Filter untuk mencari set rekod yang sepadan dengan satu atau lebih kriteria dan buang rekod yang tidak.

Fungsi ini LookUp mencari rekod pertama dalam jadual yang memenuhi formula. Gunakan LookUp untuk mencari satu rekod yang sepadan dengan satu atau lebih kriteria.

Untuk kedua-duanya, formula dinilai bagi setiap rekod jadual. Rekod yang menghasilkan benar adalah termasuk dalam hasil. Selain daripada formula biasa pengendali, anda boleh menggunakan dalam dan pengendali exactin untuk subrentetan yang sepadan.

Medan rekod yang sedang diproses tersedia dalam formula. Gunakan operator ThisRecord atau rujuk sahaja medan mengikut nama seperti yang akan anda lakukan bagi mana-mana nilai yang lain. Operator As juga boleh digunakan untuk menamakan rekod yang diproses, yang dapat membantu menjadikan formula anda lebih mudah untuk difahami dan supaya rekod bersarang dapat diakses. Untuk mendapatkan maklumat lanjut, lihat contoh di bawah dan menggunakan skop rekod.

Fungsi ini Search mencari rekod dalam jadual yang mengandungi rentetan dalam salah satu lajurnya. Rentetan mungkin berlaku di mana-mana sahaja dalam lajur; contohnya, mencari "rob" atau "bert" akan mencari padanan dalam lajur yang mengandungi "Robert". Mencari adalah sensitif huruf. Tidak seperti Filter dan LookUp, fungsi ini Search menggunakan rentetan tunggal untuk dipadankan dan bukannya formula.

Filter dan Search mengembalikan jadual yang mengandungi lajur yang sama seperti jadual asal dan rekod yang sepadan dengan kriteria. LookUp mengembalikan hanya rekod pertama yang ditemui, selepas menggunakan formula untuk mengurangkan rekod kepada satu nilai. Jika tiada rekod ditemui, Filter dan Search kembalikan jadual kosong , dan LookUp mengembalikan kosong.

Jadual ialah nilai dalam Power Apps, sama seperti rentetan atau nombor. Mereka boleh diluluskan dan dikembalikan daripada fungsi. Filter, Search, dan LookUp jangan ubah suai jadual. Sebaliknya, mereka mengambil jadual sebagai argumen dan mengembalikan jadual, rekod atau nilai tunggal daripadanya. Lihat bekerja dengan jadual untuk butiran lanjut.

Perwakilan

Apabila mungkin, Power Apps akan menugaskan operasi tapis dan isih kepada sumber data serta halaman melalui hasil yang diminta. Misalnya, apabila anda memulakan aplikasi yang menunjukkan kawalan Galeri yang diisi dengan data, kumpulan rekod yang pertama sahaja akan dipaparkan pada peranti pada awalnya. Sambil pengguna menatal, data tambahan dibawa turun daripada sumber data. Ini membolehkan aplikasi bermula dengan pantas dan set data yang sangat besar dapat dicapai.

Walau bagaimanapun, penugasan tidak selalunya dapat dilaksanakan. Sumber data berbeza mengikut fungsi dan operator yang disokong dengan penugasan. Jika penugasan formula yang lengkap tidak dapat dilaksanakan, persekitaran pengarangan akan membenderakan bahagian yang tidak dapat ditugaskan dengan amaran. Apabila mungkin, pertimbangkan untuk mengubah formula demi mengelak fungsi dan operator yang tidak dapat ditugaskan. Senarai penugasan memperincikan sumber data dan operasi yang boleh ditugaskan.

Jika penugasan tidak dapat dilaksanakan, Power Apps akan membawa turun kumpulan rekod yang kecil untuk diusahakan secara setempat. Filter dan fungsi isihan akan beroperasi pada set rekod yang dikurangkan. Rekod yang tersedia dalam Galeri mungkin tidak mewakili gambaran yang lengkap dan ini mungkin mengelirukan pengguna.

Rujuk ikhtisar penugasan untuk mendapatkan maklumat lanjut.

Syntax

Filter(Jadual*, Formula1 [, *Formula2*, ... ] )

  • Jadual - Diperlukan. Jadual untuk carian.
  • Formula - Diperlukan. Formula yang mana setiap rekod jadual dinilai. Fungsi akan mengembalikan semua rekod yang menghasilkan benar. Anda boleh merujuk lajur dalam jadual. Jika anda membekalkan lebih daripada satu formula, hasil semua formula digabungkan dengan fungsi And.

Search(Jadual*, SearchString, Column1 [, *Column2*, ... ] )

  • Jadual - Diperlukan. Jadual untuk carian.
  • SearchString - Diperlukan. Rentetan untuk carian. Jika kosong atau rentetan kosong, semua rekod dikembalikan.
  • Lajur- Diperlukan. Nama lajur dalam Jadual untuk carian. Jika SearchString didapati dalam data mana-mana lajur ini sebagai padanan separa, rekod yang penuh akan dikembalikan.

Nota

Dalam Power Apps sebelum versi 3.24042, nama lajur untuk fungsi ditentukan Search dengan rentetan teks menggunakan petikan berganda dan jika disambungkan ke sumber data, ia juga perlu menjadi nama logik. Sebagai contoh, nama "cr43e_name" logik dengan petikan berganda digunakan dan bukannya nama paparan Nama tanpa petikan. Untuk sumber data SharePoint dan Excel yang mengandungi nama lajur dengan ruang, setiap ruang ditentukan dengan "_x0020_", contohnya "Column Name" sebagai "Column_x0020_Name". Selepas versi ini, semua app dikemas kini secara automatik kepada sintaks baharu yang diterangkan dalam artikel ini.

LookUp(Jadual*, Formula [, *FormulaPengurangan* ] )

  • Jadual - Diperlukan. Jadual untuk carian. Dalam UI, sintaks ditunjukkan sebagai sumber di atas kotak fungsi.
  • Formula - Diperlukan. Formula yang mana setiap rekod jadual dinilai. Fungsi akan mengembalikan rekod pertama yang menghasilkan benar. Anda boleh merujuk lajur dalam jadual. Dalam UI, sintaks ditunjukkan sebagai syarat di atas kotak fungsi.
  • ReductionFormula - Pilihan. Formula ini dinilai berdasarkan pada rekod yang ditemui dan kemudian mengurangkan rekod menjadi nilai tunggal. Anda boleh merujuk lajur dalam jadual. Jika anda tidak menggunakan parameter ini, fungsi akan mengembalikan rekod penuh dari jadual. Dalam UI, sintaks ditunjukkan sebagai hasil di atas kotak fungsi.

Contoh

Contoh berikut menggunakan IceCreamsumber data:

Sumber data ais krim.

Formula Perihalan Keputusan
Filter(IceCream, OnOrder > 0) Mengembalikan rekod yang mana OnOrder adalah lebih besar daripada sifar. Filter Atas pesanan.
Filter(IceCream, Quantity + OnOrder > 225) Mengembalikan rekod yang mana jumlah lajur Kuantiti dan OnOrder adalah lebih besar daripada 225. Filter kuantiti dan pesanan.
Filter(IceCream, "chocolate" in Lower(Flavor )) Mengembalikan rekod di mana perkataan "chocolate" muncul dalam nama Perisa , bebas daripada huruf besar atau huruf kecil. Filter di bawah.
Filter(IceCream, Quantity < 10 && OnOrder < 20) Mengembalikan rekod yang mana Kuantiti adalah kurang daripada 10 dan OnOrder adalah kurang daripada 20. Tidak ada rekod yang sepadam dengan kriteria ini, makan jadual kosong adalah dikembalikan. Filter pada kuantiti.
Search(IceCream, "choc", Flavor) Mengembalikan rekod di mana rentetan "choc" muncul dalam nama Perisa , bebas daripada huruf besar atau huruf kecil. Search Item.
Search(IceCream, "", Flavor) Oleh sebab istilah carian adalah kosong, semua rekod dikembalikan. Search semua item.
LookUp(IceCream, Flavor = "Chocolate", Quantity) Mencari rekod dengan Rasa sama dengan "Chocolate", yang mana terdapat satu. Untuk rekod pertama yang ditemui akan mengembalikan Kuantiti rekod tersebut. 100
LookUp(IceCream, Quantity > 150, Quantity + OnOrder) Carian rekod dengan Kuantiti adalah lebih besar daripada 150 yang mana terdapat berbilang. Untuk rekod pertama yang ditemui, iaitu "Vanilla" Perisa, mengembalikan jumlah lajur Kuantiti dan OnOrder . 250
LookUp(IceCream, Flavor = "Pistachio", OnOrder) Mencari rekod dengan Rasa sama dengan "Pistachio", yang tidak ada. Oleh sebab tiada ditemukan, Carian mengembalikan kosong. Kosong
LookUp(IceCream, Flavor = "Vanilla") Mencari rekod dengan Rasa sama dengan "Vanilla", yang mana terdapat satu. Oleh sebab tidak ada formula pengurangan yang dibekalkan, keseluruhan rekod dikembalikan. { Perisa: "Vanilla", Kuantiti: 200, Pesanan: 75 }

Penapisan dengan lajur pilihan

Contoh berikut menggunakan jadual Akaun dalam Microsoft Dataverse sebagai sumber data. Contoh ini menunjukkan cara menyenaraikan Filter akaun berdasarkan nilai kawalan Kotak kombo yang dipilih:

Langkah demi langkah

  1. Buka aplikasi kosong.

  2. Tambah skrin baharu dengan memilih pilihan Skrin Baharu.

  3. Pada tab Sisipkan, pilih Galeri dan kemudian pilih Menegak.

  4. Pada tab Sifat di anak tetingkap sebelah kanan, buka Sumber Data dan kemudian pilih Akaun.

  5. (Pilihan) Dalam senarai Tataletak, pilih pilihan yang lain.

  6. Pada tab Sisipkan, pilih Input dan kemudian pilih Kotak Kombo. Ulangi langkah untuk menambah dua lagi kawalan kotak Kombo.

  7. Untuk setiap kawalan kotak Kombo, pada tab Sifat di anak tetingkap sebelah kanan, buka Sumber Data dan kemudian pilih Akaun. Pilih Edit bersebelahan dengan pilihan Medan dan kemudian pilih nilai Teks utama dan SearchField. Teks utama sepatutnya lajur pilihan yang ingin anda tambah kepada kotak Kombo. Ulangi langkah untuk menambah kawalan kotak Kombo yang lain.

    Menetapkan nilai kotak kombo.

  8. Sekarang pilih kawalan Galeri dan tetapkan sifat Item kepada formula berikut:

    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'))
    

    Sumber data akaun.

Search Pengalaman Pengguna

Contoh berikut menggunakan IceCreamsumber data:

Dalam banyak aplikasi, anda boleh menaip satu atau lebih karakter ke dalam kotak carian untuk menapis senarai rekod dalam set data yang besar. Apabila anda menaip, senarai menunjukkan hanya rekod yang sepadan dengan kriteria carian.

Contoh dalam baki artikel ini menunjukkan hasil carian senarai, dinamakan Pelanggan, yang mengandungi data ini:

Search pada pelanggan.

Untuk mencipta sumber data ini sebagai pengumpulan, cipta kawalan Butang dan tetapkan sifat OnSelect ke formula ini:

ClearCollect(Customers, Table({ Name: "Fred Garcia", Company: "Northwind Traders" }, { Name: "Cole Miller", Company: "Contoso" }, { Name: "Glenda Johnson", Company: "Contoso" }, { Name: "Mike Collins", Company: "Adventure Works" }, { Name: "Colleen Jones", Company: "Adventure Works" }) )

Seperti dalam contoh ini, anda boleh menunjukkan senarai rekod dalam Kawalan galeri di bawah skrin. Berhampiran atas skrin, anda boleh tambah kawalan Input teksl, bernama SearchInput, supaya pengguna boleh menentukan rekod yang berkepentingan.

Search menggunakan input carian.

Apabila pengguna menaip karakter dalam SearchInput, hasil dalam galeri ditapis secara automatik. Dalam kes ini, galeri dikonfigurasi untuk menunjukkan rekod dengan nama pelanggan (bukan nama syarikat) bermula dengan jujukan aksara dalam SearchInput. Jika pengguna menaip co dalam kotak carian, galeri menunjukkan hasil ini:

Search dengan bermula dengan.

Untuk menapis berasaskan pada lajur Nama, tetapkan sifat kawalan galeri Item ke salah satu formula ini:

Formula Perihalan Keputusan
Filter(Pelanggan, BeginsWith(Name, SearchInput.Text) ) Tapis sumber data pelanggan untuk rekod yang rentetan carian dipaparkan pada permulaan lajur Nama. Ujian adalah sensitif huruf. Jika pengguna menaip co dalam kotak carian, galeri menunjukkan Colleen Jones dan Cole Miller. Galeri tidak menunjukkan Mike Collins kerana lajur Nama column untuk rekod itu tidak bermula dengan rentetan carian. Filter dengan bermula dengan.
Filter(pelanggan, SearchInput.Text dalam nama) Tapis sumber data Pelanggan untuk rekod yang rentetan carian dipaparkan di mana-mana dalam lajur Nama. Ujian adalah sensitif huruf. Jika penggunakan menaip co dalam kotak carian, galeri menunjukkan Colleen Jones,Cole Miller, dan Mike Collins kerana rentetan carian muncul di suatu tempat dalam lajur Nama semua rekod tersebut. Filter dengan input carian.
Search(Pelanggan, SearchInput.Text, Nama) Sama seperti menggunakan pengendali dalam , fungsi mencari Search padanan di mana-mana sahaja dalam lajur Nama setiap rekod. Anda mesti melampirkan nama lajur dalam tanda petikan berganda. Search Pelanggan.

Anda boleh mengembangkan carian anda untuk menyertakan lajur Syarikat dan lajur Nama:

Formula Perihalan Keputusan
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Menapis sumber data Pelanggan untuk rekod yang sama ada lajur Nama atau lajur Syarikat bermula dengan rentetan carian (contohnya, co). || operator adalah benar jika sama ada fungsi StartsWith adalah benar. Filter pelanggan bermula dengan.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) Tapis sumber data Pelanggan untuk rekod yang sama ada lajur Nama atau lajur Syarikat mengandungi rentetan carian (contohnya, co) di mana-mana sahaja di dalamnya. Filter pelanggan mencari input.
Search(Customers, SearchInput.Text, Name, Company) Sama seperti menggunakan pengendali dalam , fungsi mencari Search sumber data Pelanggan untuk rekod di mana sama ada lajur Nama atau lajur Syarikat mengandungi rentetan carian (contohnya, co) di mana-mana sahaja di dalamnya. Fungsi ini Search lebih mudah dibaca dan ditulis daripada Filter jika anda ingin menentukan berbilang lajur dan berbilang dalam pengendali. Search pelanggan dengan input carian.