De functies Concat en Concatenate in Power Apps

Voegt afzonderlijke tekenreeksen of tekst en tekenreeksen samen in tabellen.

Beschrijving

De functie Concatenate voegt afzonderlijke tekenreeksen en een tabel met één kolom met tekenreeksen samen. Als u deze functie gebruikt met afzonderlijke tekenreeksen, is deze gelijkwaardig aan het gebruik van de operator &.

De functie Concat voegt de resultaten samen van een formule die is toegepast op alle records van een tabel, wat resulteert in een enkele tekenreeks. Gebruik deze functie om een overzicht van de tekenreeksen van een tabel te maken, zoals de functie Sum doet voor getallen.

Velden van de momenteel verwerkte record zijn beschikbaar in de formule. Gebruik de operator ThisRecord of verwijs gewoon met de naam naar velden, zoals u dat ook bij andere waarden zou doen. De operator As kan ook worden gebruikt om een naam te geven aan de record die wordt verwerkt, wat kan helpen uw formule begrijpelijker te maken en geneste records toegankelijk te maken. Meer informatie vindt u in de voorbeelden hieronder en in werken met recordbereik.

Gebruik de functie Split of MatchAll om een tekenreeks te splitsen in een tabel met subtekenreeksen.

Syntaxis

Concat( Tabel, Formule, scheidingsteken)

  • Table: vereist. De tabel waarop de bewerking wordt toegepast.
  • Formule - vereist. De formule om toe te passen op alle records van de tabel.
  • Scheidingsteken - Optioneel. Een tekstwaarde die moet worden ingevoegd tussen aaneengeschakelde rijen van de tabel.

Concatenate( String1 [, String2, ...] )

  • String(s): vereist. Een combinatie van afzonderlijke tekenreeksen of een tabel met één kolom met tekenreeksen.

Voorbeelden

In de voorbeelden in deze sectie worden deze globale variabelen gebruikt:

  • FirstName = "Jane"
  • LastName = "Doe"
  • Products = Tabel met twee kolommen en vier rijen.

Als u deze globale variabelen in een app wilt maken, voegt u een besturingselement Button in en stelt u de eigenschap OnSelect van dit element in op deze formule:

Set( FirstName, "Jane" ); Set( LastName, "Doe" );
Set( Products,
    Table(
        { Name: "Violin", Type: "String" },
        { Name: "Cello", Type: "String" },
        { Name: "Trumpet", Type: "Wind" }
    )
)

Selecteer de knop (door erop te klikken terwijl u de Alt-toets ingedrukt houdt).

Concatenate-functie en de &-operator

Voor deze voorbeelden stelt u de eigenschap Tekst van een besturingselement Label in op een formule uit de eerste kolom van de volgende tabel.

Formule Beschrijving Resultaat
Concatenate( LastName, ", ", FirstName ) Voegt de waarde in LastName, de tekenreeks ", " (een komma, gevolgd door een spatie) en de waarde in FirstName samen. "Doe, Jane"
LastName & ", " & FirstName Hetzelfde als het vorige voorbeeld, behalve met de &-operator in plaats van de functie. "Doe, Jane"
Concatenate( FirstName, " ", LastName ) Voegt de waarde in FirstName, de tekenreeks " " (één spatie) en de waarde in LastName samen. "Jane Doe"
FirstName & " " & LastName Hetzelfde als het vorige voorbeeld, maar nu met de &-operator in plaats van de functie. "Jane Doe"

Samenvoegen met een tabel met één kolom

Voor dit voorbeeld voegt u een leeg, verticaal besturingselement van het type Gallery toe. Stel de eigenschap Items ervan in op de formule in de volgende tabel en voeg een label toe aan de galeriesjabloon.

Formule Beschrijving Resultaat
Concatenate( "Name: ", Products.Name, ", Type: ", Products.Type ) Voor elke record in de tabel Products worden de tekenreeks "Name: ", de naam van het product, de tekenreeks ", Type: " en het type product samengevoegd. Tabel met producten.

Functie Concat

Voor deze voorbeelden stelt u de eigenschap Tekst van een label in op een formule uit de eerste kolom van de volgende tabel.

Formule Beschrijving Resultaat
Concat( Products, Name & ", " ) Evalueert de expressie Name & ", " voor elke record van Products en voegt de resultaten samen in één teksttekenreeks. "Violin, Cello, Trumpet, "
Concat( Filter( Products, Type = "String" ), Name & ", " ) Evalueert de formule Name & ", " voor elke record van Products die voldoet aan het filter Type = "String" en voegt de resultaten samen in één tekenreeks. "Violin, Cello, "

Het einde afkappen

De laatste twee voorbeelden bevatten een extra "," aan het eind van het resultaat. De functie voegt een komma en een spatie toe aan de Name-waarde van elke record in de tabel, dus ook aan de laatste record.

In sommige gevallen is dat niet zo erg. Een scheidingsteken van één spatie wordt bijvoorbeeld niet weergegeven als u het resultaat in een label weergeeft. Als u deze extra tekens wilt verwijderen, gebruikt u de functie Left of Match.

Voor deze voorbeelden stelt u de eigenschap Tekst van een label in op een formule uit de eerste kolom van de volgende tabel.

Formule Beschrijving Resultaat
Left( Concat( Products, Name & ", " ), Len( Concat( Products, Name & ", " ) ) - 2 ) Retourneert het resultaat van Concat maar verwijdert de laatste twee tekens die het overbodige scheidingsteken vormen. "Violin, Cello, Trumpet"
Match( Concat( Products, Name & ", " ), "^(?<trim>.*), $" ).trim Retourneert de tekens van Concat vanaf het begin van de teksttekenreeks (^) tot het einde ($), maar bevat niet de ongewenste komma en spatie aan het einde. "Violin, Cello, Trumpet"

Split en MatchAll

Als u Concat gebruikt met een scheidingsteken, kunt u de bewerking omkeren door de functies Split en MatchAll te combineren.

Voor deze voorbeelden voegt u een lege, verticale galerie toe, stelt u de eigenschap Items ervan in op een formule in de volgende tabel en voegt u een label toe aan de galeriesjabloon.

Formule Beschrijving Resultaat
Split( Concat( Products, Name & ", " ), ", " ) Splitst de teksttekenreeks met het scheidingsteken ",". De tekenreeks eindigt met een komma en een spatie, dus de laatste rij in het resultaat is een lege tekenreeks. Tabel met laatste rij leeg.
MatchAll( Concat( Products, Name & ", " ), "[^\s,]+" ).FullMatch Splitst de tekenreeks op basis van tekens die geen spaties of komma's zijn. Deze formule verwijdert de extra komma en spatie aan het einde van de tekenreeks. Tafel met slechts 3 rijen.