Risposte:
Con questo piccolo frammento puoi farlo.
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 questa risposta , Tom Horwood ha trovato il modo di eludere l'uso delle virgolette.
Aggiungi lo script in Strumenti> Editor di script e premi il pulsante bug per attivare l'autenticazione.
Ho creato un file di esempio per te: Verifica la formula
isFormula(a1)
? (in MS Excel sarebbe una funzione che ottiene un parametro range)
Utilizzare la funzione integrata ISFORMULA () .
Penso di aver appena scoperto una formula non documentata nei nuovi Fogli Google. @Pnuts stava dicendo che la CELL
formula non funzionava (in parte perché è disponibile solo nei nuovi Fogli Google), quindi ho copiato il codice in un nuovo foglio Google. È stato generato un errore, indicandomi che la mia formula (personalizzata) accetta solo un argomento e non due:
La ridenominazione isFormula
in qualcos'altro, ha portato a una funzione personalizzata funzionante. Dopo questo, ho creato un altro foglio di Google e ho usato la isFormula
formula. La formula non viene visualizzata nel completamento automatico, ma funziona:
Quindi, se la formula è disponibile in tutti i nuovi Fogli Google, questa sarebbe la risposta migliore:
=isFormula(A1)
Disponibile solo nei nuovi Fogli Google. Ho chiesto ad altre persone di confermare la nuova formula ed è stata confermata. Poiché non è documentato, la sua implementazione non è certa e potrebbe scomparire. Il ARRAYFORMULA
non funziona quando viene utilizzato con questa nuova formula.
Ho creato un file di esempio per te: isFormula
Sembra che ci sia una funzione integrata nascosta ISFORMULA()
da Google. Mi sono reso conto quando ho eliminato la mia funzione e funzionava ancora. L'ho provato in un nuovo foglio di calcolo e funziona ancora. Nessun problema di cache.
isFormula2("A1")
. così ho provato a crearne una nuova versione in questo modo:function isFormula2(cell) { return (cell.getFormula())!=""; }
e mi aspettavo che fosse richiamabile usandoisFormula2(A1)
ma questo non sembra funzionare e quando provo a eseguire il debug mostracell
come indefinito ... qualsiasi idea del perché e se le cose potrebbero essere cambiato in modo che funzionerà conf(A1)
invece dif("A1")
?