Saltar al contenido

Aplicación del "power query" videos - (nuevo "anular dinamización" lunes 04-01-2016)


GabrielRaigosa

Recommended Posts

En una consulta reciente se necesita obtener/extraer una lista de correos únicos de una base de datos llamada general (con correos buenos y correos malos), siempre que esos correos "NO" estén presentes en otra lista que le llaman correos "malos".

Enlace al tema del usuario [uSER=181609]@miaweb[/uSER] :

Pendiente - Limpieza de email basura hasta 90.000

Les dejo un vídeo con el procedimiento y el enlace para descargar el archivo sin macros con las consultas hechas con Power Query.

Dropbox - Lista de correos.xlsx

Debería funcionar con Excel 2010/2013/2016

(complemento requerido en las versiones 2010/2013)

El Power Query se puede conectar a bases de datos de mas de 1 millón de registros, una hoja de Excel solo puede tener 1 millon de filas con datos, si las consultas se hacen a bases de datos externas no se deben llevar los valores de esas consultas al libro. (1'048.576)

Al libro solo se debería llevar el resultado final del Query, siempre se sea menor al número máximo de filas permitidas por la hoja.

Si las consultas se hacen a tablas, como en el ejemplo, no es necesario indicar un "rango", es decir que si el tamaño de las tablas, ya sea la tabla llamada "General" o la tabla llamada "Malos" cambian de tamaño, ya sea por que aumenten o disminuyan de registros solo es necesario "actualizar" la "tabla" (consulta) final para obtener el resultado deseado.

Download Microsoft Power Query para Excel from Official Microsoft Download Center

Enlace a comentario
Compartir con otras webs

Hola [uSER=23001]@GabrielRaigosa[/uSER].

Muy interesante la solución planteada con la ayuda de Power Query. Gracias por compartirlo.

Te comento que fui yo quien propuso la macro con la cual hiciste la prueba. La diferencia radica en que para armar el ejemplo utilicé correos aleatorios, y no revisé en el listado General que hubiesen correos duplicados (los generé con aleatoriedad). Ya agregué un par de líneas al código donde primero elimino duplicados en los dos rangos para hacer la comparación (aunque en el segundo rango, el de los malos, no era necesario, puesto que el diccionario deja solamente registros únicos al armarlo).

Dejo por aquí la macro con la modificación comentada. ¡Bendiciones!

MEGA

Enlace a comentario
Compartir con otras webs

En otra consulta diferente, un usuario quiere obtener el valor máximo de una tabla, omitiendo las celdas que contienen errores.

Enlace al tema del usuario [uSER=173328]@williams.vasquez[/uSER] :

Pendiente - Función máximo con condiciones

Les dejo un vídeo con el procedimiento y el enlace para descargar el archivo:

Dropbox - Consulta valor máximo.xlsx

Debería funcionar con Excel 2010/2013/2016

(complemento requerido en las versiones 2010/2013)

Download Microsoft Power Query para Excel from Official Microsoft Download Center

Enlace a comentario
Compartir con otras webs

En otra consulta, el usuario [uSER=216260]@jonasmajo[/uSER]

Enlace al tema:

Pendiente - Contar categorías de datos en columna

Quiere obtener el numero de horas totales por empleado "asignadas" o "trabajadas" en los diferentes turnos, a partir de la "asignación" o "registro" de turnos en una tabla.

El numero de horas por turno se encuentran anotados/registrados en otra tabla.

El Power Query permite cruzar dicha información.

Enlace al video explicando el procedimiento.

Debería funcionar con Excel 2010/2013/2016

(complemento requerido en las versiones 2010/2013)

Download Microsoft Power Query para Excel from Official Microsoft Download Center

Enlace a comentario
Compartir con otras webs

Filtro avanzado con Power Query

Hoy les traigo un video de como aplicar el Power Query para usarlo como "filtro Avanzado"

La consulta que tomé como referencia para esté video puede ser vista en:

Foro Excel • Ver Tema - Extraer filas segun criterio(s) dados

Enlace a comentario
Compartir con otras webs

hay manera de que no haya que ir dando a "actualizar datos para ir viendo resultados"? Me parece una herramienta muy potente y sencilla de utilizar, gracias a esos vídeos tan instructivos, pero es el problema que yo le veo. Necesito ir viendo las cuentas en tiempo real para ir rellenando días. Gracias

Enlace a comentario
Compartir con otras webs

pero es el problema que yo le veo.

"Eso no es problema" - Se puede hacer con una "macro".

Con un "evento de hoja", "cada vez que haya un cambio en la región donde se introducen los datos" el Excel hará un recálculo.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Este evento puede detectar cambios y obligar la actualización.

Otra opción con un simple "botón" que haga el recálculo cuando el usuario lo desee.

Puede descargar y ver el ejemplo del video ("Filtro avanzado con Power Query") con la opción del "botón para actualizar".

Dropbox - Filtro avanzado con Power Query.xlsx

La opción del "evento de hoja" recalcula "seguido", tendría que ensayar para decidir cual le conviene mas.

Enlace a comentario
Compartir con otras webs

En esta consulta:

Pendiente - Ordenar fechas repetidas

El usuario [uSER=27312]@elkely[/uSER]

Quiere ordenar datos y obtener una nueva tabla a partir de ellos, se aprecia en el archivo que estos tienen "origen externo", una opción podría ser usar una consulta con Power Query a datos externos, en el vídeo usaré los datos proporcionados, pero sería mas eficiente hacer la consulta al origen de los datos.

Si los datos de origen cambian, adición, eliminación o cambio de datos, y al ser una consulta enlazada a una tabla solo se requiere un clic derecho sobre la tabla resultante para que en esta se ven reflejados los cambios.

Enlace a comentario
Compartir con otras webs

Ahora les traigo un caso que podría resolverse con "Anular dinamización", una interesante opción del "Power Query".

Es una consulta de [uSER=13424]@montagú[/uSER] én este tema: Pendiente - Convertir tabla para importar a erp

Requiere una transformación del formato (distribución) de sus datos actuales a otro diferente, en el vídeo les mostrare como hacer esa transformación.

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Si  no me he liado con los paréntesis: Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False Application.Calculation = xlManual Application.EnableEvents = False If Not Intersect(Target, Range("$L$5:$Y$9")) Is Nothing Then Range("E22") = WorksheetFunction.Sum(Range("E4:E21")) Range("E23") = WorksheetFunction.Sum(Range("E4:E19")) Range("E24") = Range("E23") - WorksheetFunction.Sum(Range("I4:I7")) Range("I22") = WorksheetFunction.Sum(Range("I4:I21")) Range("I4") = Range("E23") * 0.1 Range("I5") = Range("EN10") * Range("EN11") Range("I6") = Range("E23") * 0.0127 Range("I7") = Range("E23") * 0.006 Range("I25") = Range("E22") - Range("I22") Range("I12") = Range("E24") * 0.03 Range("C7") = Range("EQ8") - Range("EQ9") + Range("EN13") + Range("EN14") + Range("EN15") + Range("EN16") Range("C9") = Range("EQ9") + Range("EN17") + Range("EN18") + Range("EN19") Range("E7") = Range("E4") / Range("C4") * 7 / 44 * 1.5 * Range("C7") Range("E8") = Range("E4") / Range("C4") * 7 / 44 * 0.3 * Range("C8") Range("E9") = Range("E4") / Range("C4") * 7 / 44 * 1.3 * 1.5 * Range("C9") End If Application.Calculation = xlAutomatic Application.ScreenUpdating = True Application.EnableEvents = True End Sub  
    • Hola de nuevo a ambos, @daren, tu archivo lleva excesivos datos, que creo no son necesarios para la información final que buscas. Te subo otro archivo, simplificado al máximo, que, si lo he entendido bien, con esta fórmula simplificada: =CONTAR.SI('Casos de Prueba'!I:I;"OK")*('Casos de Prueba'!I1="Resultados Ciclo "&COLUMNA(A5)) se calcularía el primer dato, que se encuentra en la columna I. Copiando la fórmula a la derecha las celdas que necesites, se completaría el rango.  Tu fórmula la coloco en D7, y esta nueva en D9, que como ves (si, repito, he interpretado bien lo que buscas), da los mismos resultados. ---------------------------------------------------------------- En cuanto a: Aquí tienes, en el mismo archivo (Hoja 3) lo que devuelve tu fórmula cuando hay un determinado dato en A1 y en B2. No llego a entender qué es lo que quieres exactamente.  Tal vez con una pequeña explicación de lo que esperas obtener, sea suficiente para poner el hilo a la aguja. ? ----------------------------------------------------------------- En el caso de que falte por añadir o evaluar alguna otra variable o parámetro (en tu primer post hablabas sólo de 'OK' y ahora veo que en el archivo figuran además 'KO' y 'BLOCK'), por favor, intenta emular el ejemplo del archivo que estoy subiendo; añade EXCLUSIVAMENTE esos datos en la hoja allá donde proceda, explicando dónde o cómo deben contarse o sumarse. Mejor trabajar siempre con datos anónimos y reducidos. Desconozco si en tu archivo alguno de esos datos puede considerarse confidencial, pero seguro que no interesan a nadie. Mucho mejor obviarlos. Saludos, Plantilla V3 (B).xlsx
    • buenas noches, quisiera saber si puedo mejorar mi macros que se encuentra en el evento change de la hoja de calculo de Excel, son códigos de cálculos básicos, además si me pudieran ayudar a reducir el código o darme algún tip para reducirlo yo mismo estaría muy agradecido.  de ante mano muchas gracias     Private Sub Worksheet_Change(ByVal Target As Range)     Application.ScreenUpdating = False     Application.Calculation = xlManual     Application.EnableEvents = False              If Not Intersect(Target, Range("$L$5:$Y$9")) Is Nothing Then             Sub todo()          Range("E22") = WorksheetFunction.Sum(Range("E4:E21"))     Range("E23") = WorksheetFunction.Sum(Range("E4:E19"))     Range("E24") = WorksheetFunction.Sum(Range("E23") - WorksheetFunction.Sum(Range("I4:I7")))     Range("i22") = WorksheetFunction.Sum(Range("I4:I21"))     Range("I4") = Range("E23") * 0.1     Range("I6") = Range("E23") * 0.0127     Range("I5") = Range("EN10") * Range("EN11")     Range("I7") = Range("E23") * 0.006     Range("I25") = Range("E22") - Range("I22")     Range("I12") = Range("E24") * 0.03     Range("C7") = WorksheetFunction.Sum(Range("EQ8") - (Range("EQ9"))) + Range("EN13") + Range("EN14") + Range("EN15") + Range("EN16")     'Range("E7") = WorksheetFunction.Sum(Range("C7") * ((Range("E4") * 0.0077777)))     Range("C9") = Range("EQ9") + Range("EN17") + Range("EN18") + Range("EN19")     'Range("E9") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 45) * 1.3) * 1.5) * Range("C9")     'Range("E8") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 45) * 0.3)) * (Range("C8"))     Range("E9") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 44) * 1.3) * 1.5) * Range("C9")     Range("E8") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 44) * 0.3)) * (Range("C8"))     Range("E7") = WorksheetFunction.Sum((((Range("E4") / Range("C4")) * 7) / 44) * 1.5) * Range("C7")          End Sub              End If                  Application.Calculation = xlAutomatic     Application.ScreenUpdating = True     Application.EnableEvents = True     End Sub
    • Buenas perdonad la espera adjunto el fichero Excel y explico mas detallado lo que me solicitan: Lo que me solicitan es que esos CP de la pestaña Casos de prueba los cuales tienen formulas para que cuando se copien y peguen junto a sus pasos el CP se va autoincrementando a 1,2,3 etc...., pero si copias ese CP bien solo con el primer paso o con todos sus  pasos y lo insertas entre dos CP no continua con la numeración, como se ve en la foto al hacer eso el CP insertado continua con la numeración CP2 y el de abajo pone también CP2 no se incrementa ni ese ni el valor de CU que hay a la derecha que también es incremental. Necesitaría que continuara con esa numeración aun insertándolo entre medio de 2 tanto el CP como el CU de la derecha. También me solicitan que el campo Ciclo 1 de la pestaña Resumen es auto incremental cuando copias y pegas va sumando 1, pero en las formulas referentes a Ok KO Y bloqueo al copiar y pegar se mantiene la misma formula , la idea es que cuando copies y pegues la fila donde están los ciclos se autoincremente Ciclo a 1,2,3,4 etc... y la formula de los campos OK,KO y Bloqueos se incremente también pasando de la columna I a la J  luego a la k etc... y que en Resultados Ciclo el numero de la formula también se incremente Resultados Ciclo 1 , 2 ,3 etc... que cambie la columna a la vez que el numero de Resultados Ciclo. Gracias por adelantado un saludo. Plantilla v3 Pruebas.xlsx  
    • Saludos amigos espero estén bien Estoy intentando hacer un formulario que me convierta unidades de masa sin embargo  en el mejor de los casos solo he podido lograr la conversión de una unidad a la vez en los TextBox 1, 3, 5, 7, 9, 11 y 13 y cuando lo logro el resultado que se copia  en la celda no se corresponde con el obtenido originalmente en el Textbox del Formulario (frmconv)  ejemplo al convertir 1900 Kg a Lb el resultado en el TextBox1 =4188,78298142 sin embargo al guardar el resultado lo que se copia en la Celda  "F11" es  418.878.298.142,00, adicionalmente el resultado de la conversión no se visualiza inmediatamente por lo que debo de hacer click en los TextBox 1, 3, 5, 7, 9, 11 y 13  para ver el resultado. Mucho les sabre agradecer la ayuda que me puedan brindar. PRUEBA.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.