viernes, diciembre 08, 2006

Numeros romanos en Excel

Convengamos que los números romanos han caído en desuso. Sin embargo, todavía puede sucedernos que tengamos que expresar algún número arábigo en notación romana.
Excel cuenta con una función para traducir números romanos a arábigos: NUMERO.ROMANO

Por ejemplo, si en la celda A1 tenemos el número 1953 la fórmula =NUMERO.ROMANO(A1) da como resultado MCMLIII.

Esta función admite un segundo argumento opcional, que puede ser un número entero entre 1 y 4.
Si se omite el segundo argumento, como en nuestro ejemplo, el resultado se da en la notación clásica.

Si ponemos como segundo argumento el número 1, obtenemos una forma más concisa
La fórmula =NUMERO.ROMANO(A1,1) da como resultado MLMIII (también 1953, pero utiliza 6 letras en lugar de 7).
De ser posible, a medida que incrementamos el valor del argumento, obtenemos una forma aún más concisa.

Una vez traducidos, no podemos realizar operaciones aritméticas, ya que Excel ve los resultados como texto y no como números.

Excel no cuenta con una función inversa, que traduzca número romanos a arábigos


Technorati Tags:

miércoles, diciembre 06, 2006

Contando dias entre fechas con Excel

Esta nota viene a colación de una consulta de un colega de trabajo. Él necesitaba calcular la cantidad de días entre dos fechas, pero tomando en cuenta sólo días de trabajo (días hábiles).
Excel cuenta con funciones que permiten hacer estos cálculos con facilidad: NETWORKDAYS y WORKDAY. Estas funciones están disponibles sólo si tenemos instalado el complemento Analysis ToolPak.

Veamos un ejemplo cómo usar estas funciones.
Supongamos estas fechas de comienzo y final de un período:




Podemos calcular la cantidad de días transcurridos fácilmente, restando B2-B1, lo que nos dará 91 días




Si queremos excluir los fines de semana (sábados y domingos) de nuestra cuenta, usamos la función NETWORKDAYS




Esta función cuenta con un tercer argumento que nos permite incluir feriados en nuestra cuenta. En el rango E2:E4 ponemos esta lista de feriados (Argentina)




Nuestra función será ahora =NETWORKDAYS(B1,B2,E2:E4) y el resultado 62 días




La función WORKDAY nos permite calcular la fecha de finalización, si sabemos la fecha de comienzo y la cantidad de días requeridos. Esta función, como NETWORKDAYS, toma en cuenta los fines de semana. También cuenta con un tercer argumento opcional para agregar listas de feriados.
Por ejemplo si empezamos nuestro proyecto el 1ro. de noviembre de 2006 y necesitamos de 10 días hábiles para concluirlo, le fecha de terminación será el 15 de noviembre del 2006 (hay 2 fines de semana en el período).

La función es =WORKDAY(B12,B13,E2:E4)



Categorías: Funciones&Formulas_

Technorati Tags:

lunes, noviembre 27, 2006

Crear varias hojas en un cuaderno de Excel en una operacion

Si tenemos un cuaderno Excel con varias hojas y queremos borrar algunas de ellas, podemos hacerlo en una sola operación. Sencillamente, elegimos las hojas a ser borradas (clic mientras apretamos la tecla Ctrl) y luego en el menú contextual elegimos Eliminar.

En cambio, Excel no tiene ningún método para crear varias hojas en una sola operación. Por ejemplo, si queremos crear un cuaderno con 12 hojas, una para cada mes del año; o peor aún, uno con 52 hojas, una para cada semana.

Una solución bastante exótica sería definir el número de hojas en un nuevo libro (Opciones—General—Número de hojas en un nuevo libro) a 100, o algo así. Luego podríamos borrar de una vez las hojas excedentes.

Una solución más razonable es crear una macro que automatice la tarea de agregar hojas al cuaderno.

En un módulo del editor de Vba ponemos este código


Sub add_sheets()
Dim nbrSh As Integer, Counter As Integer

nbrSh = Application.InputBox(prompt:="Cuantas hojas agregar?", _
Title:="Agregar Hojas", Type:=1)

Counter = 0

While Counter < nbrSh
Sheets.Add After:=Sheets(Sheets.Count)
Counter = Counter + 1
Wend

End Sub


O esta otra, mas sintetica

Dim NrSh As Integer

On Error Resume Next

NrSh = Application.InputBox(prompt:="Cuantas hojas agregar", Title:="Agregar Hojas", Type:=1)

Sheets.Add after:=Sheets(Sheets.Count), Count:=NrSh


Esta macro la podemos guardar en el Personal.xls, de manera que esté disponible cada vez que trabajemos con Excel. También podemos asociarle una combinación de teclas (método abreviado) como Ctrl+Mayúsculas+A, para facilitar su uso.




Categorías: Varios_

Technorati Tags: