PowerApps'teki Filter, Search ve LookUp işlevleriFilter, Search, and LookUp functions in PowerApps

Tablo içinde bir veya daha fazla kayıt bulur.Finds one or more records in a table.

AçıklamaDescription

Filter işlevi, tabloda bir formülü karşılayan kayıtları bulur.The Filter function finds records in a table that satisfy a formula. Bir veya daha fazla ölçüt ile eşleşen bir kayıt kümesi bulmak ve eşleşmeyenleri atmak için Filter işlevini kullanın.Use Filter to find a set of records that match one or more criteria and to discard those that don't.

LookUp işlevi, tabloda bir formülü karşılayan ilk kaydı bulur.The LookUp function finds the first record in a table that satisfies a formula. Bir veya daha fazla ölçütle eşleşen tek bir kaydı bulmak için LookUp işlevini kullanın.Use LookUp to find a single record that matches one or more criteria.

Her iki işlevde de formül, tablodaki her bir kayıt için değerlendirilir.For both, the formula is evaluated for each record of the table. true olarak sonuçlanan kayıtlar sonuca dahil edilir.Records that result in true are included in the result. Normal formül işleçlerinin yanı sıra alt dize eşleşmeleri için in ve exactin işleçlerini kullanabilirsiniz.Besides the normal formula operators, you can use the in and exactin operators for substring matches.

Fields of the record currently being processed are available within the formula. You simply reference them by name as you would any other value. You can also reference control properties and other values from throughout your app. For more details, see the examples below and working with record scope.

Search işlevi, sütunlarından birinde dize içeren bir tablodaki kayıtları bulur.The Search function finds records in a table that contain a string in one of their columns. Dize, sütundaki herhangi bir yerde olabilir. Örneğin, "rob" veya "bert" kelimelerini aratmak "Robert" öğesini içeren bir sütunda eşleşme bulabilir.The string may occur anywhere within the column; for example, searching for "rob" or "bert" would find a match in a column that contains "Robert". Arama büyük/küçük harfe duyarlı değildir.Searching is case-insensitive. Filter ve LookUp işlevlerinin aksine Search işlevi, eşleme için bir formül yerine tek bir dize kullanır.Unlike Filter and LookUp, the Search function uses a single string to match instead of a formula.

Filter ve Search işlevleri, özgün tablodakilerle aynı sütunları ve ölçütlerle eşleşen kayıtları içeren bir tablo döndürür.Filter and Search return a table that contains the same columns as the original table and the records that match the criteria. LookUp işlevi, kaydı tek bir değere indirgemek için bir formül uyguladıktan sonra yalnızca bulunan ilk kaydı döndürür.LookUp returns only the first record found, after applying a formula to reduce the record to a single value. Hiçbir kayıt bulunmazsa Filter ve Search işlevleri boş bir tablo, LookUp işlevi ise boş değer döndürür.If no records are found, Filter and Search return an empty table, and LookUp returns blank.

PowerApps'te tablolar, tıpkı bir dize veya sayı gibi değerlendirilir.Tables are a value in PowerApps, just like a string or number. Tablolar, işlevlere geçirilebilir ve işlevlerden döndürülebilir.They can be passed to and returned from functions. Filter, Search ve LookUp işlevleri bir tabloyu değiştirmez.Filter, Search, and LookUp don't modify a table. Bunun yerine, bir tabloyu bağımsız değişken olarak alır ve bundan bir tablo, kayıt veya tek bir değer döndürürler.Instead, they take a table as an argument and return a table, a record, or a single value from it. Daha fazla ayrıntı için bkz. tablolarla çalışma.See working with tables for more details.

Delegation

When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. For example, when you start an app that shows a Gallery control filled with data, only the first set of records will be initially brought to the device. As the user scrolls, additional data is brought down from the data source. The result is a faster start time for the app and access to very large data sets.

However, delegation may not always be possible. Data sources vary on what functions and operators they support with delegation. If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. When possible, consider changing the formula to avoid functions and operators that can't be delegated. The delegation list details which data sources and operations can be delegated.

If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Filter and sort functions will operate on a reduced set of records. What is available in the Gallery may not be the complete story, which could be confusing to users.

See the delegation overview for more information.

Söz dizimiSyntax

Filter( Tablo, Formül1 [, Formül2, ... ] )Filter( Table, Formula1 [, Formula2, ... ] )

  • Tablo: Gerekli.Table - Required. Arama yapılacak tablo.Table to search.
  • Formüller: Gerekli.Formula(s) - Required. Tablodaki her bir kaydın değerlendirilmesinde kullanılan formül.The formula by which each record of the table is evaluated. İşlev, true olarak sonuçlanan tüm kayıtları döndürür.The function returns all records that result in true. Tablodaki sütunlara başvurabilirsiniz.You can reference columns within the table. Birden fazla formül sağlarsanız tüm formüllerin sonuçları And işlevi ile birleştirilir.If you supply more than one formula, the results of all formulas are combined with the And function.

Search( Tablo, AramaDizesi, Sütun1 [, Sütun2, ... ] )Search( Table, SearchString, Column1 [, Column2, ... ] )

  • Tablo: Gerekli.Table - Required. Arama yapılacak tablo.Table to search.
  • AramaDizesi: Gerekli.SearchString - Required. Aranacak dize.The string to search for. Boş değerindeyse veya boş bir dizeyse tüm kayıtlar döndürülür.If blank or an empty string, all records are returned.
  • Sütunlar: Gerekli.Column(s) - Required. Tablo içinde arama yapılacak sütunların adları.The names of columns within Table to search. Arama yapılacak sütunların metin içermesi gerekir.Columns to search must contain text. Sütun adları dize olmalı; başlarında ve sonlarında çift tırnak işareti bulunmalıdır.Column names must be strings and enclosed in double quotes. Sütun adları aynı zamanda statik olmalıdır; ayrıca bir formül ile hesaplanamaz.However, the column names must be static and cannot be calculated with a formula. AramaDizesi, söz konusu sütunların herhangi birindeki verilerde kısmi eşleşme olarak bulunursa kaydın tamamı döndürülür.If SearchString is found within the data of any of these columns as a partial match, the full record will be returned.

Not: Boşluklu sütun adları içeren SharePoint ve Excel veri kaynakları için her bir boşluğunu "_x0020_" olarak belirtin.Note: For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Örneğin, "Sütun Adı" öğesini "Sütun_x0020_Adı" olarak belirtin.For example, specify "Column Name" as "Column_x0020_Name".

LookUp( Tablo, Formül [, İndirgeme Formülü ] )LookUp( Table, Formula [, ReductionFormula ] )

  • Tablo: Gerekli.Table - Required. Arama yapılacak tablo.Table to search. Kullanıcı arabiriminde söz dizimi, işlev kutusunun üstünde kaynak olarak gösterilir.In the UI, the syntax is shown as source above the function box.
  • Formül: Gerekli.Formula - Required. Tablodaki her bir kaydın değerlendirilmesinde kullanılan formül.The formula by which each record of the table is evaluated. İşlev, true ile sonuçlanan ilk kaydı döndürür.The function returns the first record that results in true. Tablodaki sütunlara başvurabilirsiniz.You can reference columns within the table. Kullanıcı arabiriminde söz dizimi, işlev kutusunun üstünde koşul olarak gösterilir.In the UI, the syntax is shown as condition above the function box.
  • İndirgemeFormülü: İsteğe bağlı.ReductionFormula - Optional. Bu formül, bulunan kayıt üzerinden değerlendirilir ve ardından kaydı tek bir değere indirger.This formula is evaluated over the record that was found, and then reduces the record to a single value. Tablodaki sütunlara başvurabilirsiniz.You can reference columns within the table. Bu parametreyi kullanmazsanız işlev, tablodaki kaydın tamamını döndürür.If you don't use this parameter, the function returns the full record from the table. Kullanıcı arabiriminde söz dizimi, işlev kutusunun üstünde sonuç olarak gösterilir.In the UI, the syntax is shown as result above the function box.

ÖrneklerExamples

Aşağıdaki örneklerde IceCream veri kaynağı kullanılmıştır:The following examples use the IceCream data source:

FormülFormula AçıklamaDescription SonuçResult
Filter( IceCream, OnOrder > 0 )Filter( IceCream, OnOrder > 0 ) OnOrder'ın sıfırdan daha büyük olduğu kayıtları döndürür.Returns records where OnOrder is greater than zero.
Filter( IceCream, Quantity + OnOrder > 225 )Filter( IceCream, Quantity + OnOrder > 225 ) Quantity ve OnOrder sütunlarının toplamının 225'ten daha büyük olduğu kayıtları döndürür.Returns records where the sum of Quantity and OnOrder columns is greater than 225.
Filter( IceCream, "chocolate" in Lower( Flavor ) )Filter( IceCream, "chocolate" in Lower( Flavor ) ) Büyük veya küçük harflerden bağımsız olarak Flavor adında "chocolate" kelimesinin göründüğü kayıtları döndürür.Returns records where the word "chocolate" appears in the Flavor name, independent of uppercase or lowercase letters.
Filter( IceCream, Quantity < 10 && OnOrder < 20 )Filter( IceCream, Quantity < 10 && OnOrder < 20 ) Quantity'nin 10'dan ve OnOrder'ın 20'den daha az olduğu kayıtları döndürür.Returns records where the Quantity is less than 10 and OnOrder is less than 20. Bu ölçütlerle hiçbir kayıt eşleşmez, bu nedenle boş bir tablo döndürülür.No records match these criteria, so an empty table is returned.
Search( IceCream, "choc", "Flavor" )Search( IceCream, "choc", "Flavor" ) Büyük veya küçük harflerden bağımsız olarak Flavor adında "choc" dizesinin göründüğü kayıtları döndürür.Returns records where the string "choc" appears in the Flavor name, independent of uppercase or lowercase letters.
Search( IceCream, "", "Flavor" )Search( IceCream, "", "Flavor" ) Arama terimi boş olduğundan tüm kayıtlar döndürülür.Because the search term is empty, all records are returned.
LookUp( IceCream, Flavor = "Chocolate", Quantity )LookUp( IceCream, Flavor = "Chocolate", Quantity ) Flavor'ın "Chocolate" değerinde olduğu kayıtları arar. (Bir kayıt vardır.)Searches for a record with Flavor equal to "Chocolate", of which there is one. Bulunan ilk kayıt için kaydın Quantity'sini döndürür.For the first record that's found, returns the Quantity of that record. 100100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder )LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Quantity değeri 100'den fazla olan kayıtları arar. (Birden çok kayıt vardır.)Searches for a record with Quantity greater than 100, of which there are multiple. Bulunan ilk kayıt için ("Vanilla" Flavor) Quantity ve OnOrder sütunlarının toplamını döndürür.For the first record that's found, which is "Vanilla" Flavor, returns the sum of Quantity and OnOrder columns. 250250
LookUp( IceCream, Flavor = "Pistachio", OnOrder )LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Flavor'ın "Pistachio" değerinde olduğu kayıtları arar. (Hiç kayıt yoktur.)Searches for a record with Flavor equal to "Pistachio", of which there are none. Hiçbir kayıt bulunamadığından Lookup işlevi boş değer döndürür.Because none were found, Lookup returns blank. boşblank
LookUp( IceCream, Flavor = "Vanilla" )LookUp( IceCream, Flavor = "Vanilla" ) Flavor'ın "Vanilla" değerinde olduğu kayıtları arar.(Hiç kayıt yoktur.)Searches for a record with Flavor equal to "Vanilla", of which there is one. Hiçbir indirgeme formülü sağlanmamış olduğundan kaydın tamamı döndürülür.Since no reduction formula was supplied, the entire record is returned. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }{ Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Aramaya ilişkin kullanıcı deneyimiSearch user experience

Birçok uygulamada, büyük bir veri kümesindeki bir kayıt listesini filtrelemek için arama kutusuna bir veya daha fazla karakter yazabilirsiniz.In many apps, you can type one or more characters into a search box to filter a list of records in a large data set. Siz yazarken liste yalnızca arama ölçütleri ile eşleşen kayıtları gösterir.As you type, the list shows only those records that match the search criteria.

Bu konu başlığının geri kalan kısmındaki örneklerde, şu verileri içeren Customers adlı listedeki arama sonuçları gösterilmektedir:The examples in the rest of this topic show the results of searching a list, named Customers, that contains this data:

Bu veri kaynağını bir koleksiyon olarak oluşturmak için bir Düğme denetimi oluşturun ve OnSelect özelliğini şu formül olarak ayarlayın:To create this data source as a collection, create a Button control and set its OnSelect property to this formula:

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" } ) )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" } ) )

Bu örnekte olduğu gibi, ekranın alt kısmındaki bir Galeri denetimi ile kayıt listesi gösterebilirsiniz.As in this example, you can show a list of records in a Gallery control at the bottom of a screen. Ekranın üst kısmına yakın bir konuma SearchInput adlı bir Metin girişi denetimi ekleyebilirsiniz. Böylece, kullanıcılar hangi kayıtlarla ilgilendiklerini belirtebilir.Near the top of the screen, you can add a Text input control, named SearchInput, so that users can specify which records interest them.

Kullanıcı, SearchInput denetiminde karakterler yazdıkça galerideki sonuçlar otomatik olarak filtrelenir.As the user types characters in SearchInput, the results in the gallery are automatically filtered. Bu durumda galeri, SearchInput kısmındaki karakter dizisiyle başlayan müşteri adı (şirket adı değil) için kayıtları göstermek üzere yapılandırılır.In this case, the gallery is configured to show records for which the name of the customer (not the name of the company) starts with the sequence of characters in SearchInput. Kullanıcı arama kutusuna co yazarsa galeri şu sonuçları gösterir:If the user types co in the search box, the gallery shows these results:

Name sütununa göre filtreleme yapmak için galeri denetiminin Items özelliğini şu formüllerden biri olarak ayarlayın:To filter based on the Name column, set the Items property of the gallery control to one of these formulas:

FormülFormula AçıklamaDescription SonuçResult
Filter( Customers, StartsWith( Name, SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Arama dizesinin Name sütunun başında göründüğü kayıtlar için Customers veri kaynağını filtreler.Filters the Customers data source for records in which the search string appears at the start of the Name column. Test, büyük/küçük harfe duyarlı değildir.The test is case insensitive. Kullanıcı, arama kutusuna co yazarsa galeri, Colleen Jones ve Cole Miller öğelerini gösterir.If the user types co in the search box, the gallery shows Colleen Jones and Cole Miller. Galeri, söz konusu kaydın Name sütunu arama dizesi ile başlamadığından Mike Collins öğesini göstermez.The gallery doesn't show Mike Collins because the Name column for that record doesn't start with the search string.
Filter( Customers, SearchInput.Text in Name )Filter( Customers, SearchInput.Text in Name ) Arama dizesinin, Name sütununun herhangi bir yerinde göründüğü kayıtlar için Customers veri kaynağını filtreler.Filters the Customers data source for records in which the search string appears anywhere in the Name column. Test, büyük/küçük harfe duyarlı değildir.The test is case insensitive. Kullanıcı, arama kutusuna co yazarsa galeri; Colleen Jones, Cole Miller, ve Mike Collins öğelerini gösterir. Bunun nedeni, bu kayıtların tümünün Name sütununda arama dizesinin görünmesidir.If the user types co in the search box, the gallery shows Colleen Jones, Cole Miller, and Mike Collins because the search string appears somewhere in the Name column of all of those records.
Search( Customers, SearchInput.Text, "Name" )Search( Customers, SearchInput.Text, "Name" ) in işlecinin kullanımına benzer şekilde, Search işlevi, her bir kayıttaki Name sütununun herhangi bir yerinde eşleşme arar.Similar to using the in operator, the Search function searches for a match anywhere within the Name column of each record. Sütun adının başında ve sonunda çift tırnak işareti kullanmanız gerektiğini unutmayın.Note that you must enclose the column name in double quotation marks.

Aramanızı Name sütununun yanı sıra Company sütununu da dahil edecek şekilde genişletebilirsiniz:You can expand your search to include the Company column as well as the Name column:

FormülFormula AçıklamaDescription SonuçResult
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Name veya Company sütununun arama dizesiyle (örneğin, co) başladığı kayıtlar için Customers veri kaynağını filtreler.Filters the Customers data source for records in which either the Name column or the Company column starts with the search string (for example, co). StartsWith işlevi true ise || işleci true değerini taşır.The || operator is true if either StartsWith function is true.
Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company )Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) Name veya Company sütununun herhangi bir yerinde arama dizesinin (örneğin, co) bulunduğu kayıtlar için Customer veri kaynağını filtreler.Filters the Customers data source for records in which either the Name column or the Company column contains the search string (for example, co) anywhere within it.
Search( Customers, SearchInput.Text, "Name", "Company" )Search( Customers, SearchInput.Text, "Name", "Company" ) in işlecinin kullanımına benzer şekilde, Search işlevi, Name veya Company sütununun herhangi bir yerinde arama dizesinin (örneğin, co) bulunduğu kayıtlar için Customers veri kaynağını arar.Similar to using the in operator, the Search function searches the Customers data source for records in which either the Name column or the Company column contains the search string (for example, co) anywhere within it. Search işlevi, birden fazla sütun ve in işleci belirtmek istediğiniz durumlarda Filter işlevine göre daha kolay bir okuma ve yazma deneyimi sunar.The Search function is easier to read and write than Filter if you want to specify multiple columns and multiple in operators. Sütun adlarının başında ve sonunda çift tırnak işareti kullanmanız gerektiğini unutmayın.Note that you must enclose the names of the columns in double quotation marks.