
¿Cómo puedo detectar si ciertas celdas contienen fórmulas específicas con texto/símbolos específicos?
1. A formula which is =today(), or =date(), or =time()
2. A formula which starts with =(any alphabet letter)
3. A cell which starts with '
4. A formula which ends with any number
Utilizo las fórmulas en formato condicional.
Gracias.
Respuesta1
Respuesta para 1, 2, n 4:
1a) =IF(FORMULATEXT(A1)="=TODAY()",1,0)
1b) =IF(LEFT(FORMULATEXT(A1),5)="=TIME",1,0)
1c) [editar la solución 1b]
2 ) =IF(AND(CODE(MID(FORMULATEXT(A1),2,1))>=65,CODE(MID(FORMULATEXT(A1),2,1))<=90),1,0)
[puede consultar los detalles del código() en el archivo de ayuda... (:]
4 ) =IF(AND(code(right(FORMULATEXT(A1),1))>=48,CODE(right(FORMULATEXT(A1),1))<=57),1,0)
Espero eso ayude.
nota para el tercer trimestre:
una fórmula casi siempre comienza con un carácter "="... nunca comienza con un carácter... a menos que realmente te refieras a un valor de texto... entonces puedes usar if() + left() + editar la solución para Q2.
Comparta lo que intentó y no funcionó. Ayudaré a otros a comprender dónde se quedó estancado y los ayudaré. (:
Respuesta2
Respuesta para la Q3
Abra VBA y cree una macro:
Option Explicit
Function ZIsApostrophe(rng As Range) As Boolean
ZIsApostrophe = rng.PrefixCharacter = "'"
End Function
Utilice la función personalizada ZIsApostrophe()
para comprobar si una celda comienza con '.
Por ejemplo, escriba ZIsApostrophe(A3)
para comprobar si la celda A3 comienza con '. Devolverá el valor VERDADERO o FALSO como resultado.
Crédito: José Augusto
Respuestas para 1, 2 y 4
1a ) =SI(TEXTOFORMULA(A1)="=HOY()",1,0)
1b ) =SI(IZQUIERDA(FORMULATEXT(A1),5)="=TIEMPO",1,0)
1c) [editar la solución 1b]
2 ) =SI(Y(CÓDIGO(MEDIO(TEXTO DE FÓRMULA(A1),2,1))>=65,CÓDIGO(MEDIO(TEXTO DE FÓRMULA(A1),2,1))<=90),1,0)
[puede consultar los detalles del código() en el archivo de ayuda... (:]
4 ) =SI(Y(código(derecha(TEXTO DE FÓRMULA(A1),1))>=48,CÓDIGO(derecha(TEXTO DE FÓRMULA(A1),1))<=57),1,0)
Crédito: pág.fidot