Quantcast
Channel: EXCELeINFO
Viewing all 466 articles
Browse latest View live

Video 1 | Unificando registros | EXCELeINFO y METN resolviendo casos prácticos

$
0
0

Me es grato informar que esta semana hemos colaborado en la realización de un video Víctor Román de Microsoft Excel a Todo Nivel y un servidor, en el que resolvemos un caso práctico y muy común, que es, la normalización de registros en una base de datos cuando éstos han sido capturados incorrectamente.

Canal de EXCELeINFO: https://www.youtube.com/user/sergioacamposh

Canal de METN: https://www.youtube.com/channel/UCh7H5QEvSVPmzwGBI_y8jBA

Tenemos una base de datos de automóviles donde notamos claramente que los registros fueron capturados de manera errónea. En la Tabla dinámica de la Figura 1 vemos cómo para una marca de autos nos arroja diferentes nombres. Lo anterior provoca confusiones de análisis y es peligroso, ya que el resultado que otorguemos puede ser el motivo para el cierre o cancelación de un contrato.

La Tabla dinámica nos muestra que los registros no están unificados y necesitan ser tratados.

Figura 1. La Tabla dinámica nos muestra que los registros no están unificados y necesitan ser tratados.

Video: Preguntas y Respuestas con Sergio A Campos | Como normalizar una Base de Datos en Excel.

Normalizar datos con EXCELeINFO add-in

Para el caso anterior, la base de datos debe ser tratada y unificar / normalizar los registros para que la Tabla dinámica nos arroje resultados confiables. Para unificar los registros usaremos mi EXCELeINFO add-in.

Con el add-in instalado nos vamos a Datos > Normalizar / Unificar registros en bases de datos.

1. Una vez abierto el formulario elegimos la columna a filtrar.

2. Filtraremos por Marca y presionamos el botón Filtrar.

3. Marcamos los registros que queramos unificar.

4. En Reemplazar con el texto ingresamos el valor que deberá sustituir a los elegidos de la lista.

Elegimos los registros a unificar y asignamos un valor.

Figura 2. Elegimos los registros a unificar y asignamos un valor.

Al dar clic en Normalizar la lista del formulario se llenará de nuevo con el conteo de registros. Es entonces cuando veremos que los registros se han unificado.

Ahora los registros se han unificado.

Figura 3. Ahora los registros se han unificado.


Trabajar con archivos de Excel compartidos en redes locales (LAN)

$
0
0

Cuando se trabaja en una empresa, una de las cosas principales que se realizan es guardar documentos en carpetas de la red local, y en muchas otras ocasiones es necesario compartir archivos de Excel para que varios usuarios los modifiquen a la vez.

No vamos a entrar en detalles sobre términos técnicos sobre la redes locales, basta con decir que podemos compartir archivos de Excel que a su vez estén almacenados en carpetas compartidas y que éstas pueden ser accedidas por varios usuarios al mismo tiempo.

Cómo compartir un archivo de Excel

Para compartir un archivo de Excel, seguimos los siguientes pasos:

1. En la pestaña Revisar seleccionamos el comando Compartir libro.

2. Una vez abierto el formulario, en la pestaña Cambios marcamos la opción Permitir la modificación por varios usuarios a la vez. Esto también permite combinar libros.

Damos permiso al archivo de ser modificado por varios usados a la vez

Figura 1. Damos permiso al archivo de ser modificado por varios usados a la vez.

3. En la pestaña Uso avanzado vemos algunas configuraciones que podemos considerar cambiar o dejarlas en su valor por defecto:

3.1. Control de cambios: nos permite definir una cantidad de días que deseamos que se conserve el historial de cambios. También podemos no guardar ningún cambio.

3.2. Actualizar cambios: Podemos definir si los cambios se reflejan al guardar o cada lapso de tiempo.

3.3. En caso de conflictos entre usuarios: Aquí podemos definir si se conservan los cambios guardados o que se nos pregunte cuáles deseamos que prevalezcan.

3.4. También podemos guardar configuración de la impresora y de los filtros.

Definimos los días a guardar el historial. Definimos la periodicidad en que serán guardados los cambios.*

Figura 2. Definimos los días a guardar el historial. Definimos la periodicidad en que serán guardados los cambios.

Video: Compartir un archivo de Excel en una red local LAN

Guardar cambios de otros usuarios

Cuando hacemos un cambio y presionamos Guardar, si previamente otro usuario hizo cambios en el archivo veremos el mensaje “El libro se actualizó con cambios hechos por otros usuarios”, además de que se resaltará la celda modificada y se le añadirá un comentario temporal donde indique el nombre del usuario y los cambios realizados.

A la izquierda los cambios hechos por otro usuario, y a la derecha el mensaje donde avisa de los cambios.

Figura 3. A la izquierda los cambios hechos por otro usuario, y a la derecha el mensaje donde avisa de los cambios.

Ver usuarios que tienen abierto el archivo

En la pestaña Revisar > Compartir veremos el formulario que analizamos anteriormente, pero ahora veremos una lista de los usuarios que tiene abierto el archivo. Si presionamos el botón Quitar usuario hay que estar seguros que el usuario ya no necesita hacer cambios en el archivo y evitar conflictos por falta de información

Hay que tener mucho cuidado de no quitar a un usuario que tenga abierto el archivo para no perder datos.

Figura 4. Hay que tener mucho cuidado de no quitar a un usuario que tenga abierto el archivo para no perder datos.

Conflictos por cambios en libro compartido, modificas las mismas celdas

Supongamos que un usuario elimina una columna del archivo y guarda cambios. Otro usuario ingresa datos en la columna sin saber que fue eliminada por usuario. Cuando el segundo usuario guarda el archivo, se genera un conflicto de archivo compartido, ya la eliminación de la columna que hizo el primero usuario, afectó al segundo. En ese momento Excel lanza una advertencia sobre los cambios realizados y pregunta cuáles cambios deseamos que prevalezcan.

Si desea que se guarden tus cambios hay que dar clic en el botón Aceptar los míos. Si se desea preservar los cambios de los otros usuarios da clic en el botón Aceptar otros.

Aquí vemos cómo Excel nos advierte sobre un conflicto de archivo compartido.

Figura 5. Aquí vemos cómo Excel nos advierte sobre un conflicto de archivo compartido.

Para ver el historial de cambios y ver la manera en la que se han manejado los conflictos, realiza lo siguiente:

Aquí vemos cómo Excel nos advierte sobre un conflicto de archivo compartido.

2. En Cuándo selecciona todos.

3. Mantén en blanco las opciones de Quién y Dónde.

4. Marca la opción Mostrar cambios en una nueva hoja.

Resaltar cambios.

Figura 6. Resaltar cambios.

5. Da clic en Aceptar.

6. Verás una nueva hoja donde se detallan los cambios y conflictos, así como el usuario responsable.

Vemos la fecha, hora, usuario y tipo de cambio.

Figura 7. Vemos la fecha, hora, usuario y tipo de cambio.

Sugerencias para abrir y modificar un archivo compartido

Desde Excel abrimos el archivo, o en su defecto nos dirigimos a la carpeta compartida donde se encuentra el archivo. A continuación te comento de dos maneras en la que podrás validar si tienes carpetas compartidas en tu computadora:

1. Dentro de Mi PC ubica si tienes íconos con las letras E:, F:, G:, que se refieren a unidades de red.

2. Igual dentro de Mi PC ubica si tienes íconos que comiencen con \\numero.de.IP.\carpeta.

Para validar que los cambios hechos al archivo compartido son del usuario correcto sugiero cambiar el nombre de usuario de Excel. Nos dirigimos a la pestaña Archivo > Opciones. Dentro de las opciones en la sección General ubicamos la parte de Nombre de usuario y definimos nuestro nombre que nos identificará ante los demás usuarios del archivo compartido.

Características que no se podrán usar en un archivo compartido

1. Crear tablas de Excel.

2. Eliminar hojas

3. Agregar o modificar validación de datos.

4. Insertar gráficos y autoformas.

5. Usar Subtotales.

6. Insertar Tablas dinámicas, aunque puede ver las existentes.

7. Extraer información de datos externos, como Access o servidores de bases de datos.

8. Crear o modificar macros, aunque puede ejecutar las existentes.

9. Entre otras características.

Macro y formulario en Excel para obtener las variables de entorno de Windows

$
0
0

Qué es una variable de entorno

Las variables de entorno son un conjunto de valores dinámicos en Windows que afectan el comportamiento de los procesos en una computadora – Wikipedia.

Las variables de entorno que pueden llegar a ser más usadas son:

  • %COMPUTERNAME% = Nombre de la computadora.
  • %PROGRAMFILES% = Carpeta donde se intalan los programas.
  • %WINDIR% = Carpeta de Windows.

Para qué me sirven las varibles de entorno en Excel

Inicialmente puedes dudar sobre el uso de las variables de entorno en Excel, pero si tomas en cuenta que al ser variables, pueden tomar distintos valores dependiendo la PC donde ejecutes tu archivos y sacarles provecho usando macros de vba.

Puedes, por ejemplo, impedir el uso de una macro si la el usuario tiene un nombre distinto al que deseas (%CLIENTNAME%) o guardar un archivo directamente en la carpeta del usuario de Windows (%HOMEPATH%).

Pegar las variables de entorno en una hoja de Excel

En la Figura 1 vemos que tenemos un botón para llamar las variables y éstas se enlistarán en la hoja de Excel.

image

Figura 1. Mostrar variables de entornio en Excel.

Para obtener las variables hacemos uso de la función Environ(), la cual nos devolverá los valores actualmente estén asignamos en Windows.

En CMD podemos usar el comando SET para visualizar las variables de Windows.

La siguiente macro nos permitirá obtener las variables y pasarlas a una hoja de Excel:

Sub MostrarVariables()
    'Declaramos variables
    '
    Dim i As Integer
    '
    i = 1
    '
    'Mientras el valor de Environ NO sea vacío, se obtiene el valor.
    While Environ(i) <> Empty
        '
        ActiveWorkbook.Sheets("Hoja1").Range("A8").Offset(i, 0).Value = Environ(i)
        '
        i = i + 1
        '
    Wend
    '
End Sub

Para este ejemplo también desarrollé un formulario donde tendremos un ListBox que mostrará las variables. Se usa la misma función Environ(), tal como se muesra en la Figura 2.

image

Figura 2. UserForm con ListBox.

El siguiente código vba hará que nuestro formulario funcione:

'Llenar ListBox
Private Sub CommandButton1_Click()
Dim i As Integer
    '
    i = 1
    '
    While Environ(i) <> Empty
        '
        Me.ListBox1.AddItem Environ(i)
        '
        i = i + 1
        '
    Wend
    '
End Sub
'
'Cerrar
Private Sub CommandButton2_Click()
    Unload Me
End Sub
'
'Al dar click en el ListBox
Private Sub ListBox1_Click()
'
'Declaramos variables
Dim Cuenta As Integer
Dim Numero As Integer
Dim j As Integer
Dim i As Integer
    '
    Cuenta = Me.ListBox1.ListCount
    '
    'Validamos que haya un elemento seleccionado.
    For j = 0 To Cuenta - 1
        If Me.ListBox1.Selected(j) = True Then
            Numero = Numero + 1
        End If
    Next j
    '
    'La hoja seleccionada se pasará al ListBox de hojas visibles.
    For i = 0 To Cuenta - 1
        If Me.ListBox1.Selected(i) = True Then
            TextoSel = Me.ListBox1.List(i)
        End If
    Next i
    '
    LargoTexto = Len(TextoSel)
    IgualEncontrado = WorksheetFunction.Find("=", TextoSel)
    Variable = Left(TextoSel, IgualEncontrado - 1)
    Me.lblVariable.Caption = Variable
    '
    Valor = Right(TextoSel, LargoTexto - IgualEncontrado)
    '
    Me.lblValor.Caption = Valor
'
End Sub

Anexos

Para que puedas hacer tus pruebas y experimentos, puedes descargarte el ejemplo:

:: Descargar Variables de entorno usando Environ.rar

Validar email en Excel con macros vba

$
0
0

Validar email en Excel con vba

Cuando capturamos datos de personas, invariablemente tenemos que añadir un correo electrónico para tener más vías de contacto. A partir de esa premisa, al capturar los datos de manera manual, siempre existe el riesgo humano de equivocarnos en capturar algún registro.

Es por eso que en este artículo les comparto una macro para que les pueda ayudar en validar si un correo electrónico está mal formado, es decir, que no cumpla con los requisitos de [usuario] @ [dominio]. Les compartos ejemplos para validar los correos mediante un formulario o con una función (UDF) que incluso podrá ser usada en la hoja de cálculo como si fuera una función de Excel, tipo BUSCARV, SUMAR.SI, etc.

Ver video Validar email en Excel con macros y función UDF

Antes de comenzar, activa la referencia a Expresiones regulares

No dice Wikipedia que Una expresión regular, a menudo llamada también regex, es una secuencia de caracteres que forma un patrón de búsqueda, principalmente utilizada para la búsqueda de patrones de cadenas de caracteres u operaciones de sustituciones.

En el código vba de la macro encontraremos dos expresiones regulares, la primera nos validará correo de tipo usuario@dominio.com.

Expresión 1: “^[\w-\.]+@\w+\.\w+$”

La segunda expresión validará los tipos de correo usuario@dominio.com.mx.

Expresión 2: “^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$”

Por lo anterior, debemos entrar al IDE de vba con la combinación de teclas [Ctrl] + [F11] y nos dirigimos al menú Herramientas > Referencias, y activamos la librería Microsoft VBScript Regular Expresions 1.0. Esto nos ayudará a poder una expresión regular para validar el correo electrónico.

Activar la libería para usar expresiones regulares es nuestro código vba.

Figura 1. Activar la libería para usar expresiones regulares es nuestro código vba.

Función personalizada (UDF)

Usando la función valida_email_fx(correo) en tu hoja de cálculo, basta con poner una dirección en una celda y la función devuelve VERDADERO o FALSO dependiendo de si el correo es válido o no.

UDF para validar email en Excel.

Figura 2. UDF para validar email en Excel.

Validar email en Formulario

Ahora bien, si la captura de datos es mediante formulario, podemos usar un procedimiento que valide el correo electrónico, así como también podemos usar la misma función usada en la hoja de cálculo, pero directamente en el formulario.

Validar email en Excel mediante formulario.

Figura 3. Validar email en Excel mediante formulario.

Código vba de las macros

Para la función personalidad UDF usaremos la siguiente macro en el módulo UDF.

'***************************************************************************
'Referencias: Microsoft  vb Script Regular Expressions
'   http://www.tipsntracks.com/117/validate-an-email-address-using-regular-expressions.html
'   https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular
'***************************************************************************

Function valida_email_fx(email As String) As Boolean

Application.Volatile

'Declaramos variables
Dim oReg As RegExp

' Crea un Nuevo objeto RegExp
Set oReg = New RegExp

On Error GoTo ErrorHandler

'Expresión regular para validar direcciones .com
'oReg.Pattern = "^[\w-\.]+@\w+\.\w+$"

' Expresión regular para validar direcciones .com.mx
oReg.Pattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"

' Comprueba y Retorna TRue o false
valida_email_fx = oReg.Test(email)

Set oReg = Nothing

Exit Function

'En caso de error
ErrorHandler:

MsgBox "Ha ocurrido un error: ", vbExclamation, "EXCELeINFO"

End Function

Y en el formulario tendremos el siguiente código.

'***************************************************************************
'Referencias: Microsoft  vb Script Regular Expressions
'   http://www.tipsntracks.com/117/validate-an-email-address-using-regular-expressions.html
'   https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular
'***************************************************************************

Private Sub CommandButton1_Click()
'Declaramos la variable oReg
Dim oReg As RegExp

' Crea un Nuevo objeto RegExp
Set oReg = New RegExp

On Error GoTo ErrorHandler

' Expresión regular para validar direcciones .com
'oReg.Pattern = "^[\w-\.]+@\w+\.\w+$"

' Expresión regular para validar direcciones .com.mx
oReg.Pattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"

'Comprobamos si el email es válido
email = oReg.Test(Me.txtEmail.Value)

If email = True Then
    MsgBox "email válido.", vbInformation, "EXCELeINFO"
Else
    MsgBox "email inválido.", vbExclamation, "EXCELeINFO"

End If

Exit Sub

'En caso de error
ErrorHandler:

MsgBox "Ha ocurrido un error: ", vbExclamation, "EXCELeINFO"


End Sub

Private Sub CommandButton2_Click()
Dim valida

valida = valida_email_fx(Me.txtEmail.Value)

If valida = True Then
    MsgBox "email válido.", vbInformation, "EXCELeINFO"
Else
    MsgBox "email inválido.", vbExclamation, "EXCELeINFO"
End If

End Sub

Descargar el ejemplo

Si deseas puede descargar el ejemplo con macros incluidas para añadirlas a tus proyectos.

Descargar el ejemplo Validar email con macros y UDF.rar

Generar contraseñas aleatorias en Excel usando fórmulas y macros

$
0
0

En la actualidad, donde todo es información, la seguridad juega un rol importante en nuestras vidas. Ahora casi la mayoría de las personas tiene cuenta de correo electrónico y de redes sociales. También es cierto que la mayoría de las personas usan la misma contraseña para sus diferentes sitios, lo que pone en riesgo la privacidad de sus cuentas.

A qué quiero llegar con eso. En este artículo voy a mostrarte 3 método para los cuales puedes tener un generador de contraseñas en Excel. Los primeros dos son en base a fórmulas y el tercero en base a macros, tendremos una función personalizada o UDF que nos generará contraseñas aleatorias. Veamos.

Ver video Generar contraseñas aleatorias en Excel usando fórmulas y macros

Clic para suscribirte a nuestro canal de Youtube.

Generador de contraseñas 1 de 3. Uso de la función CARACTER

La definición de la función CARACTER dice “Devuelve el carácter especificado por el número de código a partir del juego de caracteres establecido en su PC”. Ese código de caracteres es el llamado código ASCII.

Para el uso de la función CARACTER vamos poder usar desde el número 1 hasta el 255, pero para generar las contraseñas usaremos los código del 48 al 90, que corresponden a números, MAYÚSCULAS y algunos signos, y del 97 al 122 que es el abecedario en minúsculas.

Como quedamos, la función CARACTER nos devolverá una letra, símbolo o número. Le anidaremos la función ALEATORIO.ENTRE para generar caracteres aleatorios. Por ejemplo:

=CARACTER(ALEATORIO.ENTRE(48,90))

La fórmula anterior sólo nos genera un caracter. Deberemos de CONCATENAR la misma fórmula varias veces para generar una secuencia de caracteres que podamos usar como contraseña. Así nos quedaría para 5 caracteres.

=CARACTER(ALEATORIO.ENTRE(48,90))&CARACTER(ALEATORIO.ENTRE(48,90))&CARACTER(ALEATORIO.ENTRE(48,90))&CARACTER(ALEATORIO.ENTRE(48,90))&CARACTER(ALEATORIO.ENTRE(48,90))

 CARACTER y ALEATORIO.ENTRE para generar contraseñas aleatorias

Figura 1. CARACTER y ALEATORIO.ENTRE para generar contraseñas aleatorias.

Generador de contraseñas 2 de 3. Uso de la función ÍNDICE y una lista de códigos.

La segunda opción para generar contraseñas aleatorias es tener una lista de los caracteres que queramos que se elijan de manera aleatoria, para posteriormente usar la función ALEATORIO.ENTRE para elegir diferentes posiciones de la lista de códigos.

Usamos la función CARACTER en base a los códigos de la columna G.

Figura 2. Usamos la función CARACTER en base a los códigos de la columna G.

Ahora usaremos la función INDICE para devolver una posición dentro de la lista de caracteres. A la función INDICE le anidaremos la función ALEATORIO.ENTRE para que la posición de la lista sea aleatoria y por consiguiente devuelva cualquier caracter de la lista. Para la primera parte usamos la siguiente fórmula, y así en las 5 partes.

=INDICE($F$8:$F$76,ALEATORIO.ENTRE(1,69))

Combinamos INIDICE con ALEATORIO.ENTRE para traer valores de una lista códigos de manera aleatoria.

Figura 3. Combinamos INIDICE con ALEATORIO.ENTRE para traer valores de una lista códigos de manera aleatoria.

Por último unimos las 5 partes de la contraseña con la función EXCELeINFOCONCATENAR contenida en EXCELeINFO add-in.

Contraseñas aleatorias en Excel

Figura 4. Combinamos INDICE, ALEATORIO.ENTRE.

Generador de contraseñas 3 de 3. Función personalizada PassAleatorio.

Si sigues este Blog seguro adivinarás que este método es mi favorito, ya que usaremos macros para generar contraseñas aleatorias.

Para este ejemplo he desarrollado una Función personalizada o UDF que nos permitirá elegir el largo de la contraseña, es decir, de cuántos caracteres queremos que se arme la contraseña.

Recuerda: El número de caracteres máximo por celda era de 1,024 en 2003 y es de 32,767 en 2007-2016.

Le he puesto el nombre PassAleatorio a la función. Esta función permitirá un parámetro que es la cantidad de caracteres conformarán la contraseña. Así.

[A1] = =PassAleatorio(10)

UDF PassAleatorio en Excel

Figura 5. UDF PassAleatorio en Excel.

Código vba de la macro

'---------------------------------------------------------------------------------------
' Module    : Módulo1
' Author    : MVP, Sergio Alejandro Campos
' Date      : 24/09/2016
' Purpose   : UDF para generar contraseñas aleatorias
'---------------------------------------------------------------------------------------
'
Function PassAleatorio(Cantidad As Integer)
'
'Usar siempre en una UDF
Application.Volatile
'
'Declaramos variables
Dim Valor As Variant
Dim Valor1 As Variant
'
Valor1 = Null
'
'Recorremos de 1 a la Cantidad especificada en el parámetro Cantidad
For i = 1 To Cantidad
    '
    Valor = Chr(Application.WorksheetFunction.RandBetween(48, 90))
    '
    Valor1 = Valor1 & Valor
    '
Next i
'
'Asignamos a la función los caractere concatenados.
PassAleatorio = Valor1
'
End Function

Descarga el ejemplo

Descarga el archivo de ejemplo que contiene las fórmulas vistas en este artículo, además de las macros.

Descargar el ejemplo Generar contraseña aleatoria.rar

Obtener propiedades de una celda en Excel mediante macros vba

$
0
0

Para seguir con el tema de las macros, en este artículo aprenderás a obtener propiedades una celda (la celda activa) mediante macros de vba.Dichas propiedades las vamos a volcar a un formulario (Userform).

Cómo funciona

Tenemos una tabla de ejemplo la cual hemos formateado previamente. He desarrollado un formulario el cual devolverá el tipo de formato de la celda activa. Los formatos y propiedades que se obtendrán para este ejemplo son:

  • Tipo de fuente, Color de fuente y Fondo de celda.
  • Si la celda tiene fórmula.
  • En caso de que la celda tenga fórmula, la mostraremos.
  • Alto de fila.
  • Ancho de columna.

En la siguiente animación vemos cómo funciona el formulario, para después hacerles unas notas al respecto.

Obtener propiedaes de celda mediante usandos macros vba

Figura 1. Obtener propiedaes de celda mediante usandos macros vba.

Ver video Obtener propiedades de una celda de Excel con macros vba

SUSCRÍBETE A MI CANAL DE YOUTUBE.

Notas sobre las macros

Primero tendremos la macro LanzarFormulario que mostrará el formulario el modo Modal, los cual significa que podremos elegir celdas aunque esté en ejecución. Como lo vimos en la Figura 1.

Sub LanzarFormulario()

UserForm1.Show vbModal = False

End Sub

Objeto ActiveCell. Se refiere a la celda activa, es decir, la celda seleccionada, de la cual obtendremos las propiedades. En la siguiente macro mostramos un mensaje donde indicamos el nombre de la fuente usada en la celda activa.

Sub MostrarFuente()

MsgBox ActiveCell.Font.Name

End Sub

Evento Initialize. Este evento se lanzará al momento de abrir el formulario, el código ingresado en dicho evento se ejecutará justo al iniciar el formulario.

Código de las macros vba

'---------------------------------------------------------------------------------------
' Module    : UserForm1
' Author    : MVP, Sergio Alejandro Campos
' Date      : 30/09/2016
' Web       : exceleinfo.com
' Videos    : youtube.com/user/sergioacamposh
'---------------------------------------------------------------------------------------

'Al iniciar el formulario
Private Sub UserForm_Initialize()

'Validamos si la celda tiene fórmula
If ActiveCell.HasFormula Then
    TieneFx = "Si"
Else
    TieneFx = "No"
End If

'Asignamos valores a los TextBoxes
Me.txtTieneFx.Value = TieneFx
Me.txtFx.Value = ActiveCell.FormulaLocal
Me.txtAltoFila.Value = ActiveCell.EntireRow.RowHeight
Me.txtAltoColumna.Value = ActiveCell.EntireColumn.Width

'Definimos valores a la variables para Fuete, Color y Fondo
Fuente = ActiveCell.Font.Name
ColorFuente = ActiveCell.Font.Color
Fondo = ActiveCell.Interior.Color

'Damos formato al txtFuente

With Me.txtFuente

    .Value = ActiveCell.Value
    .Font = Fuente
    .ForeColor = ColorFuente
    .BackColor = Fondo

End With

End Sub

'Mediante el botó Actualizar llamamos al evento Initialize
Private Sub CommandButton2_Click()
'Mandamos llamar el evento Initialize del formulario
UserForm_Initialize
End Sub

'Cerrar el formulario
Private Sub CommandButton1_Click()
Unload Me
End Sub

Descarga el ejemplo

Descarga el archivo de ejemplo para aplicar las macros a tus proyectos personales y profesionales.

Descargar el ejemplo Ver propiedades de una celda con vba.rar

Uso de BUSCARV con coincidencia aproximada en Excel

$
0
0

Planteamiento: Tengo una lista de vendedores con sus respectivas ventas y requiero una Tabla dinámica donde pueda ver por bloque de ventas, la cantidad de vendedores. Por ejemplo:

  • Cuántos vendedores tienen ventas menos de 500.
  • Cuantos vendedores tienen ventas entre 500 y 1,000.
  • Cuantos vendedores tienen ventas entre 1,000 y 2,000.

Como vemos, en la anterior premisa nos piden hacer una Tabla dinámica donde hagamos grupos de vendedores categorizados por rango de venta. Para armar los grupos tomaremos en cuenta la cantidad de ventas de cada vendedor y ese dato lo usaremos como valor buscado en la función BUSCAR usando una coincidencia aproximada.

En la primera columna tenemos el código del vendedor y en la segunda la cantidad ventas.

Figura 1. En la primera columna tenemos el código del vendedor y en la segunda la cantidad ventas.

Ver el video Ejemplo práctico usando BUSCARV con coincidencia aproximada en Excel

 SUSCRÍBETE a nuestro canal para aprender más de Excel.

BUSCARV con coincidencia aproximada

En la mayoría de las ocasiones he usado BUSCARV con coincidencia exacta para devolver un resultado de una tabla en base a otro valor. En esta ocasión usaremos una coincidencia aproximada, ya que para obtener el dato que se requiere se tendría que armar una fórmula con varias funciones SI anidadas para definir el límite inferior y superior y ver a qué grupo pertenece.

Lo primero que haremos es una tabla donde definiremos los límites inferiores y superiores, así el nombre de cada grupo a definir.

Definimos los límites inferiores y superiores.

Figura 2. Definimos los límites inferiores y superiores.

Entendiendo la coincidencia aproximada

La coincidencia aproximada implica buscar una coincidencia en en valor próximo hacia abajo, es decir, en la tabla de la Figura 2 primero usamos el límite inferior cero y el límite superior 500. Con lo anterior quiero decir que cualquier número  menor a 500 entrará en el grupo de 0 a 500.

A considerar: La coincidencia aproximada NO busca el valor más cercano hacia arriba, sino hacia abajo.

Para saber a qué grupo pertenece cada vendedor con respecto a su cantidad de ventas, usamos la fórmula:

=BUSCARV(B2,$E$4:$G$14,3,VERDADERO)

Uso de BUSCARV con coincidencia aproximada

Figura 3. Uso de BUSCARV con coincidencia aproximada.

Armando la Tabla dinámica

Elegimos nuestro rango con el dato de los vendedores. Elegimos la pestaña Insertar, elegimos Tabla dinámica. Seleccionamos que se inserte en una nueva hoja.

Tabla dinámica en Excel

Figura 4. Tabla dinámica en Excel.

Nuestra Tabla tiene los campos VENDEDOR, VENTAS y TIPO. En nuestro esquema de Tabla dinámica arrastramos el campo TIPO hacia la sección de Filas y de nuevo el mismo campo TIPO hacia la sección Valores.

Armando la Tabla dinámica

Figura 5. Armando la Tabla dinámica.

Descarga el ejemplo

Descarga el archivo de ejemplo para aplicar la fórmula a tus propios proyectos.

Descargar el ejemplo BUSCARV con 1.rar

Suma, Conteo y Promedio en Excel en base a múltiples criterios @EXCELeINFO

$
0
0

En este artículo veremos 3 ejemplos en los cuales usaremos unas funciones de Excel que han venido a ayudarnos a obtener resultados en base a múltiples criterios. Por ejemplo tenemos la función CONTAR.SI que nos ayuda a saber el conteo de celdas que cumples con un criterio, pero la función CONTAR.SI.CONJUNTO nos da las celdas que cumplen con determinados criterios, es decir, más de un criterio. Las funciones en cuestión son:

    1. SUMAR.SI.CONJUNTO: Suma las celdas que cumplen con determinados criterios.
    2. CONTAR.SI.CONJUNTO: Cuenta las celdas que cumplen con determinados criterios.
    3. PROMEDIO.SI.CONJUNTO: Promedia las celdas que cumplen con determinados criterios.

El ejemplo

Para resolver los 3 ejemplos tenemos una Tabla de ventas de ejemplo que cuenta con Fecha, Sucursal, Proveedor y Monto de la venta.

SUMAR.SI.CONJUNTO.

Figura 1. Tabla de ejemplo.

Ver el video Suma, Conteo y Promedio en Excel en base a múltiples criterios

Suscríbete a EXCELeINFO en YouTube SUSCRÍBETE a nuestro canal para aprende más de Excel.

SUMAR.SI.CONJUNTO

Para el primer ejemplo tenemos la siguiente premisa: Se requiere obtener las ventas por sucursal 1, Vendedor 1, en el periodo de enero a octubre del 2016.

Parámetros de la función SUMAR.SI.CONJUNTO:

    • Rango_suma: El conjunto de celdas que se sumarán [VENTAS].
    • Rango_criterios1: El rango de celdas donde se encuentra el criterio1 [SUCURALES].
    • Criterio1: Es el criterio 1 que determina qué celdas se sumarán [SUC1].
    • Rango_criterios2: El rango de celdas donde se encuentra el criterio2 [VENDEDORES].
    • Criterio2: Es el criterio 2 que determina qué celdas se sumarán [Vendedor-1].
    • Rango_criterios3: El rango de celdas donde se encuentra el criterio3 [FECHA].
    • Criterio3: Es el criterio 3 que determina qué celdas se sumarán [01/01/2016]
    • Rango_criterios4: El rango de celdas donde se encuentra el criterio4 [FECHA].
    • Criterio4: Es el criterio 4 que determina qué celdas se sumarán [16/10/2016].

Usando la función SUMAR.SI.CONJUNTO.

Figura 2. Usando la función SUMAR.SI.CONJUNTO.

Fórmula:

=SUMAR.SI.CONJUNTO(E2:E5001,C2:C5001,G2,D2:D5001,H2,B2:B5001,”>=”&I2,B2:B5001,”<=”&J2)

CONTAR.SI.CONJUNTO

El segundo ejemplo dice: Se requiere saber cuántas transacciones de ventas se realizaron con monto mayor a 5,000, en el mes de febrero.

Parámetros de la función CONTAR.SI.CONJUNTO:

    • Rango_criterios1: El rango de celdas donde se encuentra el criterio1 [VENTA].
    • Criterio1: Es el criterio 1 que determina qué celdas se sumarán [>5000].
    • Rango_criterios2: El rango de celdas donde se encuentra el criterio2 [FECHA].
    • Criterio2: Es el criterio 2 que determina qué celdas se sumarán [01/02/2016].
    • Rango_criterios3: El rango de celdas donde se encuentra el criterio3 [FECHA].
    • Criterio3: Es el criterio 3 que determina qué celdas se sumarán [29/02/2016].

Usando la función CONTAR.SI.CONJUNTO.

Figura 3. Usando la función CONTAR.SI.CONJUNTO.

Fórmula:

=CONTAR.SI.CONJUNTO(E2:E5001,”>”&K2,B2:B5001,”>=”&I2,B2:B5001,”<=”&J2)

PROMEDIO.SI.CONJUNTO

El tercer ejemplo reza: Se requiere el promedio de ventas del Vendedor 3 en la sucursal 2.

Parámetros de la función PROMEDIO.SI.CONJUNTO:

    • Rango_promedio: El conjunto de celdas que se promediarán [VENTAS].
    • Rango_criterios1: El rango de celdas donde se encuentra el criterio1 [VENDEDORES].
    • Criterio1: Es el criterio 1 que determina qué celdas se promediarán [Vendedor-3].
    • Rango_criterios2: El rango de celdas donde se encuentra el criterio2 [SUCURSALES].
    • Criterio2: Es el criterio 2 que determina qué celdas se promediarán [SUC-2].

Usando la función CONTAR.SI.CONJUNTO.

Figura 4. Usando la función CONTAR.SI.CONJUNTO.

Fórmula:

=PROMEDIO.SI.CONJUNTO(E2:E5001,D2:D5001,Listas!G14,C2:C5001,Listas!F14)

Descarga el ejemplo

Descargar el ejemplo SUMAR.SI.CONJUNTO, CONTAR.SI.CONJUNTO, PROMEDIO.SI.CONJUNTO.rar


Tu primera UDF en Excel explicada paso a paso @EXCELeINFO

$
0
0

En días recientes me dedicado a desarrollar material con respecto a funciones personalizadas en Excel o UDF por sus siglas en Inglés (User Define Function). Las funciones UDF son prácticamente macros que podemos usar en las celdas de Excel, así como usamos la función SUMA, BUSCARV, pero con instrucciones escritas en macros vba y definiéndole el nombre que deseemos, siempre y cuando no sea el mismo que una función pre construida en el catálogo de Excel.

Diferencia entre UDF y Procedimiento

Bueno, tanto una UDF como un procedimiento de Excel son macros, con la salvedad de que la función UDF la podremos usar en celdas de Excel así como dentro de un procedimiento.

Ejemplo práctico de Excel transformado en UDF

Para este artículo tomé un ejemplo sencillo aplicable con fórmulas de Excel donde deseamos obtener la primera palabra de una celda de Excel, y una vez que entendamos la lógica de las fórmulas, podemos transportarla a una macro de Excel en formato de UDF.

Ver video Tu primera UDF en Excel explicada paso a paso

Suscríbete a EXCELeINFO en YouTube

Extraer la primera palabra de una celda con fórmulas

Pasos para extraer la primera palabra de una celda de Excel usando fórmulas.

Figura 1. Pasos para extraer la primera palabra de una celda de Excel usando fórmulas.

Les enlisto los pasos para extraer la primera palabra de una celda de Excel y les explico la lógica usada:

    1. =ENCONTRAR(“ “,A6). Como cada palara está separada por un espacio, entonces primero debemos encontrar la posición de dicho espacio-
    2. =IZQUIERDA(A6,B6-1). Una vez encontrada la posición del espacio, usamos la función IZQUIERDA para devolver n cantidad de caracteres desde la izquierda. Restamos 1 caracter para omitir el espacio.
    3. =SI.ERROR(C6,A6). En caso de que la función ENCONTRAR no encuentre el espacio, entonces marcará error. Al marcar el error le diremos a Excel que nos devuelva el contenido de la celda.

Ahora bien, una vez entendida la lógica para extraer la primera palabra, esa misma lógica la usaremos en la macro que se usará para crear la UDF, la cual llamaremos PrimeraPalabra.

Creando una UDF paso a paso

En Excel presionamos la combinación de teclas [Alt] + [F11] para abrir el IDE (entorno) de vba (Visual Basic for applications). Una vez abierto el entorno, ubicamos el proyecto correspondiente al archivo y creamos un módulo dando clic derecho.

En un módulo normal crearemos la UDF.

Figura 2. En un módulo normal crearemos la UDF.

Creamos el nombre la función. Usando la palabra Function, definimos el nombre de la función, además de definir que tendrá dos parámetros. El parámetro Celda será la celda que tendrá el texto y el parámetro Convertir podrá usar los números 1 y 2 para devolver el texto en MAYÚSCULAS o minúsculas.

Function PrimeraPalabra(Celda As Range, Optional Convertir As Integer)

Definimos las Variales. Definimos las variables intEspacio y strPalabra.

Dim intEspacio As Integer
Dim strPalabra As String

Función volátil. Le decimos a Excel que la función de actualizarse automáticamente en cada cálculo.

Application.Volatile

Asignamos valor a las Variables. A la variable intEspacio le definiremos la posición donde se encuentre el espacio, y a la varible strPalabra le definiremos el valor de la primera palabra.

intEspacio = Application.WorksheetFunction.Find(” “, Celda)

strPalabra = Left(Celda, intEspacio – 1)

Parámetro opcional. El parámetro Convertir será opción, es decir que si se deja en blanco, devolverá el texto de la celda sin convertir a MAYÚSCULAS o minúsculas. Para recuperar el parámetro escrito usamos Select Case.

‘1 = MAYÚSCULAS
‘2 = minúsculas
‘Omitir = la primera palabra sin cambios
Select Case Convertir
Case Is = 1
PrimeraPalabra = UCase(strPalabra)
Case Is = 2
PrimeraPalabra = LCase(strPalabra)
Case Is = Empty
PrimeraPalabra = strPalabra
End Select
End Function

 

Al final probamos la función ingresando el una celda =PrimeraPalabra y el resultado que nos devolverá es la primer palabra, misma que obtuvimos con las fórmulas.

UDF en Excel.

Figura 3. UDF en Excel.

Código de la macro

'---------------------------------------------------------------------------------------
' Date      : 26-oct-2016
' UDF       : PrimeraPalabra
' Author    : MVP, Sergio Alejandro Campos
' Sites     : www.exceleinfo.com | youtube.com/user/sergioacamposh
' Purpose   : Crear función personalizada para traer la primer palabra de una celda
'---------------------------------------------------------------------------------------

'Forzamos al editor a declarar variables
Option Explicit

Function PrimeraPalabra(Celda As Range, Optional Convertir As Integer)

'Declarar variables
Dim intEspacio As Integer
Dim strPalabra As String

'Le decimos a Excel que la función se calcule automáticamente
Application.Volatile

'Encontramos la posición del espacio
intEspacio = Application.WorksheetFunction.Find(" ", Celda)

'Extraemos caracteres desde la izquierda
strPalabra = Left(Celda, intEspacio - 1)

'1 = MAYÚSCULAS
'2 = minúsculas
'Omitir = la primera palabra sin cambios
Select Case Convertir
Case Is = 1
    PrimeraPalabra = UCase(strPalabra)
Case Is = 2
    PrimeraPalabra = LCase(strPalabra)
Case Is = Empty
    PrimeraPalabra = strPalabra
End Select
    

End Function

Descarga el ejemplo

Descargar el ejemplo Mi primera UDF_2.rar

Mostrar y vocalizar actividades pendientes en Excel @EXCELeINFO

$
0
0

En un artículo anterior vimos una macro para que al abrir un archivo de Excel nos muestre un mensaje donde nos enliste el nombre de las personas que cumplen años el día actual, es decir, el día en que se abre el archivo.

Siguiendo la misma temática, he desarrollado otro ejemplo más robusto en que utilizamos una característica interesante de Windows que es vocalizar un texto usando macros, las cuales no ayudarán a que se nos muestre un mensaje con las actividades que tenemos vigentes, además de que vocalizarán dichas actividades. La característica es Texto a voz o TTS, que por su siglas en ingles es Text to speech.

Activar Texto a voz (TTS) en Windows

En el Panel de control o Configuraciones de Windows 10 entramos a la ruta Reconocimiento de voz > Texto a voz y validamos que estén configuradas las opciones de voz.

Elegir el idioma de vocalización de Texto a voz.

Figura 1. Elegir el idioma de vocalización de Texto a voz.

Ver video Mostrar y vocalizar actividades pendientes en Excel

Suscríbete para aprender más de Excel.

Tabla de actividades pendientes

Tenemos una Tabla de Excel la cual contendrá una lista de actividades donde incluyamos el NOMBRE de la actividad, la FECHA y el STATUS de las mismas.

Nos interesa se informados de las actividades vigentes.

Figura 2. Nos interesa se informados de las actividades vigentes.

A considerar antes de ejecutar la macro

La tabla a usar tiene el nombre tblActividades debemos asegurarnos que la columna con las fechas se llame F_EJECUCIÓN. Lo anterior para que la macro funcione, después de hacerla funcionar puedes cambiar los nombres a conveniencia.

Nos aseguramos de tener bien definido el nombre de la tabla y la columna de fechas.

Figura 3. Nos aseguramos de tener bien definido el nombre de la tabla y la columna de fechas.

También es importante validar qué Nombre de usuario tienes configurado en Excel y si es necesario cámbialo. Te dirige a Opciones > General > Nombre de usuario. Lo anterior, ya que la macro también mostrará y vocalizará tu nombre.

Cómo funciona

Ya tenemos nuestra tabla con las actividades por FECHA y por STATUS. Cada vez que el archivo se abra, la macro recorrerá la columna F_EJECUCIÓN y hará la siguiente validación:

“Si la fecha de ejecución es igual a la fecha de hoy y además la actividad está en status de VIGENTE, se tomará como actividades pendientes de cerrar.”

Las actividades que cumplan con el anterior criterio se mostraran todas en un mensaje, además de que se vocalizarán dichas actividades. Podemos abrir el archivo y sólo enfocarnos en lo que escuchamos, para así poder desviar nuestra mirada a otra parte.

Se muestran y se vocalizan las actividades pendientes del día.

Figura 4. Se muestran y se vocalizan las actividades pendientes del día.

Código vba de la macro

El punto importante a considerar es la macro es un nuevo procedimiento que nunca habíamos usado en este Blog. Es el método Speech.Speak que nos permite vocalizar valores escritor a voz.

Es importante mencionar que el método Speech.Speak tiene como segundo parámetro SpeakAsync, si lo ponemos en False se detendrá la vocalización a ejecutar otra línea de código, en cambio, si lo ponemos en True se seguirá vocalizando el texto aunque se ejecute otra macro.

Usamos la macro Auto_Open dentro de un módulo normal para que se ejecute al momento de abrir el archivo.

'---------------------------------------------------------------------------------------
' Macro     : Mostrar y vocalizar actividades pendientes.
' Author    : MVP, Sergio Alejandro Campos
' Date      : 03-nov-2016
' Blog      : exceleinfo.com
' Youtube   : youtube.com/user/sergioacamposh
'---------------------------------------------------------------------------------------
'
Option Explicit
'
Sub Auto_Open()
'
'Declaración de variables
'
Dim MiRango As Range
Dim Celda As Range
Dim Nombre, Nombre2, Mensaje, Usuario, Titulo
'
'Asignamos valores a las variables
Set MiRango = Range("tblActividades[F_EJECUCIÓN]")
Usuario = Application.UserName
Titulo = "EXCELeINFO"
'
'Recorremos cada celda y validamos VS la fecha actual
'
For Each Celda In MiRango
    If Celda.Value = Date And Celda.Offset(0, 2).Value = "VIGENTE" Then
        Mensaje = Usuario & ", tienes estos pendientes para el día de hoy: " & Date
        '
        Nombre = Chr(149) & Celda.Offset(0, -1).Value
        Nombre2 = Nombre2 & vbNewLine & Nombre
    End If
Next Celda
'
If IsEmpty(Nombre2) Then
    'En caso no haber pendientes...
    '
    Application.Speech.Speak "No tienes pendientes para hoy.", True
    MsgBox "No tienes pendientes para hoy.", vbInformation, Titulo
    '
Else
    'Se vocalizan y muestran los pendientes.
    '
    Application.Speech.Speak Mensaje & Nombre2, True
    MsgBox Mensaje & vbNewLine & Nombre2, vbInformation, Titulo
    '
End If
'
End Sub

Descarga el archivo de ejemplo

Descargar el ejemplo Mostrar y vocalizar actividades que tengo pendientes.rar

Curso Validación de datos en Excel – Parte #2 – Captura condicionada

$
0
0
Ver Parte #1 – Primero pasos con validación de datos en excel.

Captura condicionada con Validación de datos usando fórmulas

En esta segunda parte aprenderemos a armar una serie de fórmulas para tener una captura condicionada, es decir, que se permita el ingreso de valores en las celdas siempre y cuando se hayan ingresado en celdas anteriores, forzando al usuario seguir un orden de ingreso.

Usando Validación de datos sólo se permitirá el ingreso de valores celda por celdas comenzando por la primera.

Figura 1. Usando Validación de datos sólo se permitirá el ingreso de valores celda por celdas comenzando por la primera.

Ver Video Validación de datos en Excel – Parte #2 – Captura condicionada

SUSCRÍBETE a EXCELeINFO en YouTube para aprende más de Excel.

En esta segunda parte aprenderás a combinar los siguientes temas:

    • Definir un mensaje de entrada al usuario.
    • Definir un mensaje para mostrar al usuario cuando ingrese datos no válidos.
    • Los operadores de comparación “<” y “>”.
    • El uso de la función Y.

Definir mensaje de entrada

Nos dirigimos a la pestaña Datos > Validación de datos. En el formulario que se abre elegimos la pestaña Mensaje de entrada, para definir un mensaje que le sirva al usuario para saber qué datos ingresar.

Elegimos con la tecla [Ctrl] las siguiente celdas C8, C11, C14 y C17. Y definimos el mensaje como lo vemos en la Figura 2.

Se muestra un mensaje donde nos pide ingresar un valor siempre y cuando se haya ingresado un valor anterior.

Figura 2. Se muestra un mensaje donde nos pide ingresar un valor siempre y cuando se haya ingresado un valor anterior.

Definir mensaje de error

En caso de no haber seguido instrucciones e ingresar datos sin seguir el orden, se mostrará el mensaje de la Figura 3.

Se mostrará un mensaje en caso de haber ingresado un valor sin seguir el orden.

Figura 3. Se mostrará un mensaje en caso de haber ingresado un valor sin seguir el orden.

Uso de fórmulas para condicionar ingreso de valores

Como dijimos al principio, forzaremos al usuario a ingresar valores celda por celda, siguiendo el orden de ingreso. Para ello ingresa cada una las siguientes fórmulas en la sección Configuración > Personalizada.

    • Celda [C8]: =C5<>””
    • Celda [C11]: =Y(C5<>””,C8<>””)
    • Celda [C14]: =Y(C5<>””,C8<>””,C11<>””)
    • Celda [C17]: =Y(C5<>””,C8<>””,C11<>””,C14<>””)

Ingresamos una fórmula para definir una regla personalizada.

Figura 4. Ingresamos una fórmula para definir una regla personalizada.

Se muestra el mensaje de error, ya que no se ingresó un valor en Apellido paterno.

Figura 4. Se muestra el mensaje de error, ya que no se ingresó un valor en Apellido paterno.

Descarga el ejemplo

Descargar el ejemplo EXCELeINFO – Validación de datos en Excel #2 – Captura condicionada.zip

Ver Parte #1 – Primero pasos con validación de datos en excel.

Curso Validación de datos en Excel – Parte #3 – Manejo de valores duplicados

$
0
0
VER PARTE #2 – MANEJO dE VALORES DUPLICADOS CON VALIDACIÓN DE DATOS

Manejo de duplicados

En esta cuarta entrega del curso de Validación de datos veremos un caso típico en donde requerimos que sólo se acepten registros únicos dentro de un rango.

Se prohibirán los valores duplicados.

Figura 1. Se prohibirán los valores duplicados.

Ver Video Validación de datos en Excel – Parte #3 – Valores duplicados

SUSCRÍBETE a EXCELeINFO en YouTube para aprende más de Excel.

Usando CONTAR.SI para permitir registros únicos

La función CONTAR.SI nos ayudará a hacer un conteo de las veces en que un valor se encuentra dentro de un rango. En la parte izquierda de nuestra columna ingresamos la siguiente fórmula:

=CONTAR.SI($C$5:$C$11,C5)=1

Ahora, en la Figura 2 vemos cómo la fórmula nos devuelve verdadero cuando sólo hay un valor único en el rango.

Nos devuelve VERDADERO cuando se encuentra un registro único.

Figura 2. Nos devuelve VERDADERO cuando se encuentra un registro único.

Configurando la regla personalizada

La misma fórmula que usamos en la celda, la usaremos como regla personalizada en Validación de datos. Copiamos la fórmula, elegimos el rango [C5:C11]. Nos dirigimos a Datos > Validación de datos. En la pestaña Configuración elegimos Permitir > Personalizada. Pegamos la fórmula. Posteriormente configuramos los mensajes de entrada y de error, como lo vemos en las Figuras 4 y 5.

Definimos fórmula personalizada.

Figura 3. Definimos fórmula personalizada.

Configuramos mensaje de entrada.

Figura 4. Configuramos mensaje de entrada.

Se mostrará un mensaje de advertencia si se ingresa un duplicado, pero lo dejará pasar.

Figura 5. Se mostrará un mensaje de advertencia si se ingresa un duplicado, pero lo dejará pasar.

Validacion de datos en Excel

Figura 6. Animación de Validación de datos.

Descarga el ejemplo

Descargar el ejemplo EXCELeINFO – Validación de datos en Excel #3 – Manejo de valores duplicados.zip

 

VER PARTE #2 – MANEJO dE VALORES DUPLICADOS CON VALIDACIÓN DE DATOS

Curso Validación de datos en Excel – Parte #4 – Combinando reglas básicas

$
0
0
VER PARTE #3 – MANEJO DE VALORES DUPLICADOS CON VALIDACIÓN DE DATOS

Función Y para combinar reglas básicas

Sin bien las reglas básicas de Validación de datos son muy útiles al momento de restringir la captura de ciertos valores, en otras ocasiones nos será de utilidad hacer una combinación de éstas para tener reglas más especificas para casos, igualmente específicos. La función Y nos ayudará a hacer combinaciones de reglas personalizadas, ya que la misma función nos valida que diferentes pruebas lógicas sean verdaderas.

Ver video Validación de datos en Excel – Parte #4 – Combinando reglas básicas

Suscríbete a EXCELeINFO en YouTube para aprender más de Excel y macros

Caso 1 – Función Y, ESNUMERO y LARGO

En este Caso 1 tendremos una regla personalizada que nos validará si el valor de una celda es número, además de que se validará que cumpla con cierta longitud. Nos auxiliaremos de las funciones ESNUMERO y LARGO como valores lógicos de la función Y.

En la Figura 1 vemos que tenemos el rango [C5:C11] el cual elegiremos y nos dirigimos a Datos > Validación de datos e ingresamos la siguiente fórmula:

=Y(ESNUMERO(C5),LARGO(C5)=10)

Fórmula para validar números con longitud a 10 caracteres

Figura 1. Fórmula para validar números con longitud a 10 caracteres.

Caso 2 – Función Y, IZQUIERDA y LARGO

Ahora tenemos la necesidad de validar un tipo de clave de usuario en la que forzosamente debe comenzar con los caracteres “ABC-“, además de cumplir con la cantidad de 8 caracteres de largo. Haremos uso de las funciones Y para combinar las reglas, IZQUIERDA para validar los primeros 4 caracteres al comienzo de la cadena y LARGO para validar la longitud del texto.

De la misma manera, nos vamos a Datos > Validación de datos, e ingresamos la siguiente fórmula:

=Y(IZQUIERDA(C5,4)=”ABC-“,LARGO(C5)=8)

Validamos los primeros 4 caracteres de una cadena y la longitud de 8

Figura 2. Validamos los primeros 4 caracteres de una cadena y la longitud de 8.

Caso 3 – Permitir lista sin lista desplegable

En el primer capítulo de esta serie vimos cómo definir una lista de validación en una celda para elegir ciertos valores permitidos. En este caso tenemos una lista de días festivos que se festejan en México.

Lista de días festivos en México

Figura 3. Lista de días festivos en México.

Lo que deseamos es que en las celdas sólo se pueda ingresar una fecha de la lista de la Figura 3, con la salvedad de que no queremos que se muestre una lista de Validación al elegir la celda, o en fórmula podríamos usar la función Y, y que sus argumentos sean cada uno de los valores de la lista, pero la verdad no sería muy práctico hacerlo con fórmula.

Elegimos el rango de celdas, nos vamos a Datos > Validación de datos.

  • En Permitir elegimos Lista.
  • En origen elegimos la lista de fechas de la hoja Días festivos.
  • Desmarcamos la opción Celda con lista desplegable.

Sólo se permitán fechas de la lista en la hoja Dias festivos.

Figura 4. Sólo se permitán fechas de la lista en la hoja Dias festivos.

Definir mensaje de entrada y error

Definimos mensaje de entrada y error

Figura 5. Definimos mensaje de entrada y error.

Descarga el ejemplo

Descargar el ejemplo EXCELeINFO – Validación de datos en Excel #4 – Combinar reglas.zip

VER PARTE #3 – MANEJO DE VALORES DUPLICADOS CON VALIDACIÓN DE DATOS

Curso Validación de datos en Excel – Parte #5 – Validar email – @EXCELeINFO

$
0
0
VER PARTE #4 – COMBINAR REGLAS BÁSICAS DE VALIDACIÓN DE DATOS

Estamos a punto de terminar este entrenamiento de Validación de datos en Excel y conforme armo los capítulos, me doy cuenta que Excel tiene mucho que ofrecer incluso con estas herramientas que al principio pueden parecer simples en su uso, pero nos sorprenden en la cantidad de usos útiles que les podemos dar.

Ver video Validación de datos en Excel – Parte #5 – Validar email

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Validar email con fórmulas

En esta parte #5 veremos dos maneras de validar un email con Validación de datos: la primera será mediante una fórmula y la segunda mediante la integración de Validación de datos con macros.

Con respecto al primer ejemplo usaremos la función ENCONTRAR para devolver la posición de la arroba “@”, y  en caso de encontrarse en el texto usaremos la función ESNUMERO para devolver VERDADERO o FALSO dependiendo si se encuentra dicho caracter. No dirigimos a la pestaña Datos > Validación de datos. La fórmula que usaremos será:

=ESNUMERO(ENCONTRAR(“@”,C5))

Fórmula personalizada para validar email.

Figura 1. Fórmula personalizada para validar email.

Validar email mediante una UDF (función personalizada con macros)

Para validar un email con macros primero iremos iremos a esta liga para obtener la macro de una UDF para validar emails en Excel.

Código vba de la función personalizada UDF

Option Explicit

'***************************************************************************
'Referencias: Microsoft  vb Script Regular Expressions
'   http://www.tipsntracks.com/117/validate-an-email-address-using-regular-expressions.html
'   https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular
'***************************************************************************

Function valida_email_fx(email As String) As Boolean

Application.Volatile

'Declaramos variables
Dim oReg As RegExp

' Crea un Nuevo objeto RegExp
Set oReg = New RegExp

On Error GoTo ErrorHandler

'Expresión regular para validar direcciones .com
'oReg.Pattern = "^[\w-\.]+@\w+\.\w+$"

' Expresión regular para validar direcciones .com.mx
oReg.Pattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"

' Comprueba y Retorna TRue o false
valida_email_fx = oReg.Test(email)

Set oReg = Nothing

Exit Function

'En caso de error
ErrorHandler:

MsgBox "Ha ocurrido un error: ", vbExclamation, "EXCELeINFO"

End Function

Pasos para hacer funcionar la UDF

1. En Excel presionamos la combinación de teclas [Ctrl] + [F11].

2. Una vez abierto el IDE de vba, damos click derecho en el proyecto donde quedamos que esté la macro y elegimos Insertar Módulo.

3. Pegamos la macro.

Usaremos la función valida_email_fx para validar emails.

Figura 2. Usaremos la función valida_email_fx para validar emails.

4. Nos vamos al menú Herramientas > Referencias y habilitamos la librería Microsoft VBScript Regular Expresions 1.0.

Activar la librería para usar expresiones regulares es nuestro código vba.

Figura 3. Activar la librería para usar expresiones regulares es nuestro código vba.

Una vez pegado la macro en el Módulo y activada la librerías de las expresiones regulares. Nos vamos a nuestra hoja de cálculo y en en la celda [F5] ingresamos la siguiente fórmula:

=valida_email_fx(C5)

Seleccionamos el rango [C5:C11] y nos vamos a la pestaña Datos > Validación de datos. En el campo de Personalizada ingresamos la fórmula:

=F5=VERDADERO

Validamos que el resultados de la función sea VERDADERO.

Figura 4. Validamos que el resultados de la función sea VERDADERO.

Valida email en Excel con Validación de datos.

Figura 5. Valida email en Excel con Validación de datos.

Descargar el archivo de ejemplo

Descargar el ejemplo EXCELeINFO – Validación de datos en Excel #5 – Valida email.rar

 

VER PARTE #4 – COMBINAR REGLAS BÁSICAS DE VALIDACIÓN DE DATOS

Curso Validación de datos en Excel – Parte #6 – Listas dependientes – @EXCELeINFO

$
0
0
VER PARTE #5 – VALIDAR EMAIL

Hola a todos. Hemos llegado al final de este curso de Validación de datos en Excel, y para esta último ejercicio les tengo preparado un truco que muchos seguramente han buscado. Haremos dos listas de validación, pero lo genial de este ejercicio es que la segunda lista de validación dependerá del contenido de la primera. Para lograrlo usaremos las siguientes funciones: DESREF, COINCIDIR, CONTAR.SI, y CONTARA.

Ver video Validacion de datos en Excel Parte #6 – Listas dependientes

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

El ejercicio

Tenemos una lista de personas que han ganado el premio Nobel, separadas por categoría. Deseamos que al elegir de una lista la categoría, en otra lista de muestren los ganadores del galardón.

Ganadores del premio Nóbel por categoría.

Figura 1. Ganadores del premio Nobel por categoría.

Obtener lista de categorías (registros únicos).

Para obtener una lista de registros únicos de la columna Categoría lo haremos con Filtro Avanzado, siguiente los siguientes pasos:

1. Elegimos la tabla de ganadores.

2. En la pestaña Datos elegimos Avanzadas.

3. En el formulario validamos que el rango elegido sea [$A$1:$G$1029].

4. Rango de criterios [$A$1].

5. Seleccionamos Copiar a otro lugar y seleccionamos [$F$8].

6. Marcamos la opción solo registros únicos.

7. Aceptar.

Se copian registros únicos en base a la columna Categoría.

Figura 2. Se copian registros únicos en  base a la columna Categoría.

Primer Lista de validación (Categorías).

En el paso anterior vimos cómo obtener registros únicos de las categorías. Ahora les mostraré una fórmula para obtener una lista en base a las categorías y cada vez que se añaden alguna categoría a dicha lista, la lista de validación la tomará en cuenta ya la mostrará. Aunque la fórmula la muestro en una celda, recordemos para pasar fórmulas a Validación de datos, es recomendable primero probarlas en celdas.

La fórmula que usaremos para nuestra primera lista de validación será:

=DESREF(F8,1,0,CONTARA(F:F)-1)

Ésta fórmula se usará para obtener nuestra primera lista de validación.

Figura 3. Ésta fórmula se usará para obtener nuestra primera lista de validación.

Ahora que probamos que la fórmula funciona seguimos los siguientes pasos para crear la primera lista de validación:

1. Seleccionamos la celda [D3].

2. En la pestaña Datos elegimos Validación de datos.

3. En Permitir elegimos Lista.

4. Pegamos la fórmula anterior.

5. Aceptar.

Asignar fórmula como Lista de validación.

Figura 4. Asignar fórmula como Lista de validación.

Segunda lista de validación Nombre de ganadores en base a categoría

Ahora toca obtener el nombre de los ganadores de cada Premio Nobel en base a la categoría elegida en la primera Lista de validación. Dejaremos claros algunos hechos para entender mejor la fórmula que usaremos.

Hecho 1. La tabla de Galardones se encuentra en la columna A y columna B.

Hecho 2. La primer Lista de validación se encuentra en el rango [D3].

Para la segunda lista de Validación usaremos la siguiente fórmula, considerando los 2 hechos anteriores:

=DESREF(A1,COINCIDIR(D3,A:A,0)-1,1,CONTAR.SI(A:A,D3),1)

Nota: Si la anterior fórmula la usamos en una celda, hay que considerar que es una fórmula matricial por lo que para aceptar la fórmula debemos presionar [Ctrl] + [Shift] + [Enter].

Fórmula para segunda Lista de validación.

Figura 5. Fórmula para segunda Lista de validación.

Lo mágico

Por último toca comprobar la magia de éstas fórmulas. Vamos a añadir la categoría de Excel (sólo para pruebas).

Añadimos una nueva categoría.

Figura 6. Añadimos una nueva categoría.

La misma categoría la añadimos a nuestra lista de categorías (para la primer lista de validación).

Se añade la categoría Excel a la lista de categorías.

Figura 7. Se añade la categoría Excel a la lista de categorías.

Y ahora vemos cómo se agrega la categoría EXCEL a la primer lista de validación y se rellena la segunda Lista de validación.

Listas de validación dependientes en Excel

Figura 8. Lista de validación dependientes en Excel.

Descargar el archivo de ejemplo

Descargar el ejemplo EXCELeINFO – Validación de datos en Excel #6 – Listas dependientes.rar

VER PARTE #5 – VALIDAR EMAIL

Extraer datos de un archivo de texto a Excel con Power Query

$
0
0

En este artículo veremos la manera de extraer datos desde un Archivo de texto que contiene más de un millón de registros. 2 millones, para ser exactos. Recordemos que Excel sólo admite 1’048,576 filas en cada hoja (Excel 2007 y posteriores), por lo que será poco probable que podamos pasar los 2 millones para manipularlos en una hoja de cálculo. Por fortuna tenemos la herramienta Power Query para Excel, la cual nos ayudará de manera asombrosa para poder editar los datos de nuestro archivo.

Power Query

En Excel 2016 Power Query es ya una herramienta embebida, por lo que no tenemos que descargar nada para poder usar todo su potencial. Si contamos con Excel 2010 ó 2013 y Windows 7 en adelante, entonces podemos descargar Power Query como add-in para Excel y darle más poder para Extraer, Transformar y Cargar datos. Descargar Power Query.

Ver video Extraer datos de un archivo de texto a Excel con Power Query

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Archivo de texto de 2 millones de registros

Como nota, nuestro archivo pesa 77 MB, y por experiencia propia abrirlo en Bloc de notas, se convierte en una tarea lenta, por lo que prefiero usar el programa Notepad++, el cual es más eficiente para abrir archivos de texto grandes. Descargar Notepad++.

Archivo de texto con 2 millones de registros.

Figura 1. Archivo de texto con 2 millones de registros.

Filtrar con Power Query

Una vez que confirmamos la cantidad de registros de nuestro archivo de texto, procederemos a abrirlo con Power Query para extraer una parte del archivo en base a un filtro. En Excel nos dirigimos a la pestaña Datos > Obtener y transformar > Nueva consulta > Desde un archivo > Desde un archivo de texto.

Power Query se encuentra como una herramienta embebida en Excel.

Figura 2. Power Query se encuentra como una herramienta embebida en Excel.

Nos ubicamos en carpeta y seleccionamos nuestro archivo de texto. Ahora se abrirá un formulario con una vista previa de nuestros datos. Elegiremos la opción Editar para preceder a filtrar nuestros datos.

Vista previa de los datos. Elegimos Editar.

Figura 3. Vista previa de los datos. Elegimos Editar.

Al abrirse la ventana de Power Query (Editor de consultas) procedemos a transformar los datos. Primero nos centramos en la columna SUCURSAL para separar la palabra SUC del número de sucursal. Elegimos la columna SUCURSAL. En la pestaña Inicio elegimos la opción Dividir columna > Por delimitador.

Elegimos un delimitador Personalizado, el cual será el guión, que es que separa la palabra SUC del número de sucursal.

Elegimos el guión como delimitador personalizado.

Figura 4. Elegimos el guión como delimitador personalizado.

Extraemos sólo los registros de la sucursal 5. Como ya vimos que tenemos 2 millones de registros, realmente sólo necesitamos los correspondientes a la Sucursal 5. Elegimos la columna SUCURSAL.2 y damos clic en el botón de Auto filtro. Si no se muestran todos los datos damos clic en Cargar más.

Ahora vemos el filtro aplicado.

Figura 5. Ahora vemos el filtro aplicado.

Paréntesis. La grabadora de Power Query.

Power Query funciona como una grabadora de pasos, ya que las acciones que se realizan se van guardando como pasos, y dichos pasos se podrán volver a aplicar, incluso se podrán editar o eliminar los que no queremos que se ejecuten.

