Excel kann eine URL nicht mit einer Formel kürzen. WEBSERVICE sendet eine GET-Anfrage ohne Header und Body, während eine moderne Shortener-API einen POST mit einem Authorization-Header und JSON benötigt. Außerdem ist die Funktion nur unter Windows verfügbar. Jedes formularbasierte Tutorial, das Sie finden, basiert auf einem Dienst, der die lange URL als Query-Parameter akzeptiert hat. Diese Dienste gibt es nicht mehr.
Die eigentliche Frage lautet also, welcher der drei funktionierenden Wege zu Ihrem Blatt passt: ein Office Script, ein Power-Automate-Flow oder ein Massenimport mit Kopieren und Einfügen. Die Antwort hängt fast vollständig davon ab, wie oft das Blatt ausgeführt werden muss.
Weg eins: Ein Office Script
Office Scripts führen TypeScript für die Arbeitsmappe aus und können mit fetch eine externe API aufrufen. Das ist der richtige Weg für ein Blatt, das Sie öffnen und manuell ausführen.
async function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const rows = sheet.getUsedRange().getValues();
for (let i = 1; i < rows.length; i++) {
const destination = String(rows[i][0]);
if (!destination || rows[i][1]) continue; // skip blanks and already-done rows
const response = await fetch("https://api.elido.app/v1/links", {
method: "POST",
headers: {
Authorization:
"Bearer " + workbook.getWorksheet("Config").getRange("B1").getText(),
"Content-Type": "application/json",
"Idempotency-Key": destination, // stable per row, so a re-run creates nothing
},
body: JSON.stringify({ destination_url: destination }),
});
const link = (await response.json()) as { short_url: string };
sheet.getCell(i, 1).setValue(link.short_url);
}
}
Drei Einschränkungen greifen nacheinander.
Die wichtigste: externe fetch-Aufrufe funktionieren, wenn das Script in Excel ausgeführt wird, und nicht, wenn Power Automate es ausführt. Ein Script, das perfekt über die Registerkarte Automate funktioniert, schlägt mit fetch is not defined fehl, sobald ein Flow es auslöst. Diese Überraschung hat schon viele Menschen einen Nachmittag gekostet.
Es gibt keine Speicherung von Geheimnissen und keinen OAuth-Fluss. Der Schlüssel liegt also im Script oder in einer Zelle. Ihn wie oben aus einem Config-Blatt zu lesen, ist etwas besser, weil das Script ohne den Schlüssel geteilt werden kann. Die Arbeitsmappe selbst ist damit aber ein Zugangstoken.
Die Ziel-API muss den Aufruf vom Ursprung des Scripts zulassen. Die Dokumentation zu Office Scripts nennt eine CORS-Anforderung für externe Ressourcen. Die meisten öffentlichen APIs erfüllen sie, manche internen APIs jedoch nicht.
Die Zeile if (rows[i][1]) continue sorgt dafür, dass das Script sicher zweimal ausgeführt werden kann: Zeilen, die bereits einen Kurzlink enthalten, werden übersprungen, und der Idempotenzschlüssel deckt den Rest ab.
Weg zwei: Ein Power-Automate-Flow
Für alles, was nach einem Zeitplan laufen soll, ist ein Flow die verlässliche Antwort, weil er unabhängig davon ausgeführt wird, ob jemand die Arbeitsmappe geöffnet hat.
Der Aufbau: ein Zeitplan oder Dateiauslöser, List rows present in a table aus dem Excel-Connector, eine Für-jeden-Schleife mit der HTTP-Aktion zum Senden an den Links-Endpunkt und anschließend Update a row, um den Kurzlink zurückzuschreiben.
Vor dem Erstellen sollten Sie zwei Dinge wissen. Die allgemeine HTTP-Aktion ist ein Premium-Connector. Dieser Weg hängt daher von Ihrer Lizenz ab, nicht von Ihren Fähigkeiten. Außerdem kann der Flow den API-Schlüssel in einer sicheren Eingabe speichern oder aus Azure Key Vault beziehen. Das ist gegenüber dem Office-Script-Weg eine echte Verbesserung: Die Zugangsdaten liegen nicht mehr in einer Datei, die sich Menschen gegenseitig per E-Mail schicken.
Wenn der Flow Hunderte Zeilen verarbeitet, setzen Sie ein Parallelitätslimit für die Für-jeden-Schleife. Die standardmäßige parallele Ausführung reicht aus, um ein API-Ratenlimit auszulösen. Die Lösung ist eine Einstellung statt einer Neuentwicklung.
Weg drei: Exportieren, per Massenimport einfügen, zurückkopieren
Für einen einmaligen Vorgang ist dieser Weg in der Zeit bis zum fertigen Ergebnis schneller als die beiden anderen. Exportieren Sie die Zielspalte als CSV, führen Sie sie durch den Massenimport des Shorteners, laden Sie das Ergebnis herunter und fügen Sie die Kurzlinks neben den Originalen ein.
Kein Premium-Connector, kein Schlüssel in einer Arbeitsmappe, kein zu wartendes Script. Der Leitfaden zum Massenimport aus Google Sheets behandelt das Dateiformat. Es ist unabhängig davon gleich, welche Tabellenkalkulation die Datei erzeugt hat. Massenhafte QR-Code-Erstellung behandelt die Variante, bei der jede Zeile zusätzlich einen druckbaren Code benötigt.
Die Entscheidungsregel ist einfach. Einmalig ist ein Kopieren-und-Einfügen-Vorgang. Jeden Montag ist es ein Flow. Immer dann, wenn jemand die Arbeitsmappe öffnet, ist es ein Office Script.
Möchten Sie zuerst den Weg über das Einfügen ausprobieren? Erstellen Sie ein Konto im kostenlosen Tarif, importieren Sie eine CSV-Datei mit fünf Zeilen und prüfen Sie, ob sich der Aufbau der Automatisierung überhaupt lohnt.
Warum eine Formel trotzdem das falsche Werkzeug wäre
Nehmen wir an, WEBSERVICE könnte POST senden. Trotzdem wäre die Funktion das falsche Werkzeug, weil Formeln nach Excels Zeitplan und nicht nach Ihrem neu berechnet werden. Öffnen Sie die Arbeitsmappe, und jede Zeile sendet ihre Anfrage erneut. Ohne einen Idempotenzschlüssel wird bei jedem Öffnen pro Zeile ein doppelter Link erstellt. Mit einem Schlüssel ist es lediglich ein Schwall sinnloser Anfragen, der Ihr Ratenlimit verbraucht.
Alles, was eine Ressource erstellt, gehört in Code, der ausgeführt wird, wenn Sie es anweisen, nicht in eine Zelle, die neu berechnet wird, wenn die Anwendung es für richtig hält. Das sollten Sie auch über diesen Fall hinaus verinnerlichen: Aus demselben Grund bekommen Menschen Probleme, wenn sie RAND() oder NOW() in ein Blatt einbauen, das einen Bericht speist.
Das Ergebnis zurück ins Blatt schreiben
Unabhängig vom gewählten Weg sollten Sie vier statt zwei Spalten schreiben: die ursprüngliche URL, den Kurzlink, den Slug und eine Status- oder Fehlermeldung. Ein Vorgang, der nur zur Hälfte abgeschlossen wurde, ist dann offensichtlich und kann erneut ausgeführt werden, statt als Spalte mit unbemerkten Lücken zu enden.
Bewahren Sie die Datei auf. Wenn jemand in drei Monaten fragt, welcher Link in welcher Mailing-Kampagne verwendet wurde, ist das Blatt die Antwort. Die Daten aus dem Dashboard neu aufzubauen wäre aufwendiger, als die Datei zu behalten. Wenn dieselben Links daneben auch Klickdaten benötigen, behandelt Klicks auf Links tracken den Export.
Die Cornerstone-Serie lesen
Dieser Beitrag gehört zum Engineering-Cluster. Beginnen Sie mit dem Leitfaden zur kostenlosen URL-Shortener-API, um den Aufbau der Anfrage kennenzulernen, und lesen Sie anschließend Ratenlimits und Idempotenz, um sich in einer Schleife korrekt zu verhalten. Die PowerShell-Version desselben CSV-Jobs finden Sie unter Eine URL mit PowerShell kürzen.
Verwandte Beiträge im Blog
Häufig gestellte Fragen
Kann ich eine URL mit einer Excel-Formel kürzen?
Nicht mit einer modernen Shortener-API. WEBSERVICE sendet eine GET-Anfrage ohne Header, kann sich daher nicht authentifizieren und keinen JSON-Body senden und ist außerdem nur unter Windows verfügbar. Jedes Tutorial für einen formularbasierten Shortener verwendet einen alten Dienst, der die lange URL als Query-Parameter akzeptiert hat.
Wie kürze ich URLs dann in Excel?
Drei Wege funktionieren: ein Office Script mit fetch für eine einmalige Ausführung innerhalb der App, ein Power-Automate-Flow mit der HTTP-Aktion für alles nach Zeitplan oder der Export der Spalte als CSV mit anschließendem Massenimport. Entscheiden Sie danach, wie oft das Blatt ausgeführt werden muss, nicht danach, was am cleversten aussieht.
Warum schlägt fetch in meinem Office Script fehl, wenn Power Automate es ausführt?
Weil externe fetch-Aufrufe in der Power-Automate-Laufzeit nicht verfügbar sind, sondern nur, wenn das Script direkt in Excel ausgeführt wird. Das Script, das über die Registerkarte Automate in der App funktioniert, schlägt mit `fetch is not defined` fehl, sobald ein Flow es auslöst. Das ist hier die häufigste Überraschung.
Unterstützen Office Scripts OAuth oder die Speicherung von Geheimnissen?
Nein. Es gibt weder einen Anmeldefluss noch einen Secret Store. Daher muss ein Schlüssel im Script hartcodiert oder aus einer Zelle gelesen werden. Behandeln Sie jede Arbeitsmappe mit diesem Script wie ein Zugangstoken: Teilen Sie sie nicht weitläufig und verwenden Sie einen Schlüssel, der auf das Erstellen von Links beschränkt ist.
Wie verhindere ich doppelte Links bei jeder Neuberechnung des Blatts?
Senden Sie einen aus der Ziel-URL abgeleiteten Idempotenzschlüssel, sodass eine wiederholte Anfrage den vorhandenen Link zurückgibt statt einen neuen zu erstellen. Genau deshalb wäre eine Formel auch dann das falsche Werkzeug, wenn sie POST senden könnte: Formeln werden nach ihrem eigenen Zeitplan neu berechnet und würden jedes Mal Links erzeugen.
Wie kann ich einmalig am schnellsten einige hundert Zeilen kürzen?
Exportieren Sie die Spalte als CSV und verwenden Sie den Massenimport des Shorteners. Fügen Sie die zurückgegebenen Kurzlinks anschließend neben den Originalen ein. Kein Code, kein Premium-Connector, und es dauert nur ein paar Minuten. Automatisieren Sie den Vorgang erst, wenn sich derselbe Job regelmäßig wiederholt.
Elido testen
URL einfügen, kurzer Link in Sekunden
Kein Konto nötig. Link bleibt 30 Tage aktiv. Konto erstellen, um ihn dauerhaft zu behalten.
Kostenlos, keine Anmeldung erforderlich · 2 pro Tag