1. Usando las funciones `isNumber` y` isformula`:
Este es el método más directo y confiable. Combine estas funciones para verificar ambas condiciones:
* `isNumber (a1)`: Esta función devuelve `True` si la celda A1 contiene un número (ya sea directamente ingresado o el resultado de una fórmula que evalúa a un número) y` falso 'de lo contrario.
* `isformula (a1)`: Esta función devuelve `True` si la celda A1 contiene una fórmula, y 'falso' de lo contrario.
Para verificar si una celda contiene un número * directamente ingresado *, necesita ambos `isnumber` para ser` verdadero 'y' isformula` para ser `falso`:
`` `Excel
=Y (isNumber (a1), no (isformula (a1)))
`` `` ``
Esta fórmula devolverá `Verdaderamente` solo si la celda A1 contiene un número que se escribió directamente en la celda, no calculada por una fórmula. Coloque esta fórmula en otra celda, reemplazando `A1` con la celda que desea verificar.
2. Usando la función `celular '(menos confiable):
La función 'celular' puede proporcionar información sobre el formato y el contenido de una celda. Sin embargo, es menos confiable para esta tarea específica porque no siempre distingue con precisión entre un número directamente ingresado y una fórmula que resulta en un número:
`` `Excel
=If (celular ("type", a1) ="v", true, falso)
`` `` ``
Esto verifica si el tipo de celda es "V" (valor), que * podría * indicar un número ingresado directamente. Pero una fórmula que evalúa a un número también devolvería "V", por lo que este método no es infalible.
3. VBA Macro (para escenarios más complejos):
Para necesidades más complejas o análisis a gran escala, una macro VBA proporciona una mayor flexibilidad. Puede iterar a través de las células y examinar sus propiedades para determinar si son fórmulas o números directamente ingresados. Esto es más avanzado pero le brinda un control preciso. Aquí hay un ejemplo simple:
`` `VBA
Sub checkcellType ()
Dim Cell como rango
Para cada celda en el rango de ajuste de la celda ("A1:A10") 'según sea necesario
Si es ISNUMERIC (Cell.Value) y no Cell.hasformula entonces
Debug.print cell.address &"contiene un número directamente ingresado".
Final si
Siguiente celda
Final
`` `` ``
Esta macro buceres a través de las células A1 a A10. `ISNUMERIC` verifica un número, y 'Cell.hasformula` verifica si es una fórmula. El resultado se imprime a la ventana inmediata (Ver> Ventana inmediata).
El `y (isNumber (a1), no (isformula (a1)))` el método es el enfoque más confiable y recomendado Para determinar si una celda contiene un número directamente ingresado en Excel. Los otros métodos se proporcionan para completar pero tienen limitaciones.