Funktionen „AddColumns“, „DropColumns“, „RenameColumns“ und „ShowColumns“

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

Formen eine Tabelle durch Hinzufügen, Verwerfen, Umbenennen und Auswählen der Spalten.

Überblick

Diese Funktionen formen eine Tabelle, indem sie deren Spalten anpassen:

  • Verringern Sie mehrere Spalten in einer Tabelle auf einige Spalten, um sie mit Funktionen wie Lower oder Abs zu verwenden, die sich nur auf einzelne Spalten beziehen.
  • Fügen Sie einer Tabelle eine berechnete Spalte hinzu (z. B. die Spalte Total Price, die das Ergebnis der Multiplikation von Quantity und Unit Price anzeigt).
  • Geben Sie einer Spalte für die Benutzer oder die Verwendung in Formeln einen aussagekräftigeren Namen.

Tabellen stellen in Power Apps einen Wert dar, genau wie Zeichenfolgen oder Zahlen. Sie können eine Tabelle als Argument in einer Formel angeben, und Funktionen können eine Tabelle als Ergebnis zurückgeben.

Notiz

Die in diesem Thema beschriebenen Funktionen ändern die ursprüngliche Tabelle nicht. Stattdessen nehmen sie diese Tabelle als Argument und geben eine neue Tabelle mit einer angewendeten Transformation zurück. Weitere Details erfahren Sie unter Arbeiten mit Tabellen.

Die Spalten einer Datenquelle können durch diese Funktionen nicht geändert werden. Daten müssen an ihrer Quelle geändert werden. Sie können einer Sammlung mit der Collect -Funktion Spalten hinzufügen. Weitere Informationen finden Sie unter Arbeiten mit Datenquellen.

Beschreibung

Die AddColumns-Funktion fügt einer Tabelle eine Spalte hinzu, und eine Formel definiert die Werte in dieser Spalte. Vorhandene Spalten bleiben unverändert.

Die Formel wird für jeden Datensatz der Tabelle ausgewertet.

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 DropColumns-Funktion schließt Spalten aus einer Tabelle aus. Alle anderen Spalten bleiben unverändert. DropColumns schließt Spalten aus, und ShowColumns schließt Spalten ein.

Verwenden Sie die RenameColumns-Funktion, um eine oder mehrere Spalten einer Tabelle mithilfe von mindestens einem Argumentpaar, das den Namen einer in der Tabelle enthaltenen Spalte (der alte Name, den Sie ersetzen möchten) und den Namen einer in der Tabelle nicht enthaltenen Spalte (der neue Name, den Sie verwenden möchten) angibt, umzubenennen. Der alte Name muss bereits in der Tabelle vorhanden sein, und der neue Name darf noch nicht vorhanden sein. Jeder Spaltenname darf nur einmal in der Argumentliste angezeigt werden, entweder als alter Spaltenname oder als neuer Spaltenname. Um eine Spalte in eine vorhandene Spalte umzubenennen, verwerfen Sie zuerst die vorhandene Spalte mit einem Klick auf DropColumns, oder benennen Sie die vorhandene Spalte separat um, indem Sie eine RenameColumns-Funktion innerhalb einer anderen schachteln.

Die ShowColumns-Funktion schließt Spalten einer Tabelle ein und verwirft alle anderen Spalten. Sie können ShowColumns verwenden, um eine einspaltige Tabelle aus einer Tabelle mit mehreren Spalten zu erstellen. ShowColumns schließt Spalten ein, und DropColumns schließt Spalten aus.

Das Ergebnis all dieser Funktionen ist eine neue Tabelle mit angewendeter Transformation. Die ursprüngliche Tabelle wird nicht geändert. Sie können eine vorhandene Tabelle nicht mit einer Formel ändern. SharePoint, Microsoft Dataverse, SQL Server und andere Datenquellen bieten Tools zum Ändern der Spalten von Listen, Tabellen und Tabellen, die oft als Schema bezeichnet werden. Die Funktionen in diesem Thema transformieren nur eine Eingabetabelle, ohne das Original zu ändern, zur weiteren Verwendung in eine Ausgabetabelle.

Die Argumente für diese Funktionen unterstützen die Delegierung. Wenn zum Beispiel eine Filter-Funktion als Argument zum Abrufen verwandter Datensätze verwendet wird, durchsucht sie alle Einträge, auch wenn die '[dbo].[AllListings]'-Datenquelle eine Million Zeilen enthält:

AddColumns( RealEstateAgents,
   "Listings",
   Filter(  '[dbo].[AllListings]', ListingAgentName = AgentName )
)

Die Ausgabe dieser Funktionen unterliegt jedoch dem Datensatzlimit für Nichtdelegierung. In diesem Beispiel werden nur 500 Datensätze zurückgegeben, selbst wenn die RealEstateAgents-Datenquelle 501 oder mehr Datensätze hat.

Wenn Sie AddColumns auf diese Weise verwenden, muss Filter für jeden dieser ersten Datensätze in RealEstateAgents die Datenquelle separat aufrufen, was viel Datenverkehr verursacht. Wenn [dbo](.[AllListings] klein genug ist und sich nicht oft ändert, könnte die Collect-Funktion in OnStart aufgerufen werden, um die Datenquelle in Ihrer App zwischenzuspeichern, wenn sie startet. Alternativ können Sie Ihre App so umstrukturieren, dass Sie die zugehörigen Datensätze nur dann abrufen, wenn der Benutzer danach fragt.

Syntax

AddColumns( Table, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • Table – Erforderlich. Die zu verarbeitende Tabelle.
  • ColumnName(s) – Erforderlich. Name(n) der hinzuzufügenden Spalte(n). Sie müssen für dieses Argument eine Zeichenfolge angeben (z. B. "Name" in doppelten Anführungszeichen). Sie müssen die Spaltennamen anhand ihres logischen Namens angeben. Intellisense schlägt nur logische Namen vor. Beim logischen Namen wird die Groß-/Kleinschreibung beachtet.
  • Formel(n) – Erforderlich. Die für jeden Datensatz auszuwertende(n) Formel(n). Das Ergebnis wird als der Wert der entsprechenden neuen Spalte hinzugefügt. Sie können in dieser Formel auf andere Spalten der Tabelle verweisen.

DropColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table – Erforderlich. Die zu verarbeitende Tabelle.
  • ColumnName(s) – Erforderlich. Name(n) der zu verwerfenden Spalte(n). Sie müssen für dieses Argument eine Zeichenfolge angeben (z. B. "Name" in doppelten Anführungszeichen). Sie müssen die Spaltennamen anhand ihres logischen Namens angeben. Intellisense schlägt nur logische Namen vor. Beim logischen Namen wird die Groß-/Kleinschreibung beachtet.

RenameColumns( Table, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )

  • Table – Erforderlich. Die zu verarbeitende Tabelle.
  • OldColumnName – Erforderlich. Name einer umzubenennenden Spalte aus der ursprünglichen Tabelle. Dieses Element wird als erstes in dem Argumentpaar angezeigt (oder als erstes in jedem Argumentpaar, wenn die Formel mehr als ein Paar enthält). Der Name muss eine Zeichenfolge sein (z. B. "Name" in doppelten Anführungszeichen). Sie müssen die Spaltennamen anhand ihres logischen Namens angeben. Intellisense schlägt nur logische Namen vor. Beim logischen Namen wird die Groß-/Kleinschreibung beachtet.
  • NewColumnName – Erforderlich. Der neue Name. Dieses Element wird als letztes in dem Argumentpaar angezeigt (oder als letztes in jedem Argumentpaar, wenn die Formel mehr als ein Paar enthält). Sie müssen für dieses Argument eine Zeichenfolge angeben (z. B. "Customer Name" in doppelten Anführungszeichen). Sie müssen die Spaltennamen anhand ihres logischen Namens angeben. Intellisense schlägt nur logische Namen vor. Beim logischen Namen wird die Groß-/Kleinschreibung beachtet.

ShowColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table – Erforderlich. Die zu verarbeitende Tabelle.
  • ColumnName(s) – Erforderlich. Name(n) der einzuschließenden Spalte(n). Sie müssen für dieses Argument eine Zeichenfolge angeben (z. B. "Name" in doppelten Anführungszeichen). Sie müssen die Spaltennamen anhand ihres logischen Namens angeben. Intellisense schlägt nur logische Namen vor. Beim logischen Namen wird die Groß-/Kleinschreibung beachtet.

Beispiele

In den Beispielen in diesem Abschnitt wird die Datenquelle IceCreamSales verwendet, die die Daten in dieser Tabelle enthält:

Eiscreme-Beispiel

Keines dieser Beispiele verändert die Datenquelle IceCreamSales. Jede Funktion transformiert den Wert der Datenquelle in eine Tabelle und gibt den Wert als Ergebnis zurück.

Formel Beschreibung Ergebnis
AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold ) Fügt dem Ergebnis die Spalte Revenue hinzu. UnitPrice * QuantitySold wird für jeden Datensatz ausgewertet, und das Ergebnis wird in die neue Spalte eingefügt. Ergebnis mit Erdbeere, Schokolade und Vanille
DropColumns( IceCreamSales, "UnitPrice" ) Schließt die Spalte UnitPrice aus dem Ergebnis aus. Mit dieser Funktion können Spalten ausgeschlossen und mit ShowColumns eingeschlossen werden. Ergebnis mit Erdbeere, Schokolade, Vanille, die nur die Spalte QuantitySold enthält
ShowColumns( IceCreamSales, "Flavor" ) Schließt nur die Spalte Flavor im Ergebnis ein. Mithilfe dieser Funktion können Sie Spalten einschließen und mithilfe der Funktion DropColumns ausschließen. Nur Geschmacksspalte
RenameColumns( IceCreamSales, "UnitPrice", "Price") Benennt die Spalte UnitPrice im Ergebnis um. Ergebnis mit Geschmack, Preis und Umsatz
RenameColumns( IceCreamSales, "UnitPrice", "Price", "QuantitySold", "Number") Benennt die Spalten UnitPrice und QuantitySold im Ergebnis um. Ergebnis mit 3 Eissorten und Spalten als Geschmack, Preis, Umsatz
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, Umsatz,
UnitPrice * verkaufte Menge ),
„UnitPrice“, „Preis“),
„Menge“)
Führt der Reihe nach die folgenden Tabellentransformationen aus, beginnend im Kern der Formel:
  1. Fügt eine Revenue-Spalte basierend auf der Berechnung von UnitPrice * Quantity pro Datensatz hinzu.
  2. Benennt UnitPrice in Price um.
  3. Schließt die Spalte Quantity aus.
Beachten Sie, dass diese Reihenfolge wichtig ist. Zum Beispiel kann UnitPrice nach der Umbenennung nicht mehr berechnet werden.
IceCream-Beispiel für Einzelpreis

Schritt für Schritt

Versuchen wir einige der vorherigen Beispiele aus diesem Thema.

  1. Erstellen Sie eine Sammlung, indem Sie ein Button-Steuerelement hinzufügen und dessen OnSelect-Eigenschaft auf folgende Formel festlegen:

    ClearCollect( IceCreamSales,
       Table(
           { Flavor: "Strawberry", UnitPrice: 1.99, QuantitySold: 20 },
           { Flavor: "Chocolate", UnitPrice: 2.99, QuantitySold: 45 },
           { Flavor: "Vanilla", UnitPrice: 1.50, QuantitySold: 35 }
       )
    )
    
  2. Führen Sie die Formel aus, indem Sie die Schaltfläche auswählen und die ALT-Taste gedrückt halten.

  3. Fügen Sie ein zweites Button-Steuerelement hinzu, legen Sie dessen OnSelect-Eigenschaft auf diese Formel fest und führen Sie es dann aus:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold )
    )
    
  4. Klicken Sie im Menü Datei auf Sammlungen und wählen Sie dann IceCreamSales aus, um diese Sammlung anzuzeigen.

    Wie diese Grafik zeigt, hat die zweite Formel diese Sammlung nicht geändert. Die AddColumns-Funktion verwendet IceCreamSales als schreibgeschütztes Argument. Die Funktion hat die Tabelle, auf die sich dieses Argument bezieht, nicht geändert.

    Sammlungsbetrachter, der drei Datensätze der Ice Cream Sales-Sammlung anzeigt, die keine Revenue-Spalte enthält

  5. Wählen Sie FirstExample aus.

    Wie diese Grafik zeigt, hat die zweite Formel eine neue Tabelle mit der hinzugefügten Spalte zurückgegeben. Die ClearCollect-Funktion erfasste die neue Tabelle in der FirstExample-Sammlung, die der ursprünglichen Tabelle etwas hinzufügt, während sie durch die Funktion floss, ohne die Quelle zu ändern:

    Sammlungsbetrachter, der drei Datensätze der First Example-Sammlung anzeigt, die eine neue Revenue-Spalte enthält

Ordnen Sie Spalten in einer Komponente zu

Siehe Spalten zuordnen