sábado, abril 09, 2011

Las nuevas funciones DIA.LAB y DIAS.LAB en Excel 2010

Esta última semana se ha caracterizado por una intensa actividad, tratando de terminar a tiempo algunos proyectos. La semana entrante no pinta mejor, por lo que no me queda más que pedir paciencia a todos los que me han consultado por mail en los últimos días. Poco a poco iré poniéndome al día.

Mientras tanto, una entrada “al paso”. Hace poco menos de dos años atrás publiqué dos entradas mostrando alternativas a las funciones DIA.LAB y DIAS.LAB de Excel. El problema con estas funciones consistía en que tenían pre-programado el fin de semana con los días sábado y domingo.

Quien haya instalado Excel 2010 puede olvidarse de las soluciones que proponía en esas notas y usar las nuevas funciones DIA.LAB.INTL y DIAS.LAB.INTL

Estas funciones cuentan con un argumento opcional “fin de semana”

DIA.LAB.INTL(fecha_inicial; días_lab; [fin_de_semana]; [festivos])

DIAS.LAB.INTL(fecha_inicial; fecha_final; [fin_de_semana]; [festivos])

Este argumento nos permite establecer cuáles son el o los días a tomar en cuenta como fin de semana. Lo interesante es que este argumento tiene dos sintaxis alternativas:

1 – Podemos usar un valor de esta tabla de valores (ver la ayuda en línea de Excel)



2 – usar una combinación de siete ceros y unos. La posición de cada cifra en la cadena representa el día de la semana, empezando por el lunes. Usamos el 1 para representar los días no laborables y 0 para los laborales. Así, por ejemplo, si el fin de semana es viernes-sábado, la cadena será “0000110”; si el fin de semana es domingo-lunes la cadena será “1000001”; y si alguien conoce el país donde el fin de semana es “1111111”, por favor me avisa donde queda el consulado o la oficina de inmigraciones….

lunes, marzo 21, 2011

Suma interna de los dígitos de un número con Excel - ampliación

En mi nota anterior sobre la suma interna de los dígitos de un número, propuse esta fórmula para la tarea

=SUMAPRODUCTO(EXTRAE(A2,FILA(INDIRECTO("1:" & LARGO(A2))),1)*1)

También podemos usar

=SUMAPRODUCTO(--EXTRAE(A2,FILA(INDIRECTO("1:" & LARGO(A2))),1))

si preferimos usar la doble negación para convertir los valores VERDADERO o FALSO en 1 o 0.

El problema con esta fórmula es que cuando el resultado es un número de dos dígitos, tenemos que volver a aplicarla, ya sea anidando dos fórmulas o usando celdas auxiliares.

Con esta fórmula podemos realizar la suma interna de los dígitos de un número en una única operación:

=1+RESIDUO(SUMAPRODUCTO(--EXTRAE(A2,FILA(INDIRECTO("1:" & LARGO(A2))),1))-1,9)

Esta fórmula se base en el artificio matemático "Prueba del nueve" y fue propuesta por Rick Rothstein en un comentario en el sitio de Chandoo.

miércoles, marzo 16, 2011

Usar el control Calendario en Excel 2010

En el pasado, en aquellos lejanos días de Excel Clásico (97-2003), mostramos en este blog las bondades de usar el control Calendario (Mscal.ocx) y también como validar fechas con el control.

Las malas noticias para los que empiezan a trabajar con Excel 2010 es que el control ha sido removido del paquete de Office.

Microsoft comenta el tema en esta nota diciendo:

El control Calendar (mscal.ocx) […] fue removido de Access 2010 y no se puede utilizar en Excel 2010. En cambio, los usuarios pueden utilizar el Date Picker o sus propios controles de calendario personalizado.

El Date Picker se encuentra en la colección de controles ActiveX



Una segunda posibilidad es usar controles o complementos de terceras partes. Personalmente puedo recomendar el complemento desarrollado por Sam Radakovitz. Todo la que hay que hacer es descargar el complemento en la nota que Sam publicó el blog de Microsoft Office y copiarlo en la carpeta XLSTART (por ejemplo: C:\Program Files\Microsoft Office\OFFICE14\XLSTART).

Una vez instalado el complemento aparecerá en la cinta en la pestaña Complementos



El complemento hace que el calendario aparezca en toda celda que contenga una fecha o en la celda inmediata inferior.
También aparece en la celda que se encuentre debajo de una que contenga la palabra “Date” (fecha, en inglés. No, no funciona con Fecha en castellano) o desde el menú contextual que se abre con un clic del botón derecho del mouse



Existe una tercera posibilidad: instalar el control Calendario de Excel Clásico (Mscal.ocx) para utilizarlo en Excel 2010. Esta posibilidad es válida para la versión 32 Bit de Excel 2010.

El control puede descargarse en fonstuff o mejor aún en la página de descargas de Graham Mayor (buscar el MSCAL.ZIP).

Para poder usar el control hay que copiar el archivo MSCAL.OCX en C:\Windows\System32 y registrarlo. Para registrarlo hacemos un clic a Start (Inicio) y en Run copiamos “regsvr32 mscal.ocx” en



Apretamos OK y veremos esta mensaje



Ahora el control aparecerá en la colección de controles ActiveX