Antworten:
Mit diesem kleinen Schnipsel können Sie das tun.
function isFormula(startcol, startrow) {
// prepare string
var str = String.fromCharCode(64 + startcol) + startrow;
// retrieve formula
var fCell = SpreadsheetApp.getActiveSpreadsheet()
.getRange(str).getFormula();
// return false if empty else true
return fCell ? true : false;
}
In dieser Antwort fand Tom Horwood einen Weg, die Verwendung von Anführungszeichen zu umgehen.
Fügen Sie das Skript unter Extras> Skripteditor hinzu und klicken Sie auf die Schaltfläche "Fehler", um die Authentifizierung zu aktivieren.
Ich habe eine Beispieldatei für Sie erstellt: Auf Formel prüfen
isFormula(a1)
? (in MS Excel wäre es eine Funktion, die einen Bereichsparameter bekommt)
Verwenden Sie die integrierte Funktion ISFORMULA () .
Ich glaube, ich habe gerade eine undokumentierte Formel in den neuen Google Sheets entdeckt. @Pnuts sagte, dass die CELL
Formel nicht funktioniert hat (teilweise, weil sie nur in den neuen Google Sheets verfügbar ist), deshalb habe ich den Code in ein neues Google Sheet kopiert. Es wurde ein Fehler ausgegeben, der mir mitteilte, dass meine (benutzerdefinierte) Formel nur ein Argument und nicht zwei akzeptiert:
Das Umbenennen isFormula
in etwas anderes führte zu einer funktionierenden benutzerdefinierten Funktion. Nachdem dies der Fall war, habe ich noch ein weiteres Google Sheet erstellt und die isFormula
Formel verwendet. Die Formel wird in der automatischen Vervollständigung nicht angezeigt, funktioniert aber:
Wenn die Formel in allen neuen Google Sheets verfügbar ist, ist dies die beste Antwort:
=isFormula(A1)
Nur in den neuen Google Sheets verfügbar. Ich habe ein paar andere Leute gebeten, die neue Formel zu bestätigen, und sie ist bestätigt. Da es nicht dokumentiert ist, ist seine Implementierung unsicher und es könnte verschwinden. Das ARRAYFORMULA
funktioniert mit dieser neuen Formel nicht.
Ich habe eine Beispieldatei für Sie erstellt: isFormula
Es sieht so aus, als gäbe es eine versteckte integrierte Funktion ISFORMULA()
von Google. Mir wurde klar, als ich meine eigene Funktion löschte und noch arbeitete. Ich habe es in einer neuen Tabelle versucht und funktioniert immer noch. Kein Cache-Problem.
isFormula2("A1")
. Also habe ich versucht, eine neue Version davon zu erstellen:function isFormula2(cell) { return (cell.getFormula())!=""; }
und ich habe erwartet, dass es mit aufrufbar ist,isFormula2(A1)
aber dies scheint nicht zu funktionieren, und wenn ich versuche, es zu debuggen, wird escell
als undefiniert angezeigt geändert, damit es funktioniert,f(A1)
anstatt mitf("A1")
?