Respuestas:
Con este pequeño fragmento puedes hacer eso.
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;
}
En esta respuesta , Tom Horwood encontró una manera de eludir el uso de citas.
Agregue la secuencia de comandos en Herramientas> Editor de secuencias de comandos y presione el botón de error para activar la autenticación.
He creado un archivo de ejemplo para usted: Verifique la fórmula
isFormula(a1)
? (en MS Excel sería una función que obtiene un parámetro de rango)
Utilice la función integrada ISFORMULA () .
Creo que acabo de descubrir una fórmula no documentada en las nuevas Hojas de cálculo de Google. @Pnuts decía que la CELL
fórmula no funcionaba (en parte porque solo está disponible en las nuevas Hojas de cálculo de Google), así que copié el código en una nueva Hoja de Google. Se generó un error, diciéndome que mi fórmula (personalizada) acepta solo un argumento y no dos:
Cambiar el nombre de isFormula
a otra cosa, resultó en una función personalizada que funciona. Después de que este fuera el caso, creé otra hoja de Google y usé la isFormula
fórmula. La fórmula no aparece en el autocompletado, pero está funcionando:
Entonces, si la fórmula está disponible en las nuevas Hojas de cálculo de Google, entonces esta sería la mejor respuesta:
=isFormula(A1)
Solo disponible en las nuevas Hojas de cálculo de Google. Le he pedido a algunas otras personas que confirmen la nueva fórmula y está confirmada. Como no está documentado, su implementación es insegura y puede desaparecer. El ARRAYFORMULA
no funciona cuando se usa con esta nueva fórmula.
He creado un archivo de ejemplo para usted: isFormula
Parece que hay una función incorporada oculta ISFORMULA()
de Google. Me di cuenta cuando borré mi propia función y todavía estaba trabajando. Lo probé en una nueva hoja de cálculo y aún funciona. No hay problema de caché.
isFormula2("A1")
. así que traté de crear una nueva versión de esta manera:function isFormula2(cell) { return (cell.getFormula())!=""; }
y esperaba que se pueda llamar usandoisFormula2(A1)
pero esto no parece funcionar y cuando trato de depurar se muestracell
como indefinido ... alguna idea de por qué es esto y si las cosas podrían ser cambiado para que funcione enf(A1)
lugar def("A1")
?