Funzioni AddColumns, DropColumns, RenameColumns e ShowColumns in PowerAppsAddColumns, DropColumns, RenameColumns, and ShowColumns functions in PowerApps

Trasformano una tabella aggiungendo, rimuovendo, rinominando e selezionando le colonne.Shapes a table by adding, dropping, renaming, and selecting its columns.

PanoramicaOverview

Queste funzioni trasformano una tabella modificando le relative colonne:These functions shape a table by adjusting its columns:

  • Ridurre una tabella che contiene più colonne a una colonna singola per l'uso con funzioni di colonna singola, ad esempio Lower o Abs .Reduce a table that contains multiple columns down to a single column for use with single-column functions, such as Lower or Abs.
  • Aggiungere una colonna calcolata a una tabella, ad esempio, una colonna Total Price che visualizza il risultato della moltiplicazione di Quantity per Unit Price.Add a calculated column to a table (for example, a Total Price column that shows the results of multiplying Quantity by Unit Price).
  • Rinominare una colonna con nomi più significativi, per la visualizzazione agli utenti o da usare nelle formule.Rename a column to something more meaningful, for display to users or for use in formulas.

Una tabella è un valore in PowerApps, così come una stringa o un numero.A table is a value in PowerApps, just like a string or a number. È possibile specificare una tabella come argomento in una formula e le funzioni possono restituire una tabella come risultato.You can specify a table as an argument in a formula, and functions can return a table as a result.

Nota

Le funzioni descritte in questo argomento non modificano la tabella originale.The functions that this topic describes don't modify the original table. Invece, accettano tale tabella come argomento e restituiscono una nuova tabella con la trasformazione applicata.Instead, they take that table as an argument and return a new table with a transform applied. Per altre informazioni, vedere Working with tables (Utilizzo delle tabelle).See working with tables for more details.

Non è possibile modificare le colonne di un'origine dati tramite queste funzioni.You can't modify the columns of a data source by using these functions. È necessario modificare i dati all'origine.You must modify the data at its source. È possibile aggiungere colonne a una raccolta con la funzione Collect .You can add columns to a collection with the Collect function. Per informazioni dettagliate, vedere Working with data sources (Uso delle origini dati).See working with data sources for more details.

DescrizioneDescription

La funzione AddColumns aggiunge una colonna a una tabella e una formula definisce i valori della colonna.The AddColumns function adds a column to a table, and a formula defines the values in that column. Le colonne esistenti rimangano invariate.Existing columns remain unmodified.

La formula viene valutata per ogni record della tabella.The formula is evaluated for each record of the table.

I campi del record attualmente in fase di elaborazione sono disponibili nella formula.Fields of the record currently being processed are available within the formula. È sufficiente farvi riferimento per nome, analogamente a qualsiasi altro valore.You simply reference them by name as you would any other value. È anche possibile fare riferimento alle proprietà del controllo e ad altri valori in tutta l'app.You can also reference control properties and other values from throughout your app. Per informazioni dettagliate, vedere gli esempi seguenti e Utilizzo dell'ambito dei record.For more details, see the examples below and working with record scope.

La funzione DropColumns esclude colonne da una tabella.The DropColumns function excludes columns from a table. Le altre colonne rimangano invariate.All other columns remain unmodified. La funzione DropColumns esclude colonne e la funzione ShowColumns include colonne.DropColumns excludes columns, and ShowColumns includes columns.

Usare la funzione RenameColumns per rinominare una o più colonne di una tabella specificando almeno una coppia di argomenti che specifica il nome di una colonna contenuta nella tabella (il nome precedente che si vuole sostituire) e il nome di una colonna non contenuta nella tabella (il nuovo nome che si vuole usare).Use the RenameColumns function to rename one or more columns of a table by providing at least one argument pair that specifies the name of a column that the table contains (the old name, which you want to replace) and the name of a column that the table doesn't contain (the new name, which you want to use). Il nome precedente deve essere già presente nella tabella, mentre il nuovo nome non deve essere presente.The old name must already exist in the table, and the new name must not exist. Ogni nome di colonna può comparire solo una volta nell'elenco degli argomenti come nome di colonna precedente o come nuovo nome di colonna.Each column name may appear only once in the argument list as either an old column name or a new column name. Per rinominare una colonna con un nome di colonna esistente, eliminare prima la colonna esistente con DropColumns o rinominare la colonna esistente inserendo una funzione RenameColumns all'interno di un'altra funzione.To rename a column to an existing column name, first drop the existing column with DropColumns, or rename the existing column out of the way by nesting one RenameColumns function within another.

La funzione ShowColumns include colonne di una tabella ed esclude tutte le altre.The ShowColumns function includes columns of a table and drops all other columns. È possibile usare ShowColumns per creare una tabella a colonna singola da una tabella a più colonne.You can use ShowColumns to create a single-column table from a multi-column table. ShowColumns include colonne e DropColumns le esclude.ShowColumns includes columns, and DropColumns excludes columns.

Per tutte queste funzioni, il risultato è una nuova tabella con la trasformazione applicata.For all these functions, the result is a new table with the transform applied. La tabella originale non viene modificata.The original table isn't modified. È possibile modificare una tabella esistente con una formula.You can't modify an existing table with a formula. SharePoint, Common Data Service, SQL Server e altre origini dati forniscono strumenti per la modifica delle colonne di elenchi, entità e le tabelle che vengono spesso detta lo schema.SharePoint, Common Data Service, SQL Server, and other data sources provide tools for modifying the columns of lists, entities, and tables, which are often referred to as the schema. Le funzioni in questo argomento solo trasformano una tabella di input, senza modificare l'originale, in una tabella di output per l'utilizzo futuro.The functions in this topic only transform an input table, without modifying the original, into an output table for further use.

Gli argomenti da queste funzioni supportano la delega.The arguments to these functions support delegation. Ad esempio, un filtro funzione usata come argomento per eseguire il pull nelle ricerche di record correlati attraverso tutte le voci, anche se il ' [dbo]. [ AllListings]' origine dati contiene un milione di righe:For example, a Filter function used as an argument to pull in related records searches through all listings, even if the '[dbo].[AllListings]' data source contains a million rows:

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

Tuttavia, l'output di queste funzioni è soggetto al numero massimo di record non delega.However, the output of these functions is subject to the non-delegation record limit. In questo esempio vengono restituiti solo 500 record anche se il RealEstateAgents zdroj dat contiene record 501 o più.In this example, only 500 records are returned even if the RealEstateAgents data source has 501 or more records.

Se si usa AddColumns in questo modo filtro devono effettuare chiamate separate all'origine dati per ognuno dei primi record in RealEstateAgents, in modo che numerosi chatter di rete.If you use AddColumns in this manner, Filter must make separate calls to the data source for each of those first records in RealEstateAgents, which causes a lot of network chatter. Se [dbo]. [ AllListings] è abbastanza piccola e non cambia spesso, è possibile chiamare il raccogliere funzionare in OnStart per memorizzare nella cache l'origine dati nell'app Quando viene avviata.If [dbo].[AllListings] is small enough and doesn't change often, you could call the Collect function in OnStart to cache the data source in your app when it starts. In alternativa, è Impossibile ristrutturare l'app in modo che inserire i record correlati solo quando l'utente li richiede.As an alternative, you could restructure your app so that you pull in the related records only when the user asks for them.

SintassiSyntax

AddColumns( Tabella; NomeColonna1; Formula1 [; NomeColonna2; Formula2; ... ] )AddColumns( Table; ColumnName1; Formula1 [; ColumnName2; Formula2; ... ] )

  • Table - Obbligatorio.Table - Required. Tabella su cui eseguire le operazioni.Table to operate on.
  • ColumnName(s) - Obbligatorio.ColumnName(s) - Required. Nomi delle colonne da aggiungere.Name(s) of the column(s) to add. Per questo argomento è necessario specificare una stringa, ad esempio "Name" tra virgolette doppie.You must specify a string (for example, "Name" with double quotes included) for this argument.
  • Formula: obbligatorio.Formula(s) - Required. Formula da valutare per ogni record della tabella.Formula(s) to evaluate for each record. Il risultato viene aggiunto come valore della nuova colonna corrispondente.The result is added as the value of the corresponding new column. È possibile fare riferimento ad altre colonne della tabella in questa formula.You can reference other columns of the table in this formula.

DropColumns( Tabella; NomeColonna1 [; NomeColonna2; ... ] )DropColumns( Table; ColumnName1 [; ColumnName2; ... ] )

  • Table - Obbligatorio.Table - Required. Tabella su cui eseguire le operazioni.Table to operate on.
  • ColumnName(s) - Obbligatorio.ColumnName(s) - Required. Nomi delle colonne da rimuovere.Name(s) of the column(s) to drop. Per questo argomento è necessario specificare una stringa, ad esempio "Name" tra virgolette doppie.You must specify a string (for example, "Name" with double quotes included) for this argument.

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

  • Table - Obbligatorio.Table - Required. Tabella su cui eseguire le operazioni.Table to operate on.
  • NomeColonnaPrecedente: obbligatorio.OldColumnName - Required. Nome di una colonna da rinominare della tabella originale.Name of a column to rename from the original table. Questo elemento appare per primo nella coppia di argomenti (o per primo in ogni coppia di argomenti se la formula include più coppie).This element appears first in the argument pair (or first in each argument pair if the formula includes more than one pair). Il nome deve essere una stringa, ad esempio "Name" con le virgolette doppie incluse.This name must be a string (for example "Name" with double quotation marks included).
  • NomeColonnaNuova: obbligatorio.NewColumnName - Required. Nome di sostituzione.Replacement name. Questo elemento appare per ultimo nella coppia di argomenti (o per ultimo in ogni coppia di argomenti se la formula include più coppie).This element appears last in the argument pair (or last in each argument pair if the formula includes more than one pair). Per questo argomento è necessario specificare una stringa, ad esempio "Customer Name" con le virgolette doppie incluse.You must specify a string (for example, "Customer Name" with double quotation marks included) for this argument.

ShowColumns( Tabella; NomeColonna1 [; NomeColonna2; ... ] )ShowColumns( Table; ColumnName1 [; ColumnName2; ... ] )

  • Table - Obbligatorio.Table - Required. Tabella su cui eseguire le operazioni.Table to operate on.
  • ColumnName(s) - Obbligatorio.ColumnName(s) - Required. Nomi delle colonne da includere.Name(s) of the column(s) to include. Per questo argomento è necessario specificare una stringa, ad esempio "Name" tra virgolette doppie.You must specify a string (for example, "Name" with double quotes included) for this argument.

EsempiExamples

Gli esempi riportati di seguito usano l'origine dati IceCreamSales, che contiene i dati della tabella seguente:The examples in this section use the IceCreamSales data source, which contains the data in this table:

Nessuno di questi esempi modifica l'origine dati IceCreamSales.None of these examples modify the IceCreamSales data source. Ogni funzione trasforma il valore dell'origine dati come tabella e restituisce tale valore come risultato.Each function transforms the value of the data source as a table and returns that value as the result.

FormulaFormula DescrizioneDescription RisultatoResult
AddColumns( IceCreamSales; "Revenue"; UnitPrice * QuantitySold )AddColumns( IceCreamSales; "Revenue"; UnitPrice * QuantitySold ) Aggiunge la colonna Revenue al risultato.Adds a Revenue column to the result. Per ogni record, viene calcolato il valore UnitPrice * QuantitySold e il risultato viene inserito nella nuova colonna.For each record, UnitPrice * QuantitySold is evaluated, and the result is placed in the new column.
DropColumns( IceCreamSales; "UnitPrice" )DropColumns( IceCreamSales; "UnitPrice" ) Esclude la colonna UnitPrice dal risultato.Excludes the UnitPrice column from the result. Usare questa funzione per escludere colonne e usare ShowColumns per includerle.Use this function to exclude columns, and use ShowColumns to include them.
ShowColumns( IceCreamSales; "Flavor" )ShowColumns( IceCreamSales; "Flavor" ) Include solo la colonna Flavor nel risultato.Includes only the Flavor column in the result. Usare questa funzione per includere colonne e usare DropColumns per escluderle.Use this function include columns, and use DropColumns to exclude them.
RenameColumns( IceCreamSales; "UnitPrice"; "Price")RenameColumns( IceCreamSales; "UnitPrice"; "Price") Rinomina il UnitPrice colonna nel risultato.Renames the UnitPrice column in the result.
RenameColumns( IceCreamSales; "UnitPrice"; "Price"; "QuantitySold"; "Number")RenameColumns( IceCreamSales; "UnitPrice"; "Price"; "QuantitySold"; "Number") Rinomina le colonne UnitPrice e QuantitySold nel risultato.Renames the UnitPrice and QuantitySold columns in the result.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales; "Revenue";
UnitPrice * QuantitySold );
"UnitPrice"; "Price" );
"Quantity" )
DropColumns(
RenameColumns(
AddColumns( IceCreamSales; "Revenue";
UnitPrice * QuantitySold );
"UnitPrice"; "Price" );
"Quantity" )
Esegue le trasformazioni di tabella seguenti nell'ordine, a partire dall'interno della formula:Performs the following table transforms in order, starting from the inside of the formula:
  1. Aggiunge una colonna Revenue basata sul calcolo per ogni record di UnitPrice * Quantity.Adds a Revenue column based on the per-record calculation of UnitPrice * Quantity.
  2. Rinomina UnitPrice in Price.Renames UnitPrice to Price.
  3. Esclude la colonna Quantity.Excludes the Quantity column.
Si noti che l'ordine è importante.Note that order is important. Ad esempio, non è possibile eseguire calcoli con UnitPrice dopo che la colonna è stata rinominata.For example, we can't calculate with UnitPrice after it has been renamed.

Procedura dettagliataStep by step

È possibile provare alcuni esempi da più indietro in questo argomento.Let's try some of the examples from earlier in this topic.

  1. Creare una raccolta tramite l'aggiunta di un pulsante controllo e l'impostazione relativa OnSelect su questa formula:Create a collection by adding a Button control and setting its OnSelect property to this formula:

    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. Eseguire la formula selezionando il pulsante mentre si tiene premuto il tasto Alt.Run the formula by selecting the button while holding down the Alt key.

  3. Aggiungere un secondo sul pulsante , impostarne relativo OnSelect su questa formula, quindi eseguirlo:Add a second Button control, set its OnSelect property to this formula, and then run it:

    ClearCollect( FirstExample; 
        AddColumns( IceCreamSales; "Revenue"; UnitPrice * QuantitySold )
    ) 
    
  4. Nel File dal menu raccoltee quindi selezionare IceCreamSales per visualizzare tale raccolta.On the File menu, select Collections, and then select IceCreamSales to show that collection.

    Come illustrato nell'immagine, la seconda formula non modifica questa raccolta.As this graphic shows, the second formula didn't modify this collection. Il AddColumns funzione usata IceCreamSales come argomento di sola lettura; la funzione non modifica la tabella a cui fa riferimento questo argomento.The AddColumns function used IceCreamSales as a read-only argument; the function didn't modify the table to which that argument refers.

    Visualizzatore di raccolta che mostra tre record della raccolta che non include una colonna di ricavi Sales Ice Cream

  5. Selezionare FirstExample.Select FirstExample.

    Come illustrato nell'immagine, la seconda formula ha restituito una nuova tabella con la colonna aggiunta.As this graphic shows, the second formula returned a new table with the added column. Il ClearCollect funzione acquisito la nuova tabella nel FirstExample insieme, aggiungendo un elemento alla tabella originale come propagata tramite la funzione senza modificare l'origine:The ClearCollect function captured the new table in the FirstExample collection, adding something to the original table as it flowed through the function without modifying the source:

    Visualizzatore di raccolta che mostra tre record della raccolta primo esempio che include una nuova colonna di ricavi