Partajați prin


Filter, Searchși LookUp funcții

Se aplică la: Aplicații pânză Copilot Studio Desktop fluxuri model aplicații bazate pe modele Power Platform ClI Dataverse funcții Power Pages

Găsește una sau mai multe înregistrări într-un tabel.

Urmăriți acest videoclip pentru a afla cum să utilizați Filter, Searchși LookUp funcții:

Notă

COMENZIle PAC CLI pac power-fx nu acceptă funcția Search .

Descriere

Funcția Filter găsește înregistrări într-un tabel care satisface o formulă. Se utilizează Filter pentru a găsi un set de înregistrări care se potrivesc cu unul sau mai multe criterii și pentru a renunța la înregistrările care nu.

Funcția LookUp găsește prima înregistrare dintr-un tabel care satisface o formulă. Se utilizează LookUp pentru a găsi o singură înregistrare care corespunde unuia sau mai multor criterii.

Pentru ambele, formula este evaluată pentru fiecare înregistrare a tabelului. Înregistrări care au ca rezultat true sunt incluse în rezultat. Pe lângă operatorii normali de formulă, puteți utiliza operatorii in și exactin pentru corespondențe de subșiruri.

Câmpurile înregistrării procesate în prezent sunt disponibile în cadrul formulei. Utilizați operatorul ThisRecord sau pur și simplu faceți referire la câmpuri după nume, așa cum ați face cu orice altă valoare. Operatorul Ca poate fi, de asemenea, utilizat pentru a denumi înregistrarea care este procesată, ceea ce poate face formula dvs. să fie mai ușor de înțeles și înregistrările imbricate să fie accesibile. Pentru informații suplimentare, consultați exemplele de mai jos și lucrul cu domeniul de aplicare al înregistrărilor.

Funcția Search găsește înregistrări într-un tabel care conține un șir într-una dintre coloanele lor. Șirul poate apărea oriunde în coloană; de exemplu, căutarea „rob” sau „bert” ar găsi o potrivire într-o coloană care conține „Robert”. Căutarea nu este sensibilă la litere mari și mici. Spre deosebire Filter de și LookUp, funcția Search utilizează un singur șir pentru a se potrivi în locul unei formule.

Filter și Search să returneze un tabel care conține aceleași coloane ca tabelul original și înregistrările care corespund criteriilor. LookUp returnează doar prima înregistrare găsită, după aplicarea unei formule pentru a reduce înregistrarea la o singură valoare. Dacă nu s-au găsit Filter înregistrări și Search returnează un tabel gol și LookUp returnează necompletat.

Tabelele sunt o valoare în Power Apps, la fel ca un șir sau un număr. Pot fi transmise și returnate din funcții. Filter, Searchși LookUp nu modificați un tabel. În schimb, ei iau un tabel ca argument și returnează un tabel, o înregistrare sau o singură valoare de aici. Pentru mai multe detalii, consultați lucrul cu tabele.

Delegare

Atunci când este posibil, Power Apps va delega operațiunile de filtrare și sortare către sursa de date și va pagina rezultatele la cerere. De exemplu, când porniți o aplicație care arată un control Galerie completat cu date, doar primul set de înregistrări va fi adus inițial pe dispozitiv. Pe măsură ce utilizatorul defilează, se aduc date suplimentare din sursa de date. Rezultatul este un timp de pornire mai rapid pentru aplicație și acces la seturi de date foarte mari.

Cu toate acestea, delegarea nu este posibilă întotdeauna. Sursele de date suportă diverse funcții și diverși operatori cu delegarea. Dacă delegarea completă a unei formule nu este posibilă, mediul de creare va semnala porțiunea care nu poate fi delegată cu un avertisment. Atunci când este posibil, schimbați formula pentru a evita funcțiile și operatorii care nu se pot delega. Lista de delegare prezintă sursele de date și operațiunile care se pot delega.

Dacă delegarea nu este posibilă, Power Apps va extrage doar un set mic de înregistrări la care să se lucreze local. Filter și funcțiile de sortare vor funcționa pe un set redus de înregistrări. Este posibil ca elementele disponibile în Galerie să nu reprezinte întreaga situație, lucru care-i poate deruta pe utilizatori.

Consultați prezentarea generală a delegării pentru mai multe informații.

Sintaxă

Filter(Tabel*, Formulă1 [, *Formulă2*, ... ] )

  • Tabel - Obligatoriu. Tabel pentru căutare.
  • Formule - Obligatoriu. Formula în funcție de care este evaluată fiecare înregistrare a tabelului. Funcția returnează toate înregistrările care au ca rezultat true. Puteți face referire la coloane din tabel. Dacă furnizați mai multe formule, rezultatele tuturor formulelor sunt combinate cu funcția And.

