Mostrando las entradas con la etiqueta Excel 2016. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Excel 2016. Mostrar todas las entradas

lunes, septiembre 11, 2017

¿Quién se ha llevado mi asistente de importar texto?

El título del post es una paráfrasis del popular libro de Spencer Johnson de fines de los 90. El libro trata de las dificultades de afrontar cambios, tanto en el trabajo como en la vida privada. ¿Cómo está relacionado esto con Excel? Todo usuario veterano sabe muy bien a qué me refiero. A lo largo de los años Excel ha ido evolucionando y moviendo nuestro "queso" (la interface del usuario). Algunos cambios han sido revolucionarios y a su vez traumáticos para gran parte de los usuarios, como la cinta en lugar de las barras de menú en Excel 2007. Otros pasan inadvertidos, por ejemplo el cambio en el asistente de Tablas Dinámicas.

En Excel 2016 los asistentes de importar datos (el de texto entre ellos) no se encuentra en la cinta de opciones. En Excel 2007-2013 aparecían en la pestaña Datos bajo Obtener datos externos



 En Excel 2016 el usuario verá ésto


Es decir, el mecanismo de Power Query, bajo la denominación Obtener y Transformar Datos, ha reemplazado al asistente de importar texto (y otros tipos de archivos).
Hay mucha lógica en esta decisión de Microsoft y todo usuario de Excel obtendrá enormes beneficios de esta herramienta. Dicho ésto hay situaciones en las cuales queremos de todas maneras usar el "viejo" asistente de importar datos. Por ejemplo, en el caso de los espacios múltiples que mostré en la nota anterior.
El asistente no ha sido eliminado sino que no aparece en la cinta. Para poder utilizarlo tenemos que llevar a cabo las siguientes acciones:

1 - En Archivo-Opciones seleccionamos al sección Datos 


2 - Marcamos las opciones de nuestro interés, por ejemplo las cuatro que aparecen en la columna de la izquierda. Finalmente apretamos Aceptar.

Ahora esta opciones estarán a nuestra disposición bajo Datos-Obtener Datos-Asistentes Heredados


viernes, agosto 26, 2016

La función UNIRCADENAS en versiones anteriores a Excel 365

Una de las novedades en Excel 365 (2016) es la función UNIRCADENAS(), como ya mencioné en esta nota. Esta función es muy útil cuando queremos unir los valores de distintas celdas en un único valor textual. En las versiones anteriores de Excel podíamos hacerlo usando el operador "&" (que en inglés se llama ampersand y en castellano "et.") o la función CONCATENAR().
En ambos casos, cuando queremos unir valores de varias celdas, se trata de una tarea tediosa, en particular cuando queremos usar un separador entre los textos.
UNIRCADENAS() permite definir el separador e ingresar un rango de celdas lo cual facilita enórmemente la tarea. El problema es que esta función está disponible sólo para los usuarios de Excel 365 (creo que hasta hoy Microsoft no ha actualizado la versión stand-alone de Excel 2016).
La solución para los usuarios de versiones anteriores es programar un función definida por el usuario (UDF) o una macro.
La ventaja de la función UDF es que se actualizará automáticamente con cada cambio en alguna de las celdas del rango; la desventaja es que puede afectar la velocidad de recálculo del cuaderno, en particular si usamos muchas de estas funciones.
La ventaja de la macro es que no afectará la velocidad de recálculo del cuaderno, pero tendremos que activarla cada vez que efectuemos un cambio en los valores del rango.

Publico aquí ambos códigos que sugiero guardar en el cuaderno PERSONAL de manera que puedan ser usados en cualquier cuaderno.

Función UDF Unir_Cadenas

Function Unir_Cadenas(varSep As Variant, rngVals As Range)
    Dim strTemp As String
    Dim rngCell As Range
  
    For Each rngCell In rngVals
        strTemp = strTemp & rngCell & varSep
    Next rngCell
  
    Unir_Cadenas = Mid(strTemp, 1, Len(strTemp) - 1)
  
End Function


Una vez guardado el código usamos el asistente de fórmulas para activar la función


Y definimos el separador y el rango de celdas que contiene los valores a unir


Si queremos un espacio como separador, pondremos " " (espacio encerrado entre dos comillas); si no queremos ningún separador usaremos "" (dos comillas).

Macro concatenatar_rango

Sub concatenatar_rango()
    Dim strTemp As String
    Dim rngVals As Range, rngCell As Range
    Dim varSep As Variant
    Dim rngDest As Range
  
    On Error GoTo errCancel
  
    Set rngVals = Application.InputBox("Seleccione el rango de celdas a unir", "Rango a unir", Type:=8)
    varSep = Application.InputBox("Entre el separador", "Separador", Type:=2)
    Set rngDest = Application.InputBox("Seleccione la celda de destino", "Destino", Type:=8)
  
    For Each rngCell In rngVals
        strTemp = strTemp & rngCell & varSep
    Next rngCell
  
    rngDest = Mid(strTemp, 1, Len(strTemp) - 1)
  
    Exit Sub
  
errCancel:
Exit Sub
  
End Sub


Al activar la macro debemos seleccionar el rango de celdas, el separador y finalmente la celda de destino, como puede verse en este video



lunes, mayo 02, 2016

Excel 2016

La encuesta "Qué versión de Excel usas" que llevé adelante las últimas semanas me deparó ciertas sorpresas. Los resultados fueron

En total participaron 234 usuarios. Lo sorprendente no es que el 39% de los encuestados usen Excel 2013 (mi intuición decía que la mayoría usaba Excel 2010) sino que Excel 2016 con el 31% ocupara el segundo lugar.
La consecuencia más inmediata de la encuesta es que he instalado Office 2016, que será desde ahora la "versión oficial" de este blog.

Sobre las novedades y mejoras pueden leer en el blog oficial de Microsoft y en muchos otros buenos sitios y blogs de colegas. Así que aquí haré sólo una reseña, como para salvar un poco el prestigio de este blog que viene a ocuparse del tema con notable atraso (Office 2016 fue anunciado el 22 de setiembre del 2015).

Obtener y transformar (alias Power Query)

Lo que hasta la versión anterior era un complemento ha pasado a ser parte integral de Excel y ha sido rebautizado como "Obtener y transformar" en la ficha Datos de la cinta

Power Query, o con su nuevo nombre Obtener y Transformar", se encuentra en estado de permanente desarrollo y se ha vuelto, para los que analizamos gran cantidad de datos de distintas fuentes, en una herramienta fundamental.


Nuevas Funciones

En la última actualización Microsoft ha agregado nuevas funciones, pero me apresuro a aclarar que sólo están disponibles en la versión Office 365 (por suscripción).  Supongo y espero que en breve también estén disponibles para la versión de escritorio.

Es curioso que Microsoft no haya actualizado la versión de escritorio ya que estas funciones están disponibles en la versión on-line que es gratuita.

UNIRCADENAS (en inglés: TEXTJOIN)

Al igual que CONCATENAR esta función nos permite unir textos alojados en distintas celdas, pero ingresando el rango de celdas como un único argumento en lugar de celda por celda. Además, podemos definir el separador con un único argumento y definir si ignorar celdas vacías.


Por ejemplo


CONCAT

Reemplaza a CONCATENAR y es muy similar a UNIRCADENAS, pero con menos funcionalidades (sólo permite usar rangos e ignora las celdas vacías por definición)


SI.CONJUNTO (en inglés: IFS)

En lugar de “anidar” funciones SI para obtener el resultado que corresponde al cumplimiento de una determinada condición, podemos escribir las condiciones y el resultado en una serie y el resultado será el de la primera condición que se cumpla.


El caso clásico para esta función es determinar un porcentaje de descuento en función del monto de la compra


CAMBIAR (en inglés: SWITCH)

Función familiar para los usuarios de Access. Permite establecer el resultado como comparación de un variable con una serie de variables posibles


A diferencia de SI.CONJUNTO sólo permite comparar igualdades, es decir, si la variable coincide plenamente o no con los valores de la lista de comparación.

MAX.SI.CONJUNTO (en inglés: MAXIFS) y MIN.SI.CONJUNTO (en inglés: MINFIS)

Mis memoriosos seguidores recordarán el post sobre máximos y mínimos condicionales. Con estas dos nuevas funciones podemos dejar de lado todos los artilugios y calcular los máximos o mínimos sujetos a condiciones en forma natural.