Pasos guardados en Power Query.

Figura 6. Pasos guardados en Power Query.

Cargar datos filtrados a Excel

Una vez filtrados nuestros datos de la Sucursal 5, en la pestaña Inicio elegimos la opción Cerrar y cargar. Ahora vemos que se cargaron a una hoja de cálculo 200 mil registros correspondientes al filtro de la Sucursal 5.

Se cargan a Excel los datos filtrados en Power Query

Figura 7. Se cargan a Excel los datos filtrados en Power Query

Aprendamos Power Query para Excel – Instalación y primeros pasos – 1

$
0
0

En un artículo anterior vimos Extraer datos de un archivo de texto a Excel con Power Query, y después de publicar el video decidí que sería buena idea armar una serie de artículos / videos donde explique el uso de esta fabulosa herramienta, y que veas a Excel como nunca lo habías visto.

Power Query en pocas palabras

Bueno, Power Query inició como un complemento (add-in) gratuito para Excel, de hecho lo podíamos instalar desde la versión 2010 de Excel, pero no fue sino hasta Excel 2016, que Microsoft decidió implementar Power Query como una herramienta incorporada (Built-in).

TipPara tener siempre la última versión de Excel, te recomiendo Office 365.

Podemos decir que Power Query es una herramienta que nos ayudará a Extraer información, Transformar los datos de dicha información y Cargar los datos resultantes a Excel, un Modelo de datos o a Power BI. En inglés podrás encontrar que Power Query es una herramienta tipo Extract, Transform and Load (ETL por sus siglas en inglés).

Power Query – Instalación y primeros pasos

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Consideraciones previas

Power Query es compatible con Excel 2010 con Software Assurance, Excel 2013 y Excel 2016. En la página de descarga podrás validar las versiones de Excel compatibles y descargar el instalador.

Recordarte que Power Query es compatible con las versiones de 32 bits y 64 bits de Excel, sólo que no que no es compatible con Excel para Mac.

Cómo determinar qué versión tengo de Excel

Excel 2010

Te diriges a la pestaña Archivo, das clic en Ayuda y verás la siguiente pantalla donde se especifica tu versión de Excel 2010. Verás la versión de Excel y qué arquitectura tienes, si 32 o 64 bits.

Excel 2010

Figura 1. Excel 2010.

Excel 2013

Te diriges a la pestaña Archivo, das clic en Cuenta y verás la siguiente pantalla.

Excel 2013

Figura 2. Excel 2013.

Instalar Power Query

Excel 2016

Power Query ya viene incluído en Excel 2016, por lo que no debemos instalar ni activar absolutamente nada. La herramientas la encontrarás en la pestaña Datos, en la sección Obtener y transformar.

Power Query incluído en Excel 2016, sin instalar nada.

Figura 3. Power Query incluído en Excel 2016, sin instalar nada.

Excel 2010 y Excel 2013

Antes de instalar cierra Excel. Para instalar Power Query en estas versiones, dirígete a la página:

https://www.microsoft.com/es-mx/download/details.aspx?id=39379

Elige el idioma en el que quieras descargar la herramienta.

Elige el idioma de tu preferencia.

Figura 4. Elige el idioma de tu preferencia.

Se te preguntará en qué arquitectura deseas descargar el instalador. Yo lo instalaría en 32 bits.

Elegimos la arquitectura deseada. Se recomienda 32 bits.

Figura 5. Elegimos la arquitectura deseada. Se recomienda 32 bits.

Una vez descargado procedemos a instalar. Recuerda haber cerrado Excel completamente.

Instalar Power Query.

Figura 6. Instalar Power Query.

Una vez que instalaste la herramienta, verás que se creó una nueva pestaña llamada Power Query.

Power Query en Excel 2010.

Figura 7. Power Query en Excel 2010.

Power Query en Excel 2013.

Figura 8. Power Query en Excel 2013.

Primeros pasos con Power Query

Como lo comenté al principio Power Query nos permitirá Extraer información de distintas fuentes, Transformar los datos y después cargarlos a Excel, en otros destinos.

Power Query. Aquí sucede toda la magia de la transformación.

Figura 9. Power Query. Aquí sucede toda la magia de la transformación.

De entre las fuentes que podemos extraer información se cuentan los archivos:

  • Excel.
  • CSV.
  • XML
  • De texto.
  • JSON.
  • Desde una carpeta.

Podemos extraer información de bases de datos:

  • SQL Server.
  • Access.
  • SQL Server Analysis Services.
  • Oracle.
  • IBM DB2.
  • MySql.
  • PostgreSQL.
  • Sybase.
  • Teradata.

También podemos extraer datos de Azure (la nube de Microsoft).

Así como de otras fuentes de datos, como:

  • Sharepoint.
  • Active  Directory.
  • Dynamics.
  • Facebook.
  • ODBC.
  • Crear consultas desde cero.
  • Entre otras.

Entre las acciones de transformación que Power Query nos permitirá están:

  • Identificar los tipos de datos de cada columna.
  • Identificación de fechas en diferentes idiomas.
  • Combinar varias fuentes de datos, para después analizarlas.
  • Repetir las acciones de transformación una y otra vez.
  • Normalizar datos.
  • Manipular fácilmente base de datos de millones de registros.
  • Anexar datos de otras fuentes de datos.
  • Uso del lenguaje M.
  • Entre muchas cosas más.

Y al final, la información previamente manipulada la podremos cargar y analizar en:

  • Hoja de cáculo de Excel.
  • Dejar la conexión activa.
  • Añadir al Modelo datos.
  • Power Pivot.
  • Power Map.
  • Power View.
  • Tablas dinámicas.
  • Power BI.

TipEl tema de Power Query puede dar para mucho, por lo que te recomiendo estar al pendiente de siguientes artículos y videos donde veremos casos prácticos.

Aprendamos Power Query para Excel – Importando datos básicos y primeras trasformaciones – 2

$
0
0

Tip1 – Instalación y primeros pasos.

Siguiendo con el tema de Power Query, en esta ocasión importaremos datos de un archivo TXT y haremos algunas opciones básicas de detección de tipos de columnas y transformación de datos, tales como:

  • Identificar números enteros, con decimales, fecha, hora y texto.
  • Convertir a mayúsculas y minúsculas.
  • Eliminar espacios excesivos.
  • Convertir a nombre propio.

Ver video Power Query – Importando datos básicos

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Importación de datos de un archivo TXT

Tenemos un archivo de texto el cual tiene algunas columnas, entre las que se encuentran datos Enteros, Decimales, Fecha y hora, y Texto.

Archivo de texto que importaremos con Power Query.

Figura 1. Archivo de texto que importaremos con Power Query.

Para importar nuestro archivos dentro de Excel 2016:

  • Vamos a la ruta Pestaña Datos > Nueva consulta > Desde un archivo > Desde un archivo de texto.
  • Elegimos el archivo ejemplo01.
  • En el siguiente formulario presionamos Editar.

Identificación automática de tipos de datos por columna

En las versiones más recientes de Power Query, la herramienta por lo regular hace un excelente trabajo en identificar automáticamente el tipo de datos que hay en cada columna de nuestros archivos, y en la mayoría de las ocasiones se ejecutan 3 pasos, los cuales son:

  • Origen (muestra la vista previa de los datos en bruto).
  • Encabezados promovidos (identifica la primera filas de datos como encabezados).
  • Tipo cambiado (identifica el tipo de datos en cada columna).

Se detecta automáticamente el tipo de datos. Clic en la X para borrar pasos.

Figura 2. Se detecta automáticamente el tipo de datos. Clic en la X para borrar pasos.

Eliminaremos los dos últimos pasos para aprender a hacer los pasos desde cero. Cuando ponemos el curso sobre un paso, en la parte izquierda se mostrará una X la cual si le damos clic borrará el paso.

Al borrar los pasos vemos que no se detectan los encabezados y el tipo de datos.

Figura 3. Al borrar los pasos vemos que no se detectan los encabezados y el tipo de datos.

Para volver a hacer los pasos que borramos podemos realizar:

  • Para encabezados. Pestaña Inicio > Usar la primera fila como encabezado.
  • Elegimos la columna ent (entero). Clic derecho > Cambiar tipo > Número entero.
  • Columna dec (decimal). Clic derecho > Cambiar tipo > Número decimal.
  • Columna fec-hor (fecha y hora). Clic derecho > Reemplazar los valores > Reemplazar la apóstrofe por vacío > Aceptar.
  • Columna fec-hor (fecha y hora). Clic derecho > Cambiar tipo > Fecha/Hora.

Transformar datos de texto

Para la columna tex (texto) haremos algunas opciones de transformación, que habitualmente haríamos con funciones de Excel o incluso en la sección texto de nuestro EXCELeINFO add-in. Damos clic derecho > Transformar:

  • minúsculas.
  • MAYÚSCULAS.
  • Poner En Mayúsculas Cada Palabra. Similar a la función NOMPROPIO de Excel.
  • Recortar. Lo mismo que hace la función Espacios. Al elegir la opción sólo deja los espacios individuales entre palabras, eliminando los iniciales y finales.**
  • Limpiar. Eliminar los caracteres no imprimibles.
  • Longitud. Reemplaza los valores por la longitud de los mismos. Se recomiendo recortar previamente.
  • JSON. Extrae los valores de un arreglo JSON.
  • XML. Extrae los datos de un formato XML

Toma en cuenta**Hasta hoy, 29-ene-2017, la opción Recortar sólo elimina los espacios al inicio y al final, no así cuando hay más de dos espacios entre palabra.

Transformar datos como haríamos con funciones y macros.

Figura 4. Transformar datos como haríamos con funciones y macros.

Agregar columnas

Las acciones de transformación Cambiar tipo y Transformar que vimos en los pasos anteriores, todas ella se pueden realizar desde la pestaña Transformar. Si nos fijamos, a la derecha tenemos una pestaña llamada Agregar columna.

TipSi usamos la pestaña Transformar las acciones se harán sobre la misma columna. En cambio, si activamos la pestaña Agregar columna, se agregará una columna al final por cada acción de transformación aplicada a determinada columna.

Elegimos la pestaña fec-hor (fecha y hora), nos vamos a la pestaña Agregar columna > Fecha > Solo fecha, y vemos cómo se agrega al final una columna con el nombre Date donde vemos sólo la fecha, excluyendo la hora, que sí tiene la primer columna.

Elegimos la columna > Fecha > Solo fecha > Se insertar una nueva columna.

Figura 5. Elegimos la columna > Fecha > Solo fecha > Se insertar una nueva columna.

Cargar datos a Excel

Al final, para cargar los datos en una hoja de cálculo nos vamos a la pestaña Archivo > Cerrar y cargar.

Se cargan los datos desde un TXT.

Figura 6. Se cargan los datos desde un TXT.

Descarga el ejemplo

 Descargar el ejemplo EXCELeINFO – ejemplo01.rar

Tip1 – Instalación y primeros pasos.

Aprendamos Power Query para Excel – Aplicar pasos guardados y Tablas dinámicas – 3

$
0
0

TipVer curso completo Aprendamos Power Query para Excel.

Este es la tercera parte de nuestra serie Aprendamos Power Query en la cual estamos viendo nuevas herramientas para aplicar a nuestros datos y también una manera sorprendente de ahorrarnos tiempo al momento de querer repetir lo que hacemos en Power Query. Recordemos que habíamos comentado que Power Query funciona como una grabadora de pasos donde los mismo podemos volver a aplicar las veces que queramos.

En este capítulo aprenderás:

  • Importar datos de un archivo CSV, separado por comas.
  • Eliminar n cantidad de filas.
  • Cambiar tipos de datos.
  • Ordenar.
  • Cargar a Excel y hacer Tabla dinámica.
  • Aplicar los pasos guardados en un nuevo archivo.

Ver video Power Query – Aplicar pasos guardados y Tablas dinámicas

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Importar datos de un archivo CSV

Para importar los datos seguimos los siguientes pasos:

  • Pestaña Datos > Nueva consulta > Desde un archivo > Desde un archivo CSV.
  • Elegimos el archivo ejemplo02 – CSV.csv.
  • Clic en Importar.
  • En la siguiente ventana validamos que detecte el delimitador Coma.
  • Clic en Editar.

Validamos el separador Coma.

Figura 1. Validamos el separador Coma.

Eliminar n cantidad de filas

En la ventana Editor de consultas vemos que las primeras 4 filas del archivo son innecesarias para el análisis de los datos, ya que son sólo informativas. Además vemos que desde la fila 5, nuestros dato están en columnas.

Para eliminar las 4 filas iniciales:

  • Pestaña Inicio > Quitar filas > Quitar filas superiores.
  • Ingresamos el número 4.
  • Clic en Aceptar.
  • Cuando las filas estén eliminadas elegimos la Pestaña Inicio > Usar la primera fila como encabezado.

Eliminamos las primeras 4 filas de los datos.

Figura 2. Eliminamos las primeras 4 filas de los datos.

Eliminar columnas, cambiar tipo de datos y ordenar

De nuestro archivo deseamos conservar algunas columnas y cambiar el tipo de datos de otras columnas. Hacemos lo siguiente:

  • Elegimos la columna FECHA_COMPRA, presionamos la tecla [Ctrl] y sin soltar elegimos SUCURSAL, VENDEDOR, PRODUCTO y CANTIDAD.
  • Clic derecho sobre una de esas columnas y elegimos Quitar otras columnas.
  • Elegimos la columna FECHA_COMPRA, Clic derecho > Cambiar tipo > Fecha.
  • Elegimos la columna CANTIDAD, Clic derecho > Cambiar tipo > Número entero.
  • Elegimos la columna FECHA_COMPRA, Pestaña Inicio > Botón AZ (ordenar ascendente).

Datos transformados.

Figura 3. Datos transformados.

Cargar datos a hoja de cálculo y Tabla dinámica

Ahora cargaremos los datos a una hoja de cálculo y armaremos una Tabla dinámica con los datos transformados. Seguimos los siguientes pasos:

  • Pestaña Archivo > Cerrar y cargar.
  • Una vez que los datos se cargan en una Tabla, elegimos la Pestaña Insertar > Tabla dinámica.
  • La columna SUCURSAL la movemos a Filtros, la columna FECHA_COMPRA la movemos a Filas y la columna CANTIDAD la movemos a Valores.
  • Elegimos todos los datos de CANTIDAD y damos formato de miles.
  • En la Tabla dinámica, en los datos de fecha damos Clic derecho > Agrupar > Por Dias, Meses y Años.

Vista final de la Tabla de datos y la Tabla dinámica.

Figura 4. Vista final de la Tabla de datos y la Tabla dinámica.

Aplicar los pasos en un archivo nuevo

Así como si corriéramos una macro, en Power Query podemos aplicar pasos guardados en un archivo nuevo. Sólo debemos tener algo en cuenta: el nuevo archivo debe llamarse igual que el nuevo y estar en la misma carpeta.

Como vimos en este ejemplo, el archivo contiene datos del mes de noviembre; lo que haremos es reemplazar dicho archivo CSV por otro que se tiene el mismo nombre pero que tiene información de diciembre.

TipEl archivo nuevo debe tener la misma estructura de columnas para que los pasos se ejecuten sin complicaciones.

Reemplazar el archivo anterior con el archivo nuevo, con otros datos, pero la misma estructura.

Figura 5. Reemplazar el archivo anterior con el archivo nuevo, con otros datos, pero la misma estructura.

Aplicar los pasos en el nuevo archivo

Una vez que se reemplazó el archivo anterior (noviembre) con el archivo nuevo (diciembre), nos dirigimos a la Pestaña Datos > Actualizar todo (en dos ocasiones). Y veremos que se toman los nuevos datos sin hacer nada más.

Clic dos veces para actualizar conexión y Tabla dinámica.

Figura 6. Clic dos veces para actualizar conexión y Tabla dinámica.

Descargar los archivos de ejemplo

Descargar el ejemplo ejemplo02 – CSV(2).rar

TipVer curso completo Aprendamos Power Query para Excel.

Aprendamos Power Query para Excel – Importar todos los archivos de una carpeta – 4

$
0
0

TipVer curso completo Aprendamos Power Query para Excel.

En esta cuarta parte de la entrega Aprendamos Power Query, vamos a ver cómo importar todos los archivos de una carpeta, además de añadir nuevos archivos a la consulta cuando éstos han sido agregados a la carpeta.

En este capítulo aprenderás:

  • Importar todos los archivos CSV de una carpeta.

  • Transformar en minúsculas.

  • Hacer filtros en columnas.

  • Combinar todos los archivos. Columna Content.

  • Quitar filas que contengan errores.

  • Cargar los datos a Excel y hacer una Tabla dinámica.

  • Mover nuevos archivos a la carpeta y actualizar la Consulta para que se cargue la nueva información.

Ver video Power Query – Importar todos los archivos de una carpeta

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Importar todos los archivos de una carpeta

Tenemos una carpeta donde guardamos archivos CSV con información segmentada en meses. Deseamos unir todo los archivos en una sola consulta, para posteriormente realizar una Tabla dinámica para su análisis.

Extraeremos los archivos de la carpeta "Por años".

Figura 1. Extraeremos los archivos de la carpeta “Por años”.

Una vez que identificamos la carpeta en donde está nuestros datos, realizamos los siguientes pasos en Excel:

  • En la pestaña Datos > Nueva consulta > Desde un archivo > Desde una carpeta.
  • Elegimos la carpeta Concentrado\Por años > Aceptar.
  • Cargar.

Ahora vemos una vista previa de nuestros archivos, aunque vemos que se muestran de manera diferente a como lo hemos visto en capítulos anteriores. Ahora vemos que la tabla nos muestra las propiedades y características de nuestros archivos.

Vemos las propiedades y características de los archivos.

Figura 2. Vemos las propiedades y características de los archivos.

Filtrar sólo las extensiones que decidamos

Noten que la columna Extensión nos muestra el dato “.csv”, lo que indica que todos los archivos son CSV separados por coma, pero si en la carpeta hubiera otro tipo de archivos, tal vez quieran protegerse y hacer algo para que siempre nos cargue los archivos CSV o lo que definamos. Hagamos lo siguiente:

  • Clic derecho en la columna Extensión > Transformar > minúsculas.
  • En la misma columna Extensión seleccionamos la flecha de filtro > Filtros de texto > Es igual a.
  • Ingresamos el valor .csv > Aceptar.

Combinar archivos

El siguiente paso será unir todos los archivos. Pongamos especial atención en las primeras 3 columnas de nuestra tabla, la primera columna se llama Content y esta columna nos permitirá ver el contenido de todos los archivos, la segunda columna nos muestra el nombre del archivo y la tercera columna nos muestra la extensión.

La columna Content, en su encabezado noten que tiene un ícono diferente al resto de las columnas, es un ícono con flechas hacia abajo Columna Content Power Query. Ahora vamos a proceder a presionar ese botón y vemos que se despliegan los datos de los archivos.

Vemos los datos de todos los archivos. Noten los pasos que e hicieron al presionar el botón Content.

Figura 3. Vemos los datos de todos los archivos. Noten los pasos que e hicieron al presionar el botón Content.

Ahora bien, Power Query nos muestra solo 999+ filas. El penúltimo paso que realizó al presionar el botón de la columna Content fue Usar primera la fila como encabezado, lo que parece que se hizo correcto, pero, a simple vista no vemos que los encabezados de los demás archivos están más abajo. Cuando Power Query hace el último paso que es Tipo cambiado, si hubiese algún dato que no coincida con el formato detectado entonces lo marcará como error. Hagamos lo siguiente:

  • Seleccionamos la columna FECHA_COMPRA.
  • Elegimos la pestaña Inicio > Quitar filas > Quitar errores.

TipAl quitar errores nos deshacemos de las filas con datos inválidos.

Cargar datos y analizar con Tabla dinámica

En la pestaña inicio presionamos Cerrar y cargar. Vemos que se cargaron 13,606 filas. Ahora vamos hacer una Tabla dinámica para validar los datos:

  • Pestaña Insertas Tabla dinámica> Elegimos Nueva hoja de cálculo > Aceptar.
  • FECHA_COMPRA lo movemos a Filas.
  • Seleccionamos A2 > Clic derecho > Agrupar > Marcamos Años, meses y días > Aceptar.
  • Clic derecho sobre ene > Expandir o contraer > Contraer todo el campo.
  • CANTIDAD lo movemos a Valores.

Ahora vemos la Tabla dinámica con el dato del año 2015 y los meses correspondientes.

Tabla dinámica y Consulta de Power Query.

Figura 4. Tabla dinámica y Consulta de Power Query.

Agregar más archivos

Los archivos que cargamos de la carpeta Concentrado\Por años tomó todos los archivos incluidos también de la carpeta Concentrado\Por años\2015. Ahora lo que tenemos que hacer es mover la carpeta Concentrado\2016 a la carpeta Concentrado\Por años para que se tomen también los archivos de ese año.

Movemos la carpeta 2016 a Por años.

Figura 5. Movemos la carpeta 2016 a Por años.

Actualizar consulta y tomar los nuevos datos

  • De nuevo en Excel nos vamos a la pestaña Datos > Actualizar todo. Ahora vemos 27,427 filas cargadas.
  • Presionamos de nuevo Actualizar todo. Y ahora vemos que la Tabla dinámica tomó los nuevos datos del año 2016.

Vemos que se agregar filas a la consulta y se agrega el año 2016 a la Tabla dinámica.Vemos que se agregar filas a la consulta y se agrega el año 2016 a la Tabla dinámica.

Figura 6. Vemos que se agregar filas a la consulta y se agrega el año 2016 a la Tabla dinámica.

Descargar los ejemplos

Descargar el ejemplo ejemplo03 – Concentrado.rar

TipVer curso completo Aprendamos Power Query para Excel.

Viewing all 466 articles
Browse latest View live