Hoy voy a darte un poderoso cóctel de fórmula. Las funciones INDIRECT() y ROW()menos utilizadas junto con la función MID() pueden crear un magnífico brebaje.
Esta tríada permite entrar en el contenido de una celda y analizar cada personaje por separado. Por ejemplo, supongamos que tienes a Excel123 en una celda, y quieres identificar si contiene un valor numérico o no (¡lo cual sí contiene!). Las fórmulas incorporadas de Excel no pueden ayudarte aquí, ya que Excel considera esto como texto(Intenta usar la función Type() para verlo por ti mismo).
Lo que se necesita aquí es una forma de comprobar cada carácter por separado y luego identificar si contiene un número. Echemos primero un vistazo a la fórmula que puede separar cada carácter:
=MID(B2,ROW(INDIRECT(«1:»&LEN(B2))),1)
Aquí funciona:
Ahora cuando lo tengas todo disecado, eres libre de analizar cada personaje por separado.
Tenga en cuenta que esta técnica se utiliza mejor cuando se combina con otras fórmulas (como verá más adelante en este post). Como técnica independiente, difícilmente podría ser de utilidad. Además, Indirect() es una función volátil, así que úsela con precaución. [Saber más sobre la fórmula volátil]
Aquí hay algunos ejemplos en los que esta técnica podría ser útil:
1. Para identificar las células que contienen un carácter numérico:
Suponga que tiene una lista como la que se muestra a continuación, y que quiere identificar (o filtrar) cualquier célula que contenga un carácter numérico en cualquier lugar de la célula
=OR(ISNUMBER(MID(A2,ROW(INDIRECT(«1:»&LEN(A2))),1)*1))
Utilice Control + Mayúsculas + Intro para introducir esta fórmula (en lugar de Intro), ya que es una fórmula de matriz.
2. Para identificar la posición de la primera ocurrencia de un número
Para ello, utilice la siguiente fórmula. Devuelve la posición de la primera aparición de un número en una celda. Por ejemplo, si una celda contiene el ProductoA1, devolverá 9. En caso de que no haya ningún número, devuelve «No hay ningún carácter numérico presente»
=IFERROR(MATCH(1,-ISNUMBER(MID(B3,ROW(INDIRECT(«1:»&LEN(B3))),1)*1),0), «No Numeric Character Present»)
Utilice Control + Shift + Enter para introducir esta fórmula
Espero que esto te ahorre tiempo y esfuerzo. Si se te ocurre otra forma de usar esta técnica, compártela conmigo también.