Encontrar primer y último mes con valores distintos a 0 – excel formulas

Pregunta:


Tengo la siguiente tabla en Excel:

| ID | Descripción | Año | Enero | Febrero | Marzo | Abril | Mayo | Junio | Julio | Agosto | Septiembre | Octubre | Noviembre | Diciembre |

En cada mes pueden existir valores entre el 0 y el 10.000. Lo que necesito saber es cuál es el primer y el último mes con valores distintos a cero.

Es decir, si tengo por ejemplo: Año 2015, y en los meses desde enero a marzo “0” luego desde abril a octubre valores distintos a 0 y finalmente de noviembre a diciembre 0 nuevamente, necesito que me muestre en otras 2 columnas:

Inicio = Abril | Fin = Octubre.

¿Es posible?

Edición: Para encontrar el primer distinto de 0 funciona esto:

=COINCIDIR(VERDADERO;D2:02>0;0))

Pero para el último todavía no se cómo hacer.

Preguntado por: Pepemujica

Suponiendo que tu tabla es así:

ID | Descripción | Año  | Enero | Febrero | Marzo | Abril | Mayo | Junio | Julio | Agosto | Septiembre | Octubre | Noviembre | Diciembre | Inicio       | Fin   
1  | Hola        | 2015 | 0     | 0       | 0     | 1     | 2    | 3     | 4     | 5      | 6          | 7       | 0         | 0         |              |
2  | Ciao        | 2016 | 0     | 0       | 3     | 4     | 5    | 6     | 7     | 8      | 9          | 0       | 0         | 0         |              |

Para obtener el primer mes podrías hacer algo como esto para Inicio:

=INDEX($D$1:$O$1,MATCH(TRUE,INDEX(D2:O2<>0,),0))

Y para el último mes algo como esto para Fin:

=INDEX($D$1:$O$1,MATCH(TRUE,INDEX(D2:O2<>0,),1))

(misma fórmula, sólo cambiando el tipo de coincidencia de 0 a 1). Aquí dejo una captura de pantalla de cómo se ve en mi Excel:

introducir la descripción de la imagen aquí

Lo siento, uso Excel en inglés, parece que los equivalentes en español serían INDICE para INDEX y COINCIDIR para MATCH, con lo que quedaría así:

=INDICE($D$1:$O$1,COINCIDIR(TRUE,INDICE(D2:O2<>0,),0))

=INDICE($D$1:$O$1,COINCIDIR(TRUE,INDICE(D2:O2<>0,),1))

La solución es una variante de la solución dada a esta respuesta en SuperUser.

Puedes utilizar la misma funcion ={COINCIDIR(VERDADERO;D2:02>0;0)}, solo debes cambiar el último cero por uno, para que te devuelva el último, {COINCIDIR(VERDADERO;D2:02>0;1)}

Fórmulas de matriz

NOTA: Luego de escribir la fórmula, oprimir CTRL + Mayúsculas + Intro

Inicio: =INDEX(C1:N1,,MIN(IF(C2:N2>0,COLUMN(C2:N2)-2,13)))

NOTA: Se ha indicado 13 como valor para FALSO asumiendo que siempre habrá un mes con un valor mayor que 0.

Fin: =INDEX(C1:N1,,MAX(IF(C2:N2>0,COLUMN(C2:N2)-2,0)))

NOTA: Se ha indicado 0 como valor para FALSO asumiendo que siempre habrá un mes con un valor mayor que 0.

Referencia

Fuente

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *