Filter-, Search- und LookUp-Funktionen

Gilt für: Canvas-Apps Desktop-Flows Modellgesteuerte Apps Power Platform CLI

Sucht nach einem oder mehreren Datensätzen in einer Tabelle.

Sehen Sie sich dieses Video an, um zu erfahren, wie Sie die Funktionen Filter, Search und LookUp verwenden können:

Anmerkung

PAC CLI pac power-fx-Befehle unterstützen die Funktion Search nicht.

Description

Die Filter-Funktion sucht Datensätze in einer Tabelle, die eine Formel erfüllen. Mit Filter finden Sie Datensätze, die mindestens ein Kriterium erfüllen; Datensätze, die kein Kriterium erfüllen, werden verworfen.

Die LookUp-Funktion sucht den ersten Datensatz in einer Tabelle, der eine Formel erfüllt. Verwenden Sie LookUp, um einen einzelnen Datensatz zu suchen, der mindestens ein Kriterium erfüllt.

Bei beiden wird die Formel für jeden Datensatz der Tabelle ausgewertet. Datensätze, die TRUE ausgeben, sind im Ergebnis enthalten. Neben den normalen Operatoren der Formel können Sie die in- und exactin-Operatoren für Übereinstimmungen mit Teilzeichenfolgen verwenden.

Die Felder des aktuell verarbeiteten Datensatzes sind in der Formel verfügbar. Verwenden Sie den ThisRecord-Operator, oder referenzieren Sie Felder einfach namentlich wie jeden anderen Wert. Der As-Operator kann auch verwendet werden, um den zu verarbeitenden Datensatz zu benennen, wodurch Ihre Formel leichter verständlich wird und verschachtelte Datensätze zugänglich werden. Weitere Informationen finden Sie in den folgenden Beispielen und unter Arbeiten mit Datensatzumfang.

Die Search-Funktion sucht Datensätze in einer Tabelle, die eine Zeichenfolge in eine ihrer Spalten enthalten. Die Zeichenfolge kann an einer beliebigen Stelle innerhalb der Spalte auftreten. Beispielsweise würde die Suche nach „rob“ oder „bert“ eine Übereinstimmung in einer Spalte finden, die „Robert“ enthält. Bei Search wird die Groß-/Kleinschreibung beachtet. Im Gegensatz zu Filter und LookUp, verwendet die Search-Funktion anstelle einer Formel eine einzelne Zeichenfolge für die Übereinstimmung.

Filter und Search geben eine Tabelle zurück, die dieselben Spalten wie die ursprüngliche Tabelle und die Datensätze enthält, die den Kriterien entsprechen. LookUp gibt nach dem Anwenden einer Formel, um den Datensatz auf einen einzelnen Wert zu reduzieren, nur den ersten gefundenen Datensatz zurück. Wenn keine Datensätze gefunden wurden, geben Filter und Search eine leere Tabelle und LookUpleer zurück.

Wie Zeichenfolgen und Zahlen sind auch Tabellen in Power Apps Werte. Sie können an Funktionen übergeben und von diesen zurückgegeben werden. Filter, Search und LookUp ändern eine Tabelle nicht. Stattdessen nehmen sie eine Tabelle als Argument entgegen und geben eine Tabelle, einen Datensatz oder einen einzelnen Wert daraus zurück. Weitere Details erfahren Sie unter Arbeiten mit Tabellen.

Stellvertretung

Sofern möglich,erfolgt in Power Apps eine Filterdelegation und Vorgangssortierung bei Bedarf anhand der Ergebnisse entsprechend der Datenquelle. Wenn Sie beispielsweise eine App starten, in der ein Galerie-Steuerelementfeld mit Daten enthalten ist, wird anfänglich nur die erste Datensatzgruppe zum Gerät übertragen. Beim Scrollen werden weitere Daten aus der Datenquelle übertragen. Das führt bei der App zu einer schnelleren Startzeit und einem schnelleren Zugriff auf umfangreiche Datensets.

Allerdings ist eine Delegierung gegebenenfalls nicht immer möglich. Die von Datenquellen in Bezug auf Delegation unterstützten Funktionen und Operatoren unterscheiden sich. Falls die vollständige Delegierung einer Formel nicht möglich ist, wird der Anteil, der nicht delegiert werden kann, in der Erstellungsumgebung mit einer Warnung gekennzeichnet. Denken Sie möglichst über eine Änderung der Formel nach, um Funktionen und Operatoren zu vermeiden, die nicht delegiert werden können. In der Delegierungsliste werden die Datenquellen und Vorgänge, die nicht delegiert werden können, genau aufgeführt.

Wenn keine Delegierung möglich ist, überträgt Power Apps nur wenige Datensatzgruppen zur lokalen Bearbeitung. Filter- und Sortierungsfunktionen arbeiten dann mit weniger Datensatzgruppen. In der Galerie ist möglicherweise nicht alles verfügbar und das könnte für Benutzer verwirrend sein.

Weitere Informationen finden Sie unter Überblick über Delegation.

Syntax

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

  • Table – Erforderlich. die zu suchende Tabelle.
  • Formel(n) – Erforderlich. Formel, anhand derer die einzelnen Datensätze in der Tabelle ausgewertet werden. Diese Funktion gibt alle Datensätze zurück, die zu WAHR ausgewertet werden. Sie können auf Spalten innerhalb der Tabelle verweisen. Wenn Sie mehr als eine Formel angeben, werden die Ergebnisse aller Formeln mit einer And-Funktion kombiniert.

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

  • Table – Erforderlich. die zu suchende Tabelle.
  • SearchString - Erforderlich. Zeichenfolge, nach der gesucht werden soll. Bei leer oder einer leeren Zeichenfolge werden alle Datensätze zurückgegeben.
  • Column(s) - Erforderlich. Spaltennamen in der Tabelle, die gesucht werden sollen. Die zu suchenden Spalten müssen Text enthalten. Spaltennamen müssen Zeichenfolgen und in doppelte Anführungszeichen eingeschlossen sein. Allerdings müssen die Spaltennamen statisch sein und können nicht mit einer Formel berechnet werden. Wenn SearchString innerhalb der Daten für diese Spalten als eine teilweise Übereinstimmung gefunden wurde, wird der vollständige Datensatz zurückgegeben werden.

Notiz

Bei SharePoint- und Excel-Datenquellen, die Spaltennamen mit Leerzeichen enthalten, geben Sie jedes Leerzeichen als _x0020_ an. Geben Sie zum Beispiel "Column Name" als "Column_x0020_Name" an.

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

  • Table – Erforderlich. die zu suchende Tabelle. Auf der Benutzeroberfläche wird die Syntax oberhalb des Funktionsfelds als Quelle angezeigt.
  • Formel – Erforderlich. Formel, anhand derer die einzelnen Datensätze in der Tabelle ausgewertet werden. Die Funktion gibt den ersten Datensatz zurück, der als WAHR ausgewertet wird. Sie können auf Spalten innerhalb der Tabelle verweisen. Auf der Benutzeroberfläche wird die Syntax oberhalb des Funktionsfelds als Bedingungen angezeigt.
  • ReductionFormula - Optional. Diese Formel wird über den gefundenen Datensatz ausgewertet, anschließend wird der Datensatz auf einen einzigen Wert reduziert. Sie können auf Spalten innerhalb der Tabelle verweisen. Wenn Sie diesen Parameter nicht verwenden, gibt die Funktion den gesamten Datensatz aus der Tabelle zurück. Auf der Benutzeroberfläche wird die Syntax oberhalb des Funktionsfelds als Ergebnis angezeigt.

Beispiele

Die folgenden Beispiele verwenden die IceCream-Datenquelle:

Ice Cream-Datenquelle

Formel Beschreibung Result
Filter( IceCream, OnOrder > 0 ) Gibt Datensätze zurück, bei denen OnOrder größer als 0 ist. In Auftrag filtern
Filter( IceCream, Quantity + OnOrder > 225 ) Gibt Datensätze zurück, bei denen die Summe der Spalten Quantity und OnOrder größer als 225 ist. „Menge“ und „Auftrag“ filtern
Filter( IceCream, "chocolate" in Lower( Flavor ) ) Gibt Datensätze zurück, bei denen das Wort „chocolate“ im Flavor-Namen auftaucht. Die Groß-/Kleinschreibung wird hierbei nicht berücksichtigt. In Niedriger filtern
Filter(IceCream, Quantity < 10 && OnOrder < 20) Gibt Datensätze zurück, bei denen Quantity kleiner als 10 und OnOrder kleiner als 20 ist. Keine Datensätze entsprechen diesen Kriterien, sodass eine leere Tabelle zurückgegeben wird. Nach Menge filtern
Search( IceCream, "choc", "Flavor" ) Gibt Datensätze zurück, bei denen die Zeichenfolge „choc“ im Flavor-Namen auftaucht. Die Groß-/Kleinschreibung wird hierbei nicht berücksichtigt. Suchelemente
Search( IceCream, "", "Flavor" ) Da der Suchbegriff leer ist, werden alle Datensätze zurückgegeben. Alle Elemente suchen
LookUp( IceCream, Flavor = "Chocolate", Quantity ) Sucht einen Datensatz, bei dem Flavor „chocolate“ entspricht. Hierzu gibt es einen passenden Datensatz. Für den ersten gefundenen Datensatz wird die Quantity dieses Datensatzes zurückgegeben. 100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Sucht einen Datensatz mit Quantity größer als 150, von denen es mehrere gibt. Für den ersten gefundenen Datensatz, welcher „Vanilla“-Flavor ist, wird die Summe der Spalten Quantity und OnOrder zurückgegeben. 250
LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Sucht einen Datensatz, bei dem Flavor „Pistachio“ entspricht. Hierzu gibt es keinen passenden Datensatz. Deswegen gibt LookUpblank zurück. leer
LookUp( IceCream, Flavor = "Vanilla" ) Sucht einen Datensatz, bei dem Flavor „Vanilla“ entspricht. Hierzu gibt es einen passenden Datensatz. Da keine Reduzierformel angegeben wurde, wird der gesamte Datensatz zurückgegeben. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Filtern mit Auswahlspalten

Das folgende Beispiel verwendet die Tabelle Firma in Microsoft Dataverse als Datenquelle. Dieses Beispiel zeigt, wie Sie mit Filter eine Liste von Firmen basierend auf ausgewählten Combo box-Steuerelementwerten filtern:

Schritt für Schritt

  1. Öffnen Sie eine leere App.

  2. Fügen Sie einen neuen Bildschirm hinzu, indem Sie die Option Neuer Bildschirm auswählen.

  3. Wählen Sie auf der Registerkarte Einfügen die Option Gallery aus, und wählen Sie anschließend Vertikal aus.

  4. Öffnen Sie auf der Registerkarte Eigenschaften im rechten Bereich Datenquelle und dann Firmen aus.

  5. (Optional) In der Layout-Liste wählen Sie verschiedene Optionen.

  6. Wählen Sie auf der Registerkarte EinfügenEingabe und dann Combo box aus. Wiederholen Sie den Schritt, um zwei weitere Kombinationsfeld-Steuerelemente hinzuzufügen.

  7. Öffnen Sie für jedes Kombinationsfeld-Steuerelement auf der Registerkarte Eigenschaften im rechten Bereich Datenquelle und dann Firmen aus. Wählen Sie Bearbeiten neben der Felder-Option und wählen Sie dann die Werte Primärer Text und Suchfeld. Primärer Text sollte die Auswahlspalte sein, die Sie dem Kombinationsfeld hinzufügen möchten. Wiederholen Sie den Schritt für zwei weitere Kombinationsfeld-Steuerelemente.

    Festlegen von Kombinationsfeldwerten

  8. Wählen Sie nun Ihr Gallery-Steuerelement aus und legen Sie die Items-Eigenschaft mit der folgenden Formel fest.

    Filter(Accounts,
     'Industry' = ComboBox3.Selected.Industry||IsBlank(ComboBox3.Selected.Industry),
     'Relationship Type' = ComboBox2.Selected.'Relationship Type'||
     IsBlank(ComboBox2.Selected.'Relationship Type'),
     'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact'||
     IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
    

    Datenquelle „Firmen“

Benutzererfahrung beim Durchsuchen

Die folgenden Beispiele verwenden die IceCream-Datenquelle:

In vielen Apps können Sie ein oder mehrere Zeichen in ein Suchfeld eingeben, um eine gefilterte Liste mit Datensätzen aus einem großen Datenbestand zu erzeugen. Während der Eingabe zeigt die Liste nur die Datensätze, die den Suchkriterien entsprechen.

Die nachfolgenden Beispiele zeigen Ergebnisse der Suche in einer Liste namens Customers an, die die folgenden Daten enthalten:

In Kunden suchen

Um diese Datenquelle als Sammlung zu erstellen, erstellen Sie ein Button-Steuerelement, und legen Sie dessen OnSelect-Eigenschaft auf folgende Formel fest:

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

Sie können wie in diesem Beispiel eine Datensatzliste in einem Gallery-Steuerelement am unteren Rand eines Bildschirms anzeigen. Fügen Sie im oberen Bereich des Bildschirms ein Text input-Steuerelement mit dem Namen SearchInput hinzu, sodass Benutzer angeben können, welche Datensätze für sie relevant sind.

Suchen mithilfe der Sucheingabe

Wenn der Benutzer Zeichen in SearchInput eingibt, werden die Ergebnisse im Katalog automatisch gefiltert. In diesem Fall ist der Katalog so konfiguriert, dass er Datensätze anzeigt, für die der Name des Kunden (nicht der Namen des Unternehmens) mit der Zeichensequenz in SearchInput beginnt. Wenn der Benutzer co in das Suchfeld eingibt, zeigt der Katalog die folgenden Ergebnisse:

Suchen mit „beginnt mit“

Legen Sie die Items-Eigenschaft des gallery-Steuerelements auf eine der folgenden Formeln fest, um anhand der Spalte Name zu filtern:

Formel Beschreibung Ergebnis
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtert die Customers-Datenquelle nach Datensätzen, in der die Suchzeichenfolge am Anfang der Spalte Name vorkommt. Bei diesem Test wird die Groß-/Kleinschreibung nicht beachtet. Wenn der Benutzer co in das Suchfeld eingibt, zeigt der Katalog Colleen Jones und Cole Miller an. Mike Collins wird nicht im Katalog angezeigt, weil die Spalte Name dieses Datensatzes nicht mit der Suchzeichenfolge beginnt. Filtern mit „beginnt mit“
Filter( Customers, SearchInput.Text in Name ) Filtert die Customers-Datenquelle nach Datensätzen, in der die Suchzeichenfolge an einer beliebigen Stelle in der Spalte Name vorkommt. Bei diesem Test wird die Groß-/Kleinschreibung nicht beachtet. Wenn der Benutzer co in das Suchfeld eingibt, zeigt der Katalog Colleen Jones,Cole Miller, und Mike Collins an, da die Suchzeichenfolge an einer beliebigen Stelle in der Spalte Name dieser Datensätze vorkommt. Filtern mit Sucheingabe
Search( Customers, SearchInput.Text, "Name" ) Die Search-Funktion wird so ähnlich wie der in-Operator verwendet und sucht nach einer Übereinstimmung in der Spalte Name in jedem Datensatz. Sie müssen den Spaltennamen in doppelte Anführungszeichen setzen. Kunden durchsuchen

Sie können Ihre Suche auch so ausweiten, dass sie die Spalte Company und die Spalte Name enthält:

Formel Beschreibung Ergebnis
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Filtert die Customers-Datenquelle nach Datensätzen, in denen entweder die Spalte Name oder die Spalte Company mit der Suchzeichenfolge beginnt (z. B. co). Der ||-Operator ist true, wenn eine StartsWith-Funktion true ist. Kunden filtern beginnt mit
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) Filtert die Customers-Datenquelle nach Datensätzen, in denen entweder die Spalte Name oder die Spalte Company die Suchzeichenfolge (z. B. co) an beliebiger Stelle enthält. Kunden filtern mit Sucheingabe
Search( Customers, SearchInput.Text, "Name", "Company" ) Die Search-Funktion wird so ähnlich wie der in-Operator verwendet und durchsucht die Customers-Datenquelle nach Datensätzen, in denen entweder die Name-Spalte oder die Company-Spalte die Suchzeichenfolge (z. B. co) an beliebiger Stelle enthält. Die Search-Funktion ist einfacher zu lesen und zu schreiben als die Filter-Funktion, wenn Sie mehrere Spalten und mehrere in-Operatoren angeben möchten. Sie müssen die Namen der Spalten in doppelte Anführungszeichen setzen.  Kunden suchen mit Sucheingabe