Mostrando entradas con la etiqueta arrays. Mostrar todas las entradas
Mostrando entradas con la etiqueta arrays. Mostrar todas las entradas

sábado, 21 de agosto de 2010

Cálculos con fechas en Excel usando DIA.LAB y DIAS.LAB (WORKDAY, NETWORKDAYS)

Luego de los valores numéricos las fechas deben ser el siguiente tipo de dato más común en Excel y por ello hoy explicaré como realizar algunos cálculos con fechas. Entre los ejemplos utilizaremos dos funciones muy útiles llamadas DIA.LAB y DIAS.LAB que nos permitirán hacer cálculos con fechas pero tomando solo días laborales.

Entre los cálculos de fechas más comunes encontramos el cálculo de una fecha a x días del día actual. Otro cálculo común es el número de días que hay entre dos fechas.



Veamos unos ejemplos


Para obtener la fecha que se encuentra a 30 días a partir de hoy utilizamos =AHORA() + 30 o para saber que fecha corresponde a 7 días antes de hoy utilizamos =AHORA() - 7.

Si tenemos dos fechas y se encuentran en las celdas A1 y A2 entonces podemos ingresar la fórmula =A1-A2 que nos calculará la cantidad de días.

Estos cálculos los podemos realizar de esta forma ya que Excel guarda internamente las fechas como valores numéricos que representan el número de días transcurridos desde el 01/01/1900. La parte decimal se utiliza para determinar la cantidad de segundos, minutos y horas desde el comienzo del día. Pueden probarlo usando la función AHORA y luego cambiando el formato de la celda a numérico.

En muchos casos no necesitamos hacer estos cálculos con días corridos sino con días laborales y para ello Excel tiene dos funciones DIAS.LAB y DIA.LAB

Primero analizaremos la función DIA.LAB que nos permite calcular una fecha que se encuentra a x días laborales de una fecha inicial. Esta función toma tres parámetros, el primero es la fecha inicial sobre la cual haremos el cálculo. El segundo es la cantidad de días positivo para una fecha futura o negativo para una pasada. El tercer parámetro es un array con fechas que son feriados los mismos no se consideran días laborales.

La segunda función DIAS.LAB nos permite contar la cantidad de días laborales que hay entre dos fechas. Esta función toma tres parámetros, el primero es la fecha inicial, el segundo es la fecha final y el último es el array con fechas que son feriados y no serán considerados como días laborales.



Veamos unos ejemplos


En la siguiente imagen mostramos los cálculos de fechas utilizando los cálculos con días corridos y con días laborales.


Para calcular los días laborares entre dos fechas usamos =DIAS.LAB(B1;B2;Feriados) y para calcular la fecha que se encuentra a 60 días laborales de la fecha de inicio usamos =DIA.LAB(B1;60;Feriados)

Feriados es una matriz o array con valores constantes que contiene los días que no consideramos como laborales. En nuestro ejemplo el día 9 de Julio es considerado feriado. Para más ayuda sobre arrays haga clic aquí.

jueves, 15 de octubre de 2009

Buscar el valor más frecuente en una lista con la función MODA

Cuando necesitamos encontrar el valor que se repite con más frecuencia en una lista o rango de celdas podemos utilizar la función MODA (o MODE para la versión en inglés).

La función solo toma un parámetro que es el rango donde se encuentran los valores a evaluar. Como resultado se devuelve el valor que mas aparece en la lista.

La principal limitación de esta función es que solo funciona con valores numéricos y muchas veces en Excel necesitamos buscar el valor más frecuente sobre un campo de texto. Por ejemplo supongamos que disponemos de una lista de artículos vendidos a clientes y queremos saber quien fue el cliente que ha realizado mas pedidos, dado que el nombre de cliente no es un número no podríamos usar dicha función.

Para evitar este problema podemos usar una combinación de formulas que nos permitirá utilizar la función MODA sobre un rango de valores que no sean numéricos.


Veamos el ejemplo


Utilizaremos la siguiente fórmula para buscar el valor más frecuente

{=INDICE(B2:B10;MODA(COINCIDIR(B2:B10;B2:B10;0)))}

La idea es que utilicemos algún valor numérico que identifique unívocamente al elemento. En este caso utilizamos la posición donde aparece por primera vez el elemento dado que es un valor numérico. Luego con la función índice devolvemos el elemento ubicado en esa posición.

Para ubicar la posición que ocupa cada uno de los elementos en la lista utilizamos la función COINCIDIR. Recuerden que en el caso de estar repetido un valor siempre se devolverá la primera ubicación.


Con el array de posiciones devuelto por COINCIDIR utilizamos la función MODA que devuelve aquel número que más se repite.


Finalmente con la función INDICE devolvemos el nombre que se encuentra en esa posición.

Combinando una serie de formulas que vimos en artículos anteriores podemos ampliar o resolver algunos problemas que no son posibles con la utilización de una sola formula

Para ver el archivo del ejemplo pueden hacer clic aqui.

sábado, 3 de octubre de 2009

Utilizando matrices o arrays en Excel

Un array puede definirse como una colección de elementos. En Excel podríamos decir que un rango de celdas es un array pero también podemos crear nuestros propios arrays o funciones de arrays. Esto último podría definirse como una colección de elementos a los que les aplicamos una formula.

Las funciones de array las podemos utilizar para realizar cálculos complejos que de otra forma requieren ingresar varias formulas en varias celdas. De esta forma podemos reducir el ingreso de formulas como asi también los posibles errores.

Para ingresar una formula array debemos presiones Ctrl + Shift + Enter y no solo la tecla enter. Excel agregará { } en la formula indicando que es una formula array. Si no se presiona Ctrl + Shift + Enter Excel la considerara una formula normal y por lo tanto no funcionará como deseamos.

Si bien las formulas array son muy utiles no son muy utilizadas y una razón es que son mas difcilis de entender ya que una sola celda se realizan varios cálculos y cuando no funciona correctamente es mas difícil seguir los resultados.

Array constantes

En Excel podemos definir un array que esta compuestos de valores constantes y el mismo puede ingresarse en una celda o se puede asignarse a un nombre de la misma forma que lo hacemos para rangos de excel.

Por ejemplo podemos definir un nombre llamado Dias e ingresar : ={"Lunes";"Martes";"Miercoles";"Jueves";"Viernes"}.
Para los arrays constantes es necesario ingresar { }.

Para ingresar el array constante debemos ir a la ficha Formulas y presionar en el botón Definir Nombres



Para obtener un valor particular del array de constantes podemos utilizar la función INDICE de la siguiente forma : =INDICE(Dias, 1) para devolver el primer elemento. El segundo parámetro puede cambiarse para devolver el valor deseado.


Veamos algunos ejemplos de funciones con arrays


Sumar los diez numeros mas grandes de un rango
{=SUMA(K.ESIMO.MAYOR(A1:A100,{1;2;3;4;5;6;7;8;9;10))}

Si tenemos que sumar gran cantidad de numeros podemos usar esta alternativa :

{=SUMA(K.ESIMO.MAYOR(A1:A100,FILA(INDIRECTO("1:10")))}

Para mas información sobre como Excel resuelve esta fórmula puedes hacer clic aqui.

Sumar con condiciones
{=SUMA(SI(A1:A10>0;A1:A10))}

Si bien este resultado puede obtenerse utilizando la función SUMAR.SI con el array podemos definir condiciones mas complejas e incluso varias condiciones.

El tema de los arrays es muy extenso por lo tanto en as próximas semana agregaré otra nota con ejemplos.