Office Script: Formeln zuverlässig erkennen
In diesem Beitrag erkläre ich, wie man mit .getFormula() und .getFormulas() in Office Script Formeln ausliest und warum man unbedingt darauf achten muss, dass die Methode nicht den Ergebniswert zurückgibt, sondern den Formeltext.
EXCELOFFICE SCRIPT
10/1/20252 min read


Office Script: Formeln zuverlässig erkennen
Eine häufige Anforderung ist die Frage, ob eine Zelle eine Formel enthält oder nicht. Office Script stellt dafür die Methoden .getFormula() (für eine einzelne Zelle) und .getFormulas() (für einen Bereich) bereit. Klingt einfach aber es gibt eine wichtige Besonderheit, die man kennen muss.
Kernidee
.getFormula() und .getFormulas() lesen immer den Inhalt der Zellen.
Wenn keine Formel vorhanden ist, wird der Zellwert wie bei .getValue() zurückgegeben.
Wenn eine Formel vorhanden ist, wird der Formeltext selbst zurückgegeben, z. B. "=SUM(A1:A5)", nicht das Rechenergebnis.
Das ist entscheidend: Wer den Ergebniswert erwartet, wird überrascht, weil nur der reine Formeltext geliefert wird. Anbei zur Veranschaulichung, wie die Werte zurückgegeben werden. Zuerst zeige ich die Beispieldaten. Spalte A hat nur Zahlen. Spalte C hat dagegen die Formeln enthalten. Bis auf C5. Hier habe ich einfach nur "55" eingegeben, um zu veranschaulichen, das auch diese Zahl bei getFormulas() eingelesen wird.
Prüfen, ob eine Formel enthalten ist
Um wirklich sicherzustellen, dass eine Zelle eine Formel enthält, reicht es nicht, einfach auf "" zu prüfen. Denn auch Werte wie Zahlen oder Texte sind dann sichtbar.
Der zuverlässigere Ansatz: prüfen, ob der Rückgabewert mit "=" beginnt.
Beispiel
Ein Beispiel für eine einzelne Zelle:
let zelle = ws.getRange("A1");
let inhalt = zelle.getFormula();
if (typeof inhalt === "string" && inhalt.startsWith("=")) {
console.log("Formel gefunden:", inhalt);
} else {
console.log("Keine Formel, Inhalt:", inhalt);
}
Damit unterscheide ich klar zwischen einer Formel und einem Wert.
Wichtige Hinweise
.getFormula() → einzelner String (Formeltext oder Zellwert).
.getFormulas() → 2D-Array mit denselben Regeln.
Rückgabe bei keiner Formel = Zellinhalt (wie .getValue()).
Rückgabe bei Formel = reiner Formeltext (z. B. "=SUM(A1:A5)").
Für eine zuverlässige Formelprüfung → immer den Rückgabewert auf ein führendes "=" testen.
Fazit
.getFormula() und .getFormulas() sind nützlich, um Formeln im Code zu identifizieren. Wichtig ist, das Verhalten klar zu verstehen: Sie geben entweder den Zellwert oder den Formeltext zurück. Wer nur prüfen will, ob eine Formel vorhanden ist, sollte konsequent nach einem führenden "=" suchen, nur so vermeidet man falsche Annahmen.
Weitere interessante Beiträge:
Wie man mit Power Automate Emails nach bestimmten Inhalten prüfen kann.