Search(Tabel*, CăutareString, Coloană1 [, *Coloană2*, ... ] )

  • Tabel - Obligatoriu. Tabel pentru căutare.
  • SearchString - Obligatoriu. Șir pentru căutare. Dacă există un șir necompletat sau un șir gol, toate înregistrările sunt returnate.
  • Coloane - Obligatoriu. Numele coloanelor din Table pentru a căuta. Dacă SearchString se găsește în datele oricăreia dintre aceste coloane ca o corespondență parțială, înregistrarea completă va fi returnată.

Notă

În Power Apps înainte de versiunea 3.24042, numele de coloane pentru Search funcție au fost specificate cu un șir text utilizând ghilimele duble și dacă sunt conectate la o sursă de date, de asemenea, trebuie să fie nume logice. De exemplu, numele logic „cr43e_name” cu ghilimele duble a fost folosit în locul numelui afișat Nume fără ghilimele. Pentru sursele de date SharePoint și Excel care conțin nume de coloane cu spații, fiecare spațiu a fost specificat cu „_x0020_”, de exemplu „Column Name” as „Column_x0020_Name”. După această versiune, toate aplicațiile au fost actualizate automat la noua sintaxă descrisă în acest articol.

LookUp(Tabel*, Formulă [, *ReducereFormula* ] )

  • Tabel - Obligatoriu. Tabel pentru căutare. În IU, sintaxa este prezentată ca sursă deasupra casetei de funcții.
  • Formula - Obligatoriu. Formula în funcție de care este evaluată fiecare înregistrare a tabelului. Funcția returnează prima înregistrare care are ca rezultat true. Puteți face referire la coloane din tabel. În IU, sintaxa este prezentată ca o condiție deasupra casetei de funcții.
  • ReductionFormula - Opțional. Această formulă este evaluată pe baza înregistrării care a fost găsită și apoi reduce înregistrarea la o singură valoare. Puteți face referire la coloane din tabel. Dacă nu utilizați acest parametru, funcția returnează înregistrarea completă din tabel. În IU, sintaxa este prezentată ca rezultat deasupra casetei de funcții.

Exemple

Următoarele exemple utilizează Înghețatăsursă de date:

Înghețată sursă de date.

Formula Descriere Rezultat
Filter(IceCream, OnOrder > 0) Returnează înregistrările unde OnOrder este mai mare decât zero. Filter La comandă.
Filter(IceCream, Cantitate + OnOrder > 225) Returnează înregistrări în care suma aferentă pentru coloanele Cantitate și La comandă este mai mare de 225. Filter cantitate și comandă.
Filter(IceCream, "ciocolată" în Lower(Aroma )) Returnează înregistrări în care apare cuvântul "ciocolată" apare în numele Aromă, independent de litere mari sau minuscule. Filter în jos.
Filter(IceCream, Cantitate < 10 && OnOrder < 20) Returnează înregistrările în care Cantitate este mai mică de 10 și La comandă este mai mică de 20. Nicio înregistrare nu corespunde acestor criterii, astfel încât este returnat un tabel gol. Filter în cantitate.
Search(IceCream, "choc", Aroma) Returnează înregistrări în care șirul "cioc" apare în numele Aromă, independent de litere mari sau minuscule. Search Elemente.
Search(IceCream, "", Aroma) Deoarece termenul de căutare este gol, toate înregistrările sunt returnate. Search toate elementele.
LookUp(IceCream, Aroma = "ciocolată", Cantitate) Caută o înregistrare cu Aromă egal cu „Ciocolată”, dintre care există una. Pentru prima înregistrare găsită returnează Cantitate din acea înregistrare. 100
LookUp(IceCream, Cantitate > 150, Cantitate + OnOrder) Căutări pentru o înregistrare cu Cantitate mai mare de 150, dintre care sunt multiple. Pentru prima înregistrare care a fost găsită, care este Aroma "Vanilie", returnează suma pentru coloanele Cantitate și La comandă. 250
LookUp(IceCream, Aroma = "Pistachio", OnOrder) Căutări pentru o înregistrare cu Aromă egală cu "Fistic", dintre care nu există niciuna. Pentru că nu se găsește niciunul, Căutarea returnează necompletat. necompletat
LookUp(IceCream, Aroma = "Vanilie") Caută o înregistrare cu Aromă egal cu „Vanilie”, dintre care există una. Deoarece nu a fost furnizată o formulă de reducere, este returnată întreaga înregistrare. { Aromă: "Vanilie", Cantitate: 200, La comandă: 75 }

Filtrare cu coloane de alegere

Următorul exemplu folosește tabelul Cont în Microsoft Dataverse ca sursă de date. Acest exemplu vă arată cum să Filter listați conturile pe baza valorilor de control ale casetei combo selectate:

Pas cu pas

  1. Deschideți o aplicație necompletată.

  2. Adăugați un ecran nou selectând opțiunea Ecran nou.

  3. Pe fila Inserare, selectați Galerie apoi selectați Vertical.

  4. Pe fila Proprietăți a panoului din dreapta, deschideți Sursă de date și apoi selectați Conturi.

  5. (Opțional) În lista Aspect selectați diferite opțiuni.

  6. Pe fila Inserare, selectați Intrare apoi selectați Casetă combo. Repetați pasul pentru a adăuga încă două controale din caseta combo.

  7. Pentru fiecare comandă de casetă combo, pe fila Proprietăți a panoului din dreapta, deschideți Sursă de date și apoi selectați Conturi. Selectați Editați chiar lângă opțiunea Câmpuri și apoi selectați valorile Text primar și SearchField. Text primar ar trebui să fie coloana de opțiuni pe care doriți să o adăugați în caseta combo. Repetați pasul pentru încă două controale din caseta combo.

    Setarea valorilor casetei combinate.

  8. Acum selectați controlul Galerie și setați proprietatea Elemente pentru următoarea formulă:

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

    Conturi sursă de date.

Search experiență utilizator

Următoarele exemple utilizează Înghețatăsursă de date:

În multe aplicații, puteți tasta unul sau mai multe caractere într-o casetă de căutare pentru a filtra o listă de înregistrări într-un set mare de date. Pe măsură ce tastați, lista afișează doar acele înregistrări care corespund criteriilor de căutare.

Exemplele din restul acestui articol arată rezultatele căutării într-o listă, denumită Clienți, care conține aceste date:

Search pentru clienți.

Pentru a crea această sursă de date ca o colecție, creați un control Button și setați proprietatea acestuia OnSelect conform următoarei formule:

ClearCollect(Clienți, Tabel({ Nume: „Fred Garcia”, Companie: „Comercianți Northwind” }, { Nume: „Cole Miller”, Companie: „Contoso” }, { Nume: „Glenda Johnson”, Companie: „Contoso” }, { Nume: „Mike Collins”, Companie: „Adventure Works” }, { Nume: „ Colleen Jones", Compania: "Adventure Works" }) )

După cum se arată în acest exemplu, puteți afișa o listă de înregistrări într-un Control galerie în partea de jos a unui ecran. În partea de sus a ecranului, puteți adăuga un control Introducere text, numit SearchInput, astfel încât utilizatorii să poată specifica ce înregistrări îi interesează.

Search utilizând intrările de căutare.

Pe măsură ce utilizatorul tastează caractere în SearchInput, rezultatele din galerie sunt filtrate automat. În acest caz, galeria este configurată pentru a afișa înregistrări pentru care numele clientului (nu numele companiei) începe cu secvența de caractere din SearchInput. Dacă utilizatorul introduce co în caseta de căutare, galeria arată aceste rezultate:

Search cu începe cu.

Pentru a filtra pe baza coloanei Name, setați proprietatea Items a controlului galeriei la una dintre aceste formule:

Formula Descriere Rezultat
Filter(Clienți, StartsWith(nume, SearchInput.Text) ) Filtrează sursa de date Customers pentru înregistrări în care șirul de căutare apare la începutul coloanei Name. Testul nu este sensibil la literele mari și mici. Dacă utilizatorul tastează co în caseta de căutare, galeria afișează Colleen Jones și Cole Miller. Galeria nu afișează Mike Collins deoarece coloana Name pentru respectiva înregistrare nu începe cu șirul de căutare. Filter cu începe cu.
Filter(Customers, SearchInput.Text in Name) Filtrează sursa de date Customers pentru înregistrări în care șirul de căutare apare oriunde în coloana Name. Testul nu este sensibil la literele mari și mici. Dacă utilizatorul tastează co în caseta de căutare, galeria afișează Colleen JonesCole Miller, și Mike Collins deoarece șirul de căutare apare într-o anumită parte a coloanei Name pentru toate acele înregistrări. Filter cu introducerea căutării.
Search(Clienți, SearchInput.Text, Nume) Similar cu utilizarea operatorului in , funcția Search caută o potrivire oriunde în coloana Nume a fiecărei înregistrări. Trebuie să încadrați numele coloanei între ghilimele duble. Search clienți.

Puteți extinde căutarea pentru a include coloana Companie și coloana Nume:

Formula Descriere Rezultat
Filter(Clienți, StartsWith(nume, SearchInput.Text) || StartsWith(Firmă, SearchInput.Text) ) Filtrează sursa de date Customers pentru înregistrări în care coloana Name sau coloana Company începe cu șirul de căutare (de exemplu, co). || Operator este true dacă funcția StartsWith este true. Filter încep cu clienții.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text în firmă) Filtrează sursa de date Customers pentru înregistrări în care coloana Name sau coloana Company conține șirul de căutare (de exemplu, co) oriunde în interior. Filter clienții caută intrări.
Search(Clienți, SearchInput.Text, Nume, Firmă) Similar cu utilizarea operatorului in , Search funcția caută în sursa de date Clienți înregistrările în care fie coloana Nume , fie coloana Firmă conține șirul de căutare (de exemplu, co) oriunde în ea. Funcția Search este mai ușor de citit și de scris decât Filter dacă doriți să specificați mai multe coloane și mai multe în operatori. Search clienții cu intrări de căutare.