30 de marzo de 2009

PHD entrevista a John Walkenbach

Chandoo ha publicado la entrevista que realizó a John Walkenbach. Para quienes deseen leerla (en inglés), clic aquí.

Debo decir que quedé un poco decepcionado. Esperaba más de esta entrevista, viniendo de mr. Spreadsheet. Al leerla me pareció que Mr. Walkenbach solo intentaba vendernos alguno de sus libros, más que enseñarnos algo. Indudablemente, la de Charley Kyd fue una entrevista mucho más didáctica y amena.

27 de marzo de 2009

Advanced Excel Conference

Jon Peltier ha anunciado en su sitio, la primera edición de la Excel User Conference, que se llevará a cabo los días 17 y 18 de junio, en Atlanta, Georgia (EU). Contará con la participación del mismo Jon:

y de Bob Umlas, otro Excel MVP (algunos llaman a sus fórmulas forUmlas):


Cada uno de ellos dará un par de clases acerca de elaboración de gráficos y programación en Excel. Esta conferencia entra en sustitución de la Excel User Conference, que se estuvo realizando en años previos. Lamentablemente, los organizadores no pudieron organizar la edición de este año. Afortunadamente, Jon tomó la iniciativa y organizó su propia conferencia. Así pues, a ahorrar se ha dicho. La oportunidad de escuchar y dialogar con dos Excel MVP's simultáneamente no se da todos los días.

23 de marzo de 2009

La función SIFECHA

La función SIFECHA es un caso aparte. No por su simpleza o complejidad. Simplemente, porque desde Excel 5.0 no está documentada. Es una función secreta, por decirlo de algún modo. En efecto, si buscamos la función en el listado de funciones de Excel, veremos que no aparece, aún si como categoría seleccionamos Todas. Tampoco aparece en la ayuda on-line de Excel. Supuestamente (y esto es solo un mito urbano) Microsoft mantiene oculta esta función porque planea desaparecerla, ya que es una función originaria de Lotus. Por si fuera poco, está mal traducida, ya que su nombre original, en inglés, es DATEDIF (date diference), no DATEIF.

SIFECHA devuelve la diferencia entre dos fechas, expresada en determinado intervalo. La sintaxis:

=SIFECHA(fecha_1, fecha_2, intervalo)

fecha_1 y fecha_2 deben ser fechas válidas, de otra forma, obtendremos un error #¡VALOR!. fecha_1 debe ser menor (más antigua) que fecha_2. Si no es así, se obtiene #¡NUM! El argumento intervalo especifica la unidad de medida en la que Excel devolverá el resultado. Puede ser uno de los siguientes valores:

"m" - meses. Número de meses completos entre fecha_1 y fecha_2.

"d" - días. Número de días entre fecha_1 y fecha_2.

"y" - años. Número de años completos entre fecha_1 y fecha_2.

"ym" - meses excluyendo años. Número de meses entre fecha_1 y fecha_2, suponiendo que fecha_1 y fecha_2 son del mismo año.

"yd" - días excluyendo años. Número de días entre fecha_2 y fecha_2, suponiendo que fecha_1 y fecha_2 son del mismo año.

"md" - días excluyendo meses y años. Número de días entre fecha_2 y fecha_2, suponiendo que fecha_1 y fecha_2 son del mismo mes y del mismo año.

Supongamos que queremos calcular la diferencia entre las fechas 01/03/2007 (uno de marzo de 2007) y la actual 24/03/2009. El resultado de SIFECHA variará según el intervalo especificado, como sigue:


Nótese que si el argumento intervalo es una referencia, no debe estar escrito entre comillas.

Para calcular la edad de una persona podemos usar una fórmula como la siguiente:

=SIFECHA(A1,HOY(), "y") & " años, " & SIFECHA(A1,HOY(),"ym") & " meses, " & SIFECHA(A1, HOY(), "md") & " días."

Suponiendo que la fecha de nacimiento del individuo estudiado está en A1.

Utilizando VBA, SIFECHA no puede ser llamada utilizando WorksheetFunction. Es preciso elaborar manualmente el código que haga los cálculos, por ejemplo:

Function Age(fecha1 As Date, fecha2 As Date) As String

Dim Y As Integer
Dim M As Integer
Dim D As Integer
Dim Temp1 As Date

Temp1 = DateSerial(Year(fecha2), Month(fecha1), Day(fecha1))
Y = Year(fecha2) - Year(fecha1) + (Temp1 > fecha2)
M = Month(fecha2) - Month(fecha1) - (12 * (Temp1 > fecha2))
D = Day(fecha2) - Day(fecha1)

If
D < 0 Then
M = M - 1
D = Day(DateSerial(Year(fecha2), Month(fecha2) + 1, 0)) + D + 1
End If

Age = Y & " años " & M & " meses " & D & " dias"


End Function

20 de marzo de 2009

It´s friday

Del sitio Comics I don't understand:

El jefe no dejará que nadie abandone está reunión hasta que alguien explique cómo es que se rompió la ventana.

En el blog de Jon Peltier:

-Nuestra relación comenzó a declinar en este punto.
-Fue ahí cuando comenzaste a graficarlo todo.
-¡Coincidencia!

13 de marzo de 2009

Ocultar hojas efectivamente

Algunos de nuestros libros contienen hojas que preferimos ocultar, ya sea porque son hojas con cálculos parciales, o porque contienen información confidencial. O porque simple y sencillamente, no queremos que otros las vean. Normalmente, las ocultamos con Formato - Hoja - Ocultar.

Desde luego, el ocultar hojas de este modo no evita de ninguna manera que el usuario husmée en ellas e incluso modifique nuestras fórmulas, llegando a descomponer completamente el libro. Mucho menos sirve para ocultar información de carácter confidencial. Todo lo que se tiene que hacer es ir a Formato - Hoja - Mostrar... y seleccionar la hoja que se quiera ver.

Para estos casos, tenemos la posibilidad de ocultar una hoja de forma que ni siquiera aparezca en el cuadro Mostrar hoja... utilizando el editor de Visual Basic (VBE).

Procedemos como sigue:

Ingresamos al Editor de VB (Alt + F11) y localizamos nuestro libro en el Explorador de proyectos (precedido con la palabra "VBAProject").


Las hojas del libro están dentro de la subcarpeta Microsoft Excel Objetos. En caso de que no se vean, las mostramos dando clic en el botón + de dicha subcarpeta. Seleccionamos la hoja que queremos ocultar.

En la ventana Propiedades buscamos la propiedad Visible y establecemos su correspondiente valor a 2 - xlSheetVeryHidden (si no se muestra la referida ventana, la mostramos con Ver- Ventana propiedades).


Con este valor en la propiedad Visible, la hoja estará oculta y no aparecerá en el cuadro Mostrar hoja...

Ahora bién, existe la posibilidad de que el usuario conozca este "truco" y reestablezca la propiedad Visible a -1 - xlSheetVisible (hoja visible) siguiendo los mismos pasos. Para evitar esto es necesario proteger el proyecto con una contraseña. Vamos a Herramientas - Propiedades de VBAProject..., ficha Protección:

Activamos la casilla Bloquear proyecto para visualización, escribimos alguna contraseña y aceptamos el cuadro. Con esto, si el usuario intenta mostrar el editor de Visual Basic, Excel le requerirá escribir la contraseña para abrirlo.

Finalmente cerramos el editor VB y guardamos el archivo. De regreso en Excel, damos Formato - Hoja - Mostrar...:

y comprobamos que la hoja que recién ocultamos no aparece en este cuadro. Más aún, si solo hemos ocultado una hoja, ni siquiera estará habilitado el comando Mostrar...

10 de marzo de 2009

Pegado especial valores - Revisited

Copiar un rango de celdas y pegar únicamente los valores de las mismas es una operación un tanto frecuente.

Normalmente, lo hacemos copiando el rango de celdas, seleccionando la celda de destino y dando clic derecho - Pegado especial... Valores:


Otra opción es copiar el rango, clic en la lista desplegable del botón pegar, Valores:



La forma más rápida, para mi gusto, es la siguiente:

Seleccionamos el rango a copiar, y luego lo arrastramos a su nueva ubicación con el ratón, pero utilizando el botón derecho del mismo. Al soltar este botón, aparecerá un menú desplegable. Damos clic en la opción Pegar aquí solo como valores.



Si queremos convertir un rango a valores (es decir, pegar como valores pero en la misma ubicación), arrastramos el rango (con clic derecho) una columna a la derecha, regresamos a la posición original, soltamos y seleccionamos Pegar aquí solo como valores.

Para los que saben inglés, pueden ver la explicación de esta técnica en el siguiente video:



La función utilizada en el video, RAND, es la función ALEATORIO en español.

9 de marzo de 2009

Sobre el chat de este blog

Algunos lectores ya se habrán dado cuenta de que dispongo de la sección Excel chat, en la parte inferior del margen derecho.

El objetivo de este chat es poder dar respuestas puntuales a dudas que tengan los lectores. Desafortunadamente, las respuestas pueden no ser tan rápidas como quisiera, ya que me es imposible darle seguimiento las 24 horas del día. Además, no recibo ninguna clase de alerta cuando se produce un mensaje. Tengo que estar revisando periódicamente el sitio para verificar. Así pues, pueden pasar varias horas antes de que envíe alguna respuesta. Me ayudarían bastante enviando preguntas lo más concisas y puntuales posible.

Si la ayuda requerida es breve o puntual, y puede ser contestada a través del chat, será gratuita. Por el contrario, si se requiere que revise sus archivos y trabaje directamente en los mismos, la ayuda será considerada una consultoría y tendrá un costo, el cual puede ir del "semi-gratuito" (que no es otra cosa que recomendar este blog) hasta los USD 50.00.

Ahora bién, si alguno de los lectores conoce la respuesta de alguna pregunta planteada en el chat, puede contestar. Cualquiera que conozca la respuesta exacta a alguna pregunta puede participar. Esto servirá además para reducir los tiempos de respuesta para quien pregunta.

Para finalizar, les comento que he agregado un botón de búsqueda aleatoria de notas, arriba a la derecha. Puede resultar de utilidad a los lectores nuevos para darse una idea del contenido del blog, o bién, a aquéllos que quieran aprender algo nuevo sobre Excel, pero no tengan claro sobre que tema. En otras palabras, para los partidiarios del aprender-por-aprender.

5 de marzo de 2009

Obtener el nombre de una hoja

Un usaurio pregunta: ¿Como puedo hacer que en Excel, una celda vincule el texto del titulo de la hoja?

Respuesta: Utilizando la fórmula:

=DERECHA(CELDA("nombrearchivo",A1), LARGO(CELDA("nombrearchivo", A1))- ENCONTRAR("]", CELDA("nombrearchivo", A1), 1))

Expliquemos el funcionamiento de esta fórmula de adentro hacia afuera:

CELDA("nombrearchivo",A1) devuelve la ubicación completa de la celda especificada en el segundo argumento (puede ser de otra hoja incluso), incluyendo la ruta completa del archivo y el nombre de la hoja. En mi equipo el resultado de esta subfórmula es:

C:\Documents and Settings\leonel.quezada\[milibro.xls]Mi hoja

Al final extraemos únicamente el nombre de la hoja utilizando la función DERECHA.

LARGO(CELDA("nombrearchivo", A1)) devuelve el número total de caracteres del resultado previo. En este caso 61.

ENCONTRAR("]", CELDA("nombrearchivo", A1) ,1) devuelve la posición del caracter "]" en el resultado anterior, 54.

Por tanto, LARGO(CELDA("nombrearchivo", A1))- ENCONTRAR("]", CELDA("nombrearchivo", A1), 1) devuelve el número de caracteres que deberá extraer la función DERECHA: 61-54=7.

PD: Técnicamente, estamos hablando del "nombre" de la hoja, no del "título".

4 de marzo de 2009

Excel 14, no en 2009

Durante la reunión anual "Strategic Update" con analistas de Wall Street, Steve Balmer, CEO de Microsoft, he revelado que Microsoft Office 14 no será lanzado en este año (2009).

Los voceros de Microsoft han sido muy reservados a la hora de definir una fecha de lanzamiento para Office 14, a pesar de que en este año la anunciaron un par de veces. Hace apenas un mes, hubo información acerca del lanzamiento del nuevo Office para finales del 2009.

En realidad, ya se lanzó una versión beta que solo disfrutan algunos clientes selectos. No obstante, la versión comercial será hasta 2010 (por lo menos). Excel luce prácticamente igual a 2007.
Confiemos en que Microsoft se repondrá del tropiezo que significó Excel 2007.

2 de marzo de 2009

Entrevista con John Walkenbach

Como consecuencia de la excelente entrevista que Chandoo realizó a Charley Kid, en uno de los comentarios le sugerí realizar las mismas preguntas a otros Excel MVP's, como por ejemplo, a John Walkenbach, a lo que él me respondió que sería buena idea.

Pues bien, tengo el agrado de informarles que recientemente, Chandoo ha anunciado en su blog Pointy Hairy Dilbert que John, mr. Spreadsheet, aceptó realizar dicha entrevista. En la nota, nos pide a sus lectores sugerir algunas de las preguntas que le haría a mr. Spreadsheet. Mis sugerencias fueron:

¿Cuál es la mejor aplicación Excel comercial que has visto y porqué?
¿Cuál es la mejor aplicación Excel gratuita que has visto y porqué?

Espero que Chandoo incluya mis preguntas en su entrevista. De todos modos, si no lo hace, será una excelente entrevista. Muchos de nosotros consideramos a John nuestro maestro. Estaremos atentos a la publicación de la entrevista, Chandoo.
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Excel, Excel 2003, Excel 2007 y el logo XL son marcas registradas de Microsoft Corporation.