Fungsi Filter, Pencarian, dan Pencarian

Berlaku untuk: Aplikasi kanvas Alur desktop Aplikasi Power Platform berbasis model CLI

Menemukan satu atau beberapa rekaman dalam tabel.

Tonton video ini untuk mempelajari cara menggunakan fungsi Filter, ** Pencarian, dan Pencarian :

Catatan

Perintah PAC CLI pac power-fx tidak mendukung fungsi Pencarian .

Description

Fungsi Filter mencari catatan dalam tabel yang memuaskan formula yang Anda jelaskan. Gunakan Filter untuk menemukan sekumpulan rekaman yang cocok dengan satu atau beberapa kriteria dan buang rekaman yang tidak.

Fungsi LookUp menemukan rekaman pertama dalam tabel yang memenuhi rumus. Gunakan LookUp untuk menemukan rekaman tunggal yang cocok dengan satu atau beberapa kriteria.

Untuk keduanya, rumus dievaluasi untuk setiap rekaman tabel. Rekaman yang menghasilkan true disertakan dalam hasil. Selain operator rumus normal, Anda dapat menggunakan operator in dan exactin untuk kecocokan substring.

Bidang rekaman yang sedang diproses tersedia dalam formula. Menggunakan operator ThisRecord atau hanya bidang referensi berdasarkan nama seperti nilai lainnya. Operator As juga dapat digunakan untuk menamai rekaman yang sedang diproses yang dapat membantu membuat formula lebih mudah dipahami dan membuat rekaman bersarang dapat diakses. Untuk informasi selengkapnya, lihat contoh di bawah ini dan menggunakan cakupan rekaman.

Fungsi Search menemukan rekaman dalam tabel yang berisi string di salah satu kolomnya. String mungkin terjadi di mana saja di dalam kolom; misalnya, menelusuri "rob" atau "bert" akan menemukan kecocokan di kolom yang berisi "Robert". Pencarian tidak peka terhadap huruf besar-kecil. Tidak seperti Filter dan LookUp, fungsi Search menggunakan string tunggal untuk mencocokkan, bukan rumus.

Filter dan Search menghasilkan tabel yang berisi kolom yang sama dengan tabel asli dan rekaman yang sesuai dengan kriteria. LookUp hanya menghasilkan rekaman pertama yang ditemukan, setelah menerapkan rumus untuk mengurangi rekaman ke satu nilai. Jika tidak ditemukan rekaman, Filter dan Search menampilkan tabel kosong, dan LookUp menampilkan blank.

Tabel adalah nilai dalam Power Apps, seperti string atau angka. Dapat diteruskan ke dan dikembalikan dari fungsi. Filter, Search, dan LookUp tidak memodifikasi tabel. Sebaliknya, fungsi tersebut mengambil tabel sebagai argumen dan menghasilkan tabel, rekaman, atau satu nilai darinya. Lihat: bekerja dengan tabel untuk detail lebih lanjut.

Delegasi

Jika memungkinkan, Power Apps akan mendelegasikan operasi filter dan pengurutan ke sumber data dan halaman melalui hasil sesuai permintaan. Contohnya, saat Anda memulai aplikasi yang menampilkan kontrol Galeri yang berisi data, hanya set rekaman pertama yang dibawa ke perangkat pada awalnya. Ketika pengguna menggulir, data tambahan dihadirkan dari sumber data. Ini mempercepat waktu mulai untuk aplikasi dan memungkinkan akses ke himpunan data yang sangat besar.

Namun, delegasi mungkin tidak selalu dapat dilakukan. Sumber data bervariasi dalam hal fungsi dan operator yang didukung dengan delegasi. Jika delegasi lengkap atas sebuah formula tidak tersedia, lingkungan penulis akan memberi tanda berupa peringatan pada porsi yang tidak dapat didelegasikan. Jika memungkinkan, sebaiknya ubah formula untuk menghindari fungsi dan operator yang tidak dapat didelegasikan. Detail daftar delegasi dengan sumber data dan operasi yang dapat didelegasikan.

Jika delegasi tidak memungkinkan, Power Apps hanya akan menarik kumpulan kecil data untuk dikerjakan secara lokal. Fungsi filter dan urutkan akan dioperasikan dalam kumpulan rekaman yang lebih sedikit. Hal yang tersedia di Galeri mungkin bukan merupakan gambaran utuhnya, dan dapat membingungkan bagi pengguna.

Lihat ikhtisar delegasi untuk informasi selengkapnya.

Sintaks

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

  • Table – Wajib. Table yang akan dicari.
  • Formula - Wajib. Rumus yang di dalamnya setiap rekaman tabel dievaluasi. Fungsi menghasilkan semua rekaman yang menghasilkan true. Anda dapat merujuk kolom dalam tabel. Jika Anda menyediakan lebih dari satu rumus, hasil dari semua rumus dikombinasikan dengan fungsi And.

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

  • Table – Wajib. Table yang akan dicari.
  • SearchString - Wajib. String yang akan dicari. Jika kosong atau string kosong, semua rekaman akan dihasilkan.
  • Column - Wajib. Nama kolom dalam Tabel yang akan dicari. Jika SearchString ditemukan dalam data dari salah satu kolom ini sebagai pencocokan parsial, rekaman lengkap akan dihasilkan.

Catatan

Sebelum Power Apps versi 3.24042, nama kolom untuk fungsi Pencarian ditentukan dengan string teks menggunakan tanda kutip ganda, dan jika terhubung ke sumber data mereka juga harus nama logis. Misalnya, nama logis"cr43e_name" dengan tanda kutip ganda digunakan sebagai pengganti nama tampilan Nama tanpa tanda kutip. Untuk SharePoint dan sumber data Excel yang berisi nama kolom dengan spasi, setiap spasi ditentukan dengan "_x0020_", misalnya "Nama Kolom"sebagai"Column_x0020_Name". Setelah versi ini, semua aplikasi secara otomatis diperbarui ke sintaks baru yang dijelaskan dalam artikel ini.

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

  • Table – Wajib. Table yang akan dicari. Di UI, sintaks ditampilkan sebagai sumber di atas kotak fungsi.
  • Formula – Wajib. Rumus yang di dalamnya setiap rekaman tabel dievaluasi. Fungsi ini menghasilkan rekaman pertama yang menghasilkan true. Anda dapat merujuk kolom dalam tabel. Di UI, sintaks ditampilkan sebagai kondisi di atas kotak fungsi.
  • ReductionFormula - Opsional. Rumus ini dievaluasi melalui rekaman yang ditemukan, lalu mengurangi rekaman ke satu nilai. Anda dapat merujuk kolom dalam tabel. Jika Anda tidak menggunakan parameter ini, fungsi akan menampilkan rekaman lengkap dari tabel. Di UI, sintaks ditampilkan sebagai hasil di atas kotak fungsi.

Contoh

Contoh berikut menggunakan IceCreamsumber data:

Es krim sumber data.

Rumus Description Hasil
Filter( IceCream, OnOrder > 0 ) Menghasilkan rekaman dengan OnOrder lebih besar dari nol. Filter Sesuai pesanan.
Filter( IceCream, Quantity + OnOrder > 225 ) Menampilkan rekaman dengan jumlah kolom Quantity dan OnOrder lebih besar dari 225. Filter jumlah dan pesanan.
Filter( IceCream, "chocolate" in Lower( Flavor ) ) Menghasilkan rekaman dengan kata "chocolate" muncul dalam nama Flavor, tidak independen dengan huruf besar atau kecil. Filter lebih rendah.
Filter (Es Krim, Kuantitas < 10 &; OnOrder < 20) Menghasilkan rekaman dengan Quantity kurang dari 10 dan OnOrder kurang dari 20. Tidak ada rekaman yang sesuai dengan kriteria ini, sehingga tabel kosong akan dihasilkan. Filter kuantitas.
Cari (IceCream, "choc", Flavor) Menghasilkan rekaman dengan kata "choc" string muncul dalam nama Flavor, tidak independen dengan huruf besar atau kecil. Cari item.
Cari (IceCream, "", Rasa) Karena istilah pencarian kosong, semua rekaman akan dihasilkan. Cari semua item.
LookUp( IceCream, Flavor = "Chocolate", Quantity ) Mencari catatan dengan Rasa sama dengan "Cokelat", yang ada satu. Untuk rekaman pertama yang ditemukan, menghasilkan Quantity rekaman tersebut. 100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Mencari rekaman dengan Quantity lebih dari 150, di antaranya ada beberapa. Untuk rekaman pertama yang ditemukan, yakni Flavor "Vanilla", menghasilkan total kolom Quantity dan OnOrder. 250
LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Mencari rekaman dengan Flavor sama dengan "Pistachio", yang tidak ada. Karena tidak ada yang ditemukan, Pencarian mengembalikan kosong. kosong
LookUp( IceCream, Flavor = "Vanilla" ) Mencari rekaman dengan Flavor sama dengan "Vanilla", yang ada satu. Karena tidak ada rumus pengurangan yang disediakan, seluruh rekaman dihasilkan. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Memfilter dengan kolom pilihan

Contoh berikut menggunakan tabel Akun di Microsoft Dataverse sebagai sumber data. Contoh ini menunjukkan cara Memfilter daftar akun berdasarkan nilai kontrol kotak Kombo yang dipilih:

