Excel formula: Get first non-blank value in a list

Fórmula genérica

{=INDICE(range,COINCIDIR(FALSO,ESBLANCO(range),0))}

Explicación

Para obtener el primer valor no en blanco (texto o número) en un rango de una columna, puede usar una fórmula de matriz basada en las funciones INDICE, COINCIDIR y ESBLANCO. En el ejemplo que se muestra, la fórmula en D10 es:

{=INDICE(B3:B11,COINCIDIR(FALSO,ESBLANCO(B3:B11),0))}

Nota: esta es una fórmula de matriz y debe ingresarse con Control-Shift-Enter.

Cómo funciona esta fórmula

Entonces, la esencia del problema es la siguiente: queremos obtener la primera celda que no esté en blanco, pero no tenemos una forma directa de hacerlo en Excel. Podríamos usar CONSULTAV con un comodín * (vea el enlace a continuación), pero eso solo funcionará para texto, no para números.

Entonces, necesitamos construir la funcionalidad que necesitamos anidando fórmulas. Una forma de hacerlo es usar una función de matriz que "prueba" las celdas y devuelve una matriz de valores VERDADERO / FALSO que podemos alimentar a la función COINCIDIR.

Trabajando de adentro hacia afuera, la función ESBLANCO evalúa las celdas en el rango B3: B11 y devuelve una matriz que se ve así:

{VERDADERO;FALSO;VERDADERO;FALSO;FALSO;VERDADERO;VERDADERO;VERDADERO;VERDADERO}

Cada FALSO representa una celda en el rango que no está en blanco.

A continuación, COINCIDIR busca FALSO dentro de la matriz y devuelve la posición de la primera coincidencia encontrada, en este caso 2. En este punto, la fórmula en el ejemplo ahora se ve así:

{=INDICE(B3:B11,2,0))}

Finalmente, la función INDICE toma el control y obtiene el valor en la posición 2 de la matriz, que es 10.

Primer valor de longitud diferente de cero

Para obtener el primer valor de longitud diferente de cero, puede incluir la función LARGO de esta manera:

{=INDICE(range,COINCIDIR(VERDADERO,LARGO(range)>0,0))}

Primer valor numérico

Para obtener el primer valor numérico en una lista, puede adaptar la fórmula para usar la función ESNUMERO, luego cambiar la lógica para que coincida con VERDADERO en lugar de FALSO:

{=INDICE(range,COINCIDIR(VERDADERO,ESNUMERO(range),0))}

Esta también es una fórmula de matriz, y debe ingresarse con control + shift + enter.


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT