Formato condicional de una celda si contiene fórmula

18

¿Es posible formatear condicionalmente una celda si la celda contiene fórmula (para alertarme a mí mismo y a otros usuarios al actualizar la celda)?

wilson
fuente
Si solo desea ver rápidamente qué celdas contienen fórmulas, puede escribir Ctrl-`(eso es una marca de retroceso, en la misma tecla que ~ en los teclados en inglés) para mostrar las fórmulas. Presione la tecla nuevamente para alternar.
yoyo

Respuestas:

9

Puede usar el formato condicional para hacer esto usando XLM y nombres de rango

Tengo un artículo más largo sobre el uso de XLM con nombres de rango y formato condicional para formatear automáticamente hojas de cálculo de acuerdo con el contenido de la celda

  1. Definir un nombre de rango IsFormula = GET.CELL (48, INDIRECT ("rc", FALSE))
  2. Aplique una prueba de celdas de formato condicional para la fórmula, es decir = IsFormula con un relleno de color
brettdj
fuente
Lo siento, no he probado tu respuesta hasta ahora. Este truco es simple y hermoso. ¡Aceptado! Gracias. (Por cierto, el enlace está roto.)
Wilson
Probado y funciona! Tenía que encontrar la definición correcta para la versión italiana de Excel 2007. Si tiene Excel italiano, debe usar = INFO.CELLA (48; INDIRETTO ("rc"; FALSO)) (tenga en cuenta también el punto y coma en lugar de comas)
Kar.ma
Lo malo es que debe guardarlo como un archivo macro (por ejemplo, .xlsm), y cuando abre el archivo, el color no se muestra hasta que habilita las macros.
Kar.ma
Solía ​​poder usar xlmsin ninguna advertencia macro, MSFT cambió el enfoque de seguridad.
brettdj
10

Sobre la base de la respuesta de brettdj, porque el artículo vinculado me pareció bastante difícil de seguir:

  1. Cree una nueva regla de formato condicional y seleccione Usar una fórmula para determinar qué celdas formatear
  2. Inserte la siguiente fórmula: =ISFORMULA(INDIRECT("rc",FALSE))
  3. Si desea que la regla se aplique a toda la hoja de trabajo, $1:$1048576como el rango al que se aplicará. De lo contrario, puede ingresar cualquier rango.

La fórmula INDIRECT("rc",FALSE)devuelve la referencia de la celda actual. Si alguna vez uso esto en una hoja, creo un nombre definido llamado algo así ThisCelly lo uso en la fórmula, en caso de que vuelva años después y piense "¿para qué demonios es esto?".

toryan
fuente
Esta es la respuesta correcta para Excel 2013 y
versiones
1
En lugar de utilizar INDIRECT("rc",FALSE), utilice referencias relativas con la celda superior izquierda en su rango de formato condicional "Se aplica a". Por ejemplo, si su rango "Se aplica a" es =$A$3:$F$300, entonces use =ISFORMULA(A3). Esto funciona porque el formato condicional admite referencias relativas, vea esto
Micah Lindström
4

Puedes probar estos:

VBA

Cree una función personalizada con el siguiente código:

Function IsFormula(ByVal Ref As Range) As Variant
    If Ref.Cells.Count > 1 Then
        IsFormula = CVErr(xlErrNA)
    Else
        IsFormula = Ref.HasFormula
    End If
End Function

Ejemplo:

Para verificar si alguna celda en la columna A tiene alguna fórmula:

  1. Destacar columna A
  2. Vaya a Formato condicional > Nueva regla > Use una fórmula para determinar qué celdas formatear
  3. Usa el ff. fórmula:=IsFormula(A1)

No VBA

  1. Presione F5o Ctrl+G
  2. Haga clic en especial .
  3. Elija Fórmulas y haga clic en Aceptar . Esto resalta todas las celdas en la hoja de trabajo que contiene fórmulas.
  4. Configure el formato que le gustaría usar.
    O
    vaya a Estilos de celda (en la pestaña Inicio) y elija un estilo que desee asociar a las celdas que contienen fórmulas. Para cambiar la apariencia, haga clic con el botón derecho en el estilo que seleccionó y haga clic en Modificar . Todas las celdas con este estilo se actualizarán automáticamente.
Ellesa
fuente
Aunque personalmente no prefiero usar VBA, la solución de VBA es mejor en este caso porque el formato de celda se puede cambiar dinámicamente cuando la fórmula se ingresa en una celda (o viceversa). Gracias.
Wilson
4

Hay una manera muy simple de hacer esto, probada en Excel 2016.

Resalte su rango al que desea que se aplique, digamos desde A3:W20. Entra en formato condicional y selecciona NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT.

Ponga =isformula(A3)y elija el formato que desea aplicar.

A3obviamente es una referencia a la primera celda de su rango, pero este formato se aplica a todos. El resultado es que dentro de su rango, cualquier celda que sea una fórmula tiene un formato condicional.

Joe Dog
fuente
1

Los sitios de ayuda más nuevos recomiendan una función definida por el usuario:

Function IsFormula(cell) as boolean 
  IsFormula = cell.HasFormula
End Function

Luego usa esa función como tu condición

Y, de hecho, Excel 2013 y versiones posteriores tienen IsFormulacomo función estándar.

Carl Witthoft
fuente
-1

También puede usar el formato condicional:

  1. Seleccione el rango de celdas a las que desea aplicar su formato condicional
  2. En Inicio -> Formato condicional -> Nueva regla: use una fórmula para detectar qué celda formatear
  3. En valores de formato cuando esta fórmula es verdadera, ponga: =HasNoFormula
  4. Selecciona el formato que quieras

Probado con Excel 2010.

Deconinck Florian
fuente
Tu respuesta es incompleta. No creo que lo hayas probado.
Wilson
2
-1, esto no hace nada. ¿Qué se supone que debe hacer = HasNoFormula?
toryan