LookUp() Syntax für Power Automate Desktop fx

So funktionieren deine Tabellen-Lookups in Automate Desktop in fx Expressions

Power Automate Desktop ist eine mächtige Software für die Erledigung von Everyday-Office-Tasks oder einmaligen Arbeiten wie Migrationen oder Transformationen. Innerhalb von Power Automate Desktop Flows ist die LookUp() dabei ähnlich wichtig, wie sein Excel Pendant VLOOKUP(), dt. SVERWEIS(). Weil die Syntax der LookUp() Funktion aber etwas weniger intuitiv ist, wollen wir sie in diesem Artikel einmal kurz erläutern.

LookUp() Power Automate Anwendungsfall

Wir nehmen dafür ein Beispiel aus dem Alltag her. Auf der problematischen Seite haben wir eine Sharepoint Liste, die in eine fehlerhafte Spaltenbelegung im Bereich „project“ hat. Statt der Projektnamens wird die Projekt-ID gezeigt. In einer weiteren Spalte der Sharepoint-Liste steht bereits die project_id als Referenz-Wert.

Die korrekte project_id zu project Zuordnung steht in einer CSV Tabelle, die wir auf dem PC abgelegt haben. Die CSV-Tabelle zeigt ausschließlich die Spalte project_id und project_name.

D.h. für unseren Flow:

  1. loopen wir über die Sharepoint Liste
  2. extrahieren die project_id aus der Sharepoint-Listen-Zeile
  3. Suchen die ID für das Projekt in der CSV-Tabelle
  4. Wollen einen korrekten Projektnamen (project_name) im Gegenzug bekommen (für die project Spalte)
  5. Ersetzen wir den project-Wert mit dem project_name Wert aus der CSV Tabelle (nicht Teil der Anleitung)
Demo Lookup Flow Idea Power Automate Desktop

Hier einmal den Start des Flows in der Übersicht.

PAD Lookup Flow Start

LookUp() Syntax für den Power Automate Desktop Flow

Zoom In auf den Lookup-Teil des Power Automate Flows.

PAD Lookup Flow correct Project

Die Syntax hier ist nämlich etwas kontra-intuitiv. Die Formel verwendet folgende Syntax in Pseudo-Code:

=
LookUp(
  Verwende den CSV Mapping Tabelle, 
  Spalte "project_id" aus CSV Tabelle "gleich"
  Wert aus Sharepoint Liste "project_id",
  Return passenden "project_name" aus CSV Tabelle
)

Für unseren Sharepoint + CSV Case würde das bedeuten:

=
LookUp(
  CSVTable, 
  CSVTable[project_id] = SharepointList.project_id.Value,
  return CSVTable[project_name]
)

Die endgültige Formel hat aber so auszusehen:

=
LookUp(
  CSVTable, 
  ThisRecord.Value.project_id = SharepointProjectId,
  ThisRecord.Value.project_name
)
LookUp PAD Formel Beispiel

Du siehst bereits: Die Lookup-Funktion verwendet eine seltsame „ThisRecord“ Syntax für die jeweiligen Spalten. Aber gut: Jetzt hast du es einmal gesehen!

Zu beachten: LookUp() Verwendung in Power Automate Desktop

Beachte bitte auch folgende Besonderheit bei der Verwendung von LookUp() in einem Power Automate Desktop Flow:

  1. In diesem Beispiel handelt es sich um die fx Expression Syntax in Power Automate Desktop. Die Syntax ist relativ neu (wir reden hier von Jahren und nicht Tagen). Die Syntax für Legacy Flows ist abweichend.
  2. In diesem Bespiel wird ein Wert zurückgegeben. Es können auch ganze Zeilen zurückgegeben werden, wenn der dritte Parameter der Funktion unbestückt bleibt.
  3. Die LookUp() Funktion gibt den Wert des ersten Matches (oben) wieder. D.h. LookUp-Operationen sind nichts für nicht-eindeutige Mapping Table (Many-To-Many Relationships).
  4. Der geladene CSVFile wird via einer Variablen-Action noch einmal umgewandelt, damit der LookUp funktioniert.
  5. Sowohl das L als auch das U werden in der LookUp() Funktion groß geschrieben. Für den Fall, dass die korrekten Spaltennamen keine Ergebnisse liefern.

Hast du auch so viel Spaß mit Power Automate Desktop wie wir? Wir können deiner Organisation auch helfen Power Automate stärker in den Arbeitsalltag zu integrieren!