Kongsi melalui


Fungsi penapis, Carian dan Carian

Digunakan untuk: Aplikasi kanvas Desktop mengalir aplikasi Power Platform berpandukan model CLI

Mencari satu atau lebih rekod dalam jadual.

Tonton video ini untuk mengetahui cara menggunakan fungsi Penapis, ** Carian dan Carian :

Nota

PAC CLI pac power-fx commands tidak menyokong fungsi Carian .

Description

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

Fungsi LookUp mencari rekod pertama dalam jadual yang memenuhi formula. Gunakan Carian untuk mencari rekod tunggal 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 Search mencari rekod dalam jadual yang mengandungi rentetan dalam salah satu daripada lajurnya. Rentetan mungkin berlaku di mana-mana sahaja dalam lajur; sebagai contoh, mencari "rob" atau "bert" akan mencari padanan dalam lajur yang mengandungi "Robert". Mencari adalah sensitif huruf. Tidak seperti Filter dan LookUp, fungsi Search menggunakan rentetan tunggal untuk dipadankan bukan formula.

Tapis dan Carian mengembalikan jadual yang mengandungi lajur yang sama dengan jadual asal dan rekod yang sepadan dengan kriteria. Carian hanya mengembalikan rekod pertama yang ditemui setelah menggunakan formula untuk mengurangkan rekod menjadi satu nilai. Jika tiada rekod ditemui, Filter dan Search mengembalikan jadual kosong dan LookUp akan mengembalikan kosong.

Jadual adalah nilai dalam Power Apps sama seperti rentetan atau nombor. Mereka boleh diluluskan dan dikembalikan daripada fungsi. Tapis, Carian dan Carian tidak mengubah 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. Fungsi tapis dan isih akan digunakan pada kumpulan rekod yang lebih sedikit. Rekod yang tersedia dalam Galeri mungkin tidak mewakili gambaran yang lengkap dan ini mungkin mengelirukan pengguna.

Rujuk ikhtisar penugasan untuk mendapatkan maklumat lanjut.

Sintaks

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

  • Table - 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.

Carian(Jadual*, SearchString, Lajur1 [, *Lajur2*, ... ] )

  • Table - 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

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

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

  • Table - 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:

Ais krim sumber data.

Formula Description Keputusan
Tapis( Ais Krim, OnOrder > 0 ) Mengembalikan rekod yang mana OnOrder adalah lebih besar daripada sifar. Tapis Mengikut pesanan.
Tapis(Ais Krim, Kuantiti + OnOrder > 225 ) Mengembalikan rekod yang mana jumlah lajur Kuantiti dan OnOrder adalah lebih besar daripada 225. Tapis kuantiti dan pesanan.
Tapis( Ais Krim, "coklat" Lebih Rendah( Perisa ) ) Mengembalikan rekod yang mana perkataan "coklat" akan muncul dalam nama Perisa, bebas daripada huruf besar atau huruf kecil. Penapis di bahagian bawah.
Penapis (IceCream, Kuantiti < 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. Penapis pada kuantiti.
Cari (IceCream, "choc", Flavor) Mengembalikan rekod yang mana rentetan "coklat" akan muncul dalam nama Perisa, bebas daripada huruf besar atau huruf kecil. Cari item.
Cari (IceCream, "", rasa) Oleh sebab istilah carian adalah kosong, semua rekod dikembalikan. Cari semua item.
Carian( Ais Krim, Perisa = "Coklat", Kuantiti ) Mencari rekod dengan Rasa sama dengan "Coklat", yang mana ada satu. Untuk rekod pertama yang ditemui akan mengembalikan Kuantiti rekod tersebut. 100
Carian( Ais Krim, Kuantiti > 150, Kuantiti + OnOrder ) Carian rekod dengan Kuantiti adalah lebih besar daripada 150 yang mana terdapat berbilang. Untuk rekod pertama yang ditemui iaitu Perisa "Vanila", akan mengembalikan jumlah lajur Kuantiti dan OnOrder. 250
Carian( Ais Krim, Perisa = "Pistasio", OnOrder ) Mencari rekod dengan Perisa sama dengan "Pistasio" yang mana tidak terdapat. Oleh sebab tiada ditemukan, Carian mengembalikan kosong. kosong
Carian( Ais Krim, Perisa = "Vanila" ) Mencari rekod dengan Rasa sama dengan "Vanilla", yang mana ada satu. Oleh sebab tidak ada formula pengurangan yang dibekalkan, keseluruhan rekod dikembalikan. { Perisa: "Vanila", Kuantiti: 200, OnOrder: 75 }

Penapisan dengan lajur pilihan

Contoh berikut menggunakan jadual Akaun dalam Microsoft Dataverse sebagai sumber data. Contoh ini menunjukkan cara Tapis senarai 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.

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

    Akaun sumber data.

Carian 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 artikel ini yang lain menunjukkan hasil carian senarai, bernama Pelanggan, yang mengandungi data ini:

Cari pada pelanggan.

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

ClearCollect(Pelanggan, Jadual({ Nama: "Fred Garcia", Syarikat: "Northwind Traders" }, { Nama: "Cole Miller", Syarikat: "Contoso" }, { Nama: "Glenda Johnson", Syarikat: "Contoso" }, { Nama: "Mike Collins", Syarikat: "Adventure Works" }, { Nama: "Colleen Jones", Syarikat: "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.

Cari 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:

Cari dengan bermula.

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

Formula Penerangan Hasil
Filter( Customers, StartsWith( 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. Penapis dengan permulaan.
Filter( Customers, SearchInput.Text in Name ) 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. Tapis dengan input carian.
Carian(Pelanggan, SearchInput.Text, Nama) Sama seperti menggunakan operator dalam, fungsi Carian mencari padanan di mana-mana sahaja dalam lajur Nama bagi setiap rekod. Anda mesti melampirkan nama lajur dalam tanda petikan berganda. Cari pelanggan.

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

Formula Penerangan Hasil
Penapis(Pelanggan, StartsWith(Nama, SearchInput.Text) || StartsWith(Syarikat, 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. Tapis pelanggan bermula dengan.
Penapis(Pelanggan, SearchInput.Text dalam Nama || SearchInput. Text dalam Syarikat) 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. Tapis input carian pelanggan.
Carian(Pelanggan, SearchInput.Text, Nama, Syarikat) Sama seperti menggunakan operator dalam, fungsi Search mencari sumber data Pelanggan untuk rekod yang sama ada lajur Nama atau lajur Syarikat mengandungi rentetan carian (contohnya, co) di mana-mana di dalamnya. Fungsi Search mudah dibaca dan ditulis berbanding Filter jika anda mahu menentukan berbilang lajur dan berbilang operator dalam.  Cari pelanggan dengan input carian.