Langkah demi langkah

  1. Buka aplikasi kosong.

  2. Tambah layar baru dengan memilih pilihan Layar Baru.

  3. Pada tab Sisipkan, pilih Galeri, lalu pilih Vertikal.

  4. Pada tab Properti di panel kanan, buka sumber data, lalu pilih Akun.

  5. (Opsional) Dalam daftar Tata Letak, pilih pilihan lain.

  6. Pada tab Sisipkan, pilih Input, lalu pilih Kotak kombo. Ulangi langkah untuk menambahkan dua kontrol kotak kombo lainnya.

  7. Untuk setiap kontrol kotak kombo, pada tab Properti di panel kanan, buka sumber data, lalu pilih Akun. Pilih Edit di sebelah Pilihan Bidang, lalu pilih teks Utama dan nilai SearchField. Teks Utama harus merupakan kolom pilihan yang ingin Anda tambahkan ke kotak kombo. Ulangi langkah untuk dua kontrol kotak kombo lainnya.

    Mengatur nilai kotak kombo.

  8. Sekarang pilih kontrol Galeri dan atur properti Item ke rumus 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'))
    

    Akun sumber data.

Mencari pengalaman pengguna

Contoh berikut menggunakan IceCreamsumber data:

Di banyak aplikasi, Anda dapat mengetik satu atau beberapa karakter ke dalam kotak pencarian untuk memfilter daftar rekaman di himpunan data besar. Saat Anda mengetik, daftar hanya menampilkan rekaman yang sesuai dengan kriteria pencarian.

Contoh di sisa artikel ini menunjukkan hasil pencarian daftar, bernama Pelanggan, yang berisi data ini:

Cari pelanggan.

Untuk membuat sumber data ini sebagai kumpulan, buat kontrol Tombol dan atur properti OnSelect ke rumus ini:

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

Seperti dalam contoh ini, Anda dapat menampilkan daftar rekaman dalam Kontrol galeri di bagian bawah layar. Di dekat bagian atas layar, Anda dapat menambahkan kontrol Input teks, bernama SearchInput, sehingga pengguna dapat menentukan rekaman yang menarik bagi mereka.

Cari menggunakan input pencarian.

Saat pengguna mengetik karakter dalam SearchInput, hasil di galeri secara otomatis difilter. Dalam kasus ini, galeri dikonfigurasi untuk menampilkan rekaman dengan nama pelanggan (bukan nama perusahaan) dimulai dengan urutan karakter di SearchInput. Jika pengguna mengetik co di kotak pencarian, galeri menampilkan hasil ini:

Cari dengan dimulai dengan.

Untuk memfilter berdasarkan kolom Nama, atur properti Item kontrol galeri ke salah satu rumus berikut:

Rumus KETERANGAN Hasil
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filter sumber data Pelanggan untuk rekaman yang menampilkan string pencarian yang muncul di awal kolom Nama. Pengujian tidak peka terhadap huruf besar-kecil. Jika pengguna mengetik co di kotak pencarian, galeri menunjukkan Colleen Jones dan Cole Miller. Galeri tidak menampilkan Mike Collins karena kolom Nama untuk rekaman tersebut tidak dimulai dengan string pencarian. Filter dengan mulai dengan.
Filter( Customers, SearchInput.Text in Name ) Filter sumber data Pelanggan untuk rekaman yang menampilkan string pencarian yang muncul di mana saja di kolom Nama. Pengujian tidak peka terhadap huruf besar-kecil. Jika pengguna mengetik co di kotak pencarian, galeri menampilkan Colleen Jones,Cole Miller, dan Mike Collins karena string pencarian muncul di suatu tempat di kolom Nama dari semua rekaman tersebut. Filter dengan input pencarian.
Pencarian (Pelanggan, SearchInput.Text, Nama) Mirip dengan menggunakan operator in, fungsi Search mencari kecocokan di mana saja dalam kolom Nama pada setiap rekaman. Anda harus melampirkan nama kolom dalam tanda kutip ganda. Cari pelanggan.

Anda dapat memperluas pencarian untuk mencakup kolom Perusahaan dan kolom Nama:

Rumus KETERANGAN Hasil
Filter( Pelanggan, StartsWith( Nama, SearchInput.Text ) || StartsWith( Perusahaan, SearchInput.Text ) ) Filter sumber data Pelanggan untuk rekaman dengan kolom Nama atau kolom Perusahaan dimulai dengan string pencarian (misalnya, co). Operator || bernilai true jika fungsi StartsWith bernilai true. Filter pelanggan mulai dengan.
Filter( Pelanggan, SearchInput.Text in Nama || SearchInput.Text in Perusahaan ) Filter sumber data Pelanggan untuk rekaman dengan kolom Nama atau kolom Perusahaan berisi string pencarian (misalnya, co) di mana saja di dalamnya. Filter input pencarian pelanggan.
Pencarian (Pelanggan, SearchInput.Text, Nama, Perusahaan) Sama seprti menggunakan operator in, fungsi Search mencari sumber data Pelanggan untuk rekaman dengan kolom Nama atau kolom Perusahaan berisi string pencarian (misalnya, co) di mana saja di dalamnya. Fungsi Search lebih mudah dibaca dan ditulis daripada Filter, jika Anda ingin menentukan beberapa kolom dan beberapa operator in.  Cari pelanggan dengan input pencarian.