Queridos amigos, ya están disponibles las inscripciones nuestro CURSO DE DAX EN VIVO (Inicio: 19 OCTUBRE 2024): Pueden registrarse a través de este link: menquisbi.com/e/especializacion-en-lenguaje-dax-edicion-iii-en-vivo Para mayor información, puedes escribirnos por WhatsApp: wa.me/51908805175
Justamente hoy necesitaba hacer unos cálculos en el trabajo, lamentablemente por mi inexperiencia en DAX no los pude realizar, pero viendo este video lo podré resolver y lo más importante lo he podido entender. Muchas gracias por tus conocimientos, impactas de forma muy positiva en todas las personas que estamos aprendiendo. Excelente explicación maestro.
Saludos Muy buena explicación. Mejor dicho y merecido: Excelente!!! Como aprendizaje de mi parte y compartir: En la construcción de filtros compuestos con SUMMARIZE quise reproducir la tabla que "crea" SUMMARIZE( fctVentas, dimCliente[Continente], dimTienda[Continente]), que supuse seria muy sencillo, pero no permite crear una tabla pues ambas columnas tienen el nombre de "Continente" y genera un error, pero al hacerlo como parte de FILTER no da error, tal y como esta en el video. Supongo que la tabla virtual, dentro de FILTER, considera las columnas Continente como distintas mientras que al tratar de hacer la tabla explicita pues NO permite 2 columnas con el mismo nombre.
Cordial saludo Estimado Julio, nuevamente agradeciendo tu trabajo tan importante y útil. En cuanto al filtro compuesto, quise que en lugar de "o" fuera "y", para cliente y tienda de ASIA. No utilicé el filter+ Summarize, en su lugar definí el filtro de Calculate directamente así , las sumas del monto fueron correctas que si lo hubiera hecho con el filtro compuesto. ¿Estarías de acuerdo con lo que hice, cual seria tu recomendación?
Estimado gracias por tus comentarios. Es 100% correcto. La técnica con SUMMARIZE solo se utiliza con filtro O. Con filtros Y solo basta con agregar una argumento mas en CALCULATE, tal cual lo hiciste. Saludos.
Al parecer al momento de este video la función CALCULATE no permitía usar filtros de diferentes tablas y por eso se veía necesario usar SUMMARIZE por el tema de la tabla extendida. Estuve usando CALCULATE añadiendo filtros de distintas tablas y no hay ningún problema. Definitivamente calculate es muy poderosa
Hola Sergio, gracias por tus comentarios. Disculpa, eso no es correcto. CALCULATE siempre pudo utilizar FILTROS DE DIFERENTES TABLA (pero para condiciones "Y", que es el caso por defecto). En el video lo que comento es que NO ES POSIBLE HACER FILTRO OR (condición "O") de diferentes tablas. Eso es algo que no se podía hacer y al día de hoy tampoco es posible, a menos que se utilice SUMMARIZE. Imagino que en un futuro si incorporarán esa opción. Espero haberme hecho entender. Saludos cordiales.
Se que existen demasiados escenario con CALCUTATE , pero debo reconocer que tu explicación es la mejor que he visto a la hora de desglosar dicha función , agradecido por tu tiempo al hacer este video que mas bien es una Master Class !!
Amigos, en el minuto 17:00, si ven la fórmula de la medida, debajo de VALUES puse dimCalendario[Fecha], en realidad debería decir fctVentas[Fecha Orden] (así fue como lo escribí en el reporte de Power BI, cometí un error al pasarlo a la explicación animada). Por lo demás la explicación se mantiene igual y la fórmula saldría correctamente. Saludos y un abrazo.
Julio, en la parte de calculate , yo podria seguir agregando filtros de otras tablas sin necesidad de haber modificado con filter o Summarize simplemente oviando el doble pipe por que esa es la ventaja de calculate ir modificando el filtro a como deseemos el resultado, muy buen video Julio, cada vez que los veo comprendo mas! Saludes
Julio en el ultimo en la construcción en la filtros sobre la tabla de hechos, podríamos haber creado la medida cantidad de ordenes para evitarnos el calculate en la formula y simplemente filtramos las que sean igual a 1?
@@nestormoreira1191 Hola Nestor, muchas gracias por tus comentarios. Es correcto, podemos usar una medida en su lugar, se obtiene el mismo resultado y se seguirá aplicando la transición de contexto de ser el caso. Saludos.
@MenquisBI Hola Julio Saludos, disculpa podrías ayudarme como activar la opción de herramientas de medicion para cambiar rápidamente el formato de los números gracias.
@@sanchezdariomecanica Darío gracias por tus comentarios. Disculpa, no me queda claro lo que necesitas. Si quieres cambiarle el formato a una medida solo deben hacer click en ella y automáticamente te apareceré la opción en la parte superior del editor de Power BI Desktop. Saludos.
estoy siguiendo esta serie de videos, hasta ahora son los mejores para explicar DAX, incluso comparandolo con cursos pagos!, Agradezco muchísimo poder acceder a este tipo de contenido, sigue así! tus videos son de gran utilidad!
No es para menos, tal vez el Video con mayor complejidad de Dax debido que se juntan todos los conceptos, que muchas veces pasamos por alto, gran explicación muy didáctica como ya es coatumbre. Que buena explicación. Lo dificil hecho fácil... 🎉
El mejor docente en DAX que he visto con diferencia... y se nota el gran trabajo que hay detrás tanto de material como de preparación de la exposición.
Es un tema complejo, que se logra comprender por el gran esfuerzo realizado al explicar todos los detalles que hay en DAX, de una forma muy sencilla. Muchas Gracias por el tiempo invertido y por compartir esa experiencia.
Excelente explicación de CALCULATE. Lo mejor fue las animaciones donde explicas paso a paso como se va formando el resultado. Por último, te deseo lo mejor en el lanzamiento de los cursos para este próximo 25 de Enero 2024. 👍
Quiero felicitarte por el excelente video que has creado. Es uno de los mejores videos que he visto sobre este tema. Tu habilidad para explicar de manera clara y concisa es admirable. Te agradezco mucho tu ayuda!
La explicación desglosada con la ayuda visual es excelente , me encanta este método ! , me gustaría que nos recomendarás desafíos grandes para armar tableros complejos con premisas así. De nuevo gracias por todo !
Muy bueno Julio explicas con lujos de detalle. Realmente ahora aprendí el fundamento de cada formula. Se nota que preparas muy bien los temas. Felicitaciones
Julio, mil gracias por la explicación como siempre excelente, Julio como lo mencionas en el video todo filtro es una tabla, en el momento en el que no se pueda convertir en una tabla saldría error, pero a mi aun me cuesta un poco este punto de DAX, crees que podrías hacer algo donde toquemos algunos ejemplos que no sean tablas ?
Hola Adriana, muchas gracias por tus comentarios :). Tengo planeado hacer una segunda parte de la función CALCULATE, exclusiva para miembros, ahí haré algunos ejemplos al respecto. Espero lanzarlo en las próximas semanas :). Saludos cordiales.
Buen dia Señores, gracias Julio por los videos que son muy utiles y claros. Al momento de unirse al canal y si hay una duda para poder hacer una mentoria con tu persona cuales son los pasos a seguir. Quedo al pendiente de tus comentarios y espero poder unirme al canal. Soy de Guatemala
Eduardo buenos días. Muchas gracias por tus comentarios. En realidad la membresía del canal y las asesorías personalizadas son servicios independientes que puedes adquirir por separado, uno no esta condicionado al otro. En mi página web puedes ver los detalles de como solicitar una asesoría personalizada. En la membresía ofrezco otro beneficios, como encuestas, videos exclusivos, material adicional, entre otras cosas. Saludos cordiales.
Hola en primer lugar quiero felicitarte por la explicación que realizas en cada uno de tus videos, la cual considero super genial, clara y precisa. He aprendido a visualizar mejor las cosas en Power Bi, por el enfoque que realizas. En estos momentos, trabajo en un proyecto, en el cuál me falta realizar uno ajuste, pero no he logrado dar con la solución en DAX, quisiera saber si me podrías ayudar al respecto, orientarme, o indicarme que me esta faltando o que estoy haciendo mal. De igual manera cuanto sería el costo de tu asesoría. Quedo atenta
Hola Mariela, muchas gracias por tus comentarios y apoyo. Si claro, puedes revisar los detalles sobre la asesoría personalizada en la página web: menquisbi.com/asesoria-personalizada/?v=3827b7f36786 Si quisieras mayor detalle en la misma pagina está mi número de contacto de Whatsapp. Saludos cordiales.
Es increible como todo lo aprendido en los ultimos videos convergio en la funcion mas importante de todo DAX y como desglosaste los videos anteriores para poder comprender esto. Ahora entiendo tambien el video introductorio (el #0 ) porque cometemos el error de pensar que DAX se aprende con prueba y error, y aqui esta muy claro; no entiendes de contextos, no visualizas (asi como lo pudiste visualizar el proceso) y te pierdes y abandonas (como una vez yo hice) No puedo esperar a ver los demas videos , sin embargo, creo que aqui en mi caso, fortalecer los primeros videos para crear mis primeras medidas (Es decir , practicare lo que eh aprendido gracias a ti) porque se que lo que viene, se vendra complicado y esto anterior debera de darse por hecho. Nos vemos pronto en el siguiente video dentro de unos diasd :) 05/06
Oscar!, me alegro mucho que el video te haya gustado, y te sea de utilidad :) Es cierto, el nivel irá subiendo poco a poco, pero manteniendo las bases claras podrás dominar el lenguaje para crear indicadores mucho más sofisticados. Saludos y un gran abrazo.
Julio saludos, en el minuto 19 del video , solo para quedar un poco mas claro, debido a que primero esta Filter aunque sea dentro de una variable y luego Calculate , se da la transición de contextos? por eso ambas fechas pasan a ser filtros en el contexto nuevo?
Hola David. En este caso no hay transición de Contexto, porque no estoy usando CALCULATE dentro de la iteración. Simplemente estoy evaluando una condición dentro del FILTER, para retornar un conjunto de fechas. Saludos.
Buenas tardes, excúseme la pregunta, por favor ud. como logra pasar de reglón 1 a renglón 2, cuando esta creando la variable?, si le doy enter no lo hace
@@MenquisBI Realmente se aprende mucho con su curso! Quiero hacerle una consulta. Estoy entusiasmado en aprender DAX, pero noto que usted, luego de hacer la formula, va y la explica en Excel. ¿Cree que yo deba hacer igual, en caso quiera comprender mejor las clases? Lo otro que pensé es que quizá no sea tan necesario, y que depende más de la práctica constante. ¿En todo caso cual crees sea la mejor manera de estudiar estos videos?
@@edsonarias7763 Hola Edson. Bueno en realidad yo te recomendaría solo revisar las explicaciones. Es un poco difícil armar una explicación en Excel desde cero. Mi mayor recomendación sería que veas los videos en orden cronológico, intenta no saltarte para que no te pierdas ninguna explicación. Saludos.
Son excelentes tus videos y veo que estas hace poquito en youtoube. Vas a publicar mas? Tenes alguna escuela de estudio u otros materiales para revisar en otra plataforma? Gracias!
Hola Nico, gracias por comentar y por el apoyo. Por supuesto, me he propuesto publicar todas las semanas. Respecto a material extra y escuela, he puesto en marcha varios proyectos relacionados a eso, espero poder brindarles novedades dentro de poco :) Saludos y un abrazo.
* Si tienes algun problema o consulta relacionada a Power BI, ya puedes acceder a consultas personalizadas en nuestro sitio web :) menquisbi.com/s/asesoria-personalizada * Ya está disponible nuestro primer curso de SQL :), puedes adquirirlo aquí: menquisbi.com/curso/sql-server-para-analisis-de-datos * Videos exclusivos para miembros del canal: ruclips.net/p/UUMOu25jQpvCNUgYV-Tl0iBnQg
Hola Julio muchas gracias por el video! Tengo una duda con respecto al resultado en el minuto 20:08, si bien el resultado es 353 en Power BI y coincide con el ejercicio en Excel, al sumar los valores uno por uno da un total de 596, no comprendo por qué da diferente a lo que aparece en la fila total, gracias
Hola Carol, muchas gracias por tus comentarios :). El correcto, no necesariamente el total debe ser igual a la suma de los valores, todo depende del contexto. Por ejemplo, imagina que somos 2 clientes en una empresa: Julio y Carol. Julio compró $ 60 el 15 de enero. Carol compró $ 80 el 15 de febrero. Si averiguamos el monto de los primeros 20 días de cada uno, nos va a salir efectivamente $60 para Julio y $80 para Carol. Pero si averiguamos el Monto de los primeros 20 días a nivel total, solo nos va a salir $ 60, ya que a nivel general el primer día de venta fue el de Julio, el 15 de enero, la venta de Carol fue recién después de 30 días. Es por eso que el total no es igual a la suma necesariamente, aunque si queremos podemos conseguirlo, jugando un poco con las fórmulas de DAX. Saludos.
hola! excelente explicación ¿sabes cómo se puede calcular la diferencia de ventas (ventas siendo una medida) entre días hábiles (por ejemplo la diferencia entre el lunes 1 y martes 2 de abril), para mostrar esa diferencia en un gráfico o una tabla? tengo el problema el lunes, que dax mira hacia atrás el domingo cuando necesito calcular la diferencia con el viernes, no el domingo, a pesar de que le pongo un filtro de que no tome en cuenta los fin de semana. Como que el timeintelligence sobreescribe el filtro de calculate de fechas cuando se quiere graficar o hacer una tabla ya que muestra todas las fechas, incluso las que se filtraron
Hola, gracias por comentar. Se me ocurren dos posibles soluciones a ese caso: 1. Usa un condicional para retornar el valor dependiendo del día de la semana en la que se encuentra el contexto de filtro: Si es un de Martes a Sabado usa DATEADD(FECHA,-1,DAY), y si es Lunes usar DATEADD(FECHA,-3, DAY) y con esa lógica podrías manejar el indicador de diferencia de Ventas. 2. En tu dimensión Calendario puedes agregar una columna con el numero del día (que vaya desde 1 hasta el numero de filas de tu dimensión, sin contar FDS), y en lugar de usar una funciones de Inteligencia de Tiempo, hacer un comparativo en base a esos índices (la fórmula es un poco más compleja, pero igual funciona). Saludos.
Hola Julio, En la medida "Numero de ordenes de 1 registro", utilizas DISTINCTCOUNT(fctVentas[CodOrden]). ¿ Es necesario utilizar dicha medida si VALUES ya no ha devuelto los CodOrden únicos?. ¿Sería adecuado utilizar dicha medida, simplemente contando las filas de la columna resultante? Numero de Ordenes de 1 registro (opcion 2) = VAR OrdenesConUnRegistro = FILTER( VALUES(fctVentas[CodOrden]); CALCULATE(COUNTROWS(fctVentas))=1 ) VAR Resultado = COUNTROWS(OrdenesConUnRegistro) RETURN Resultado ¿y esta medida en la que creo que si es necesario utilizar la medida [Numero de Ordenes]? Numero de Ordenes de 1 registro (opcion 3) = VAR OrdenesConUnRegistro = FILTER( fctVentas; CALCULATE( COUNTROWS(fctVentas); ALLEXCEPT(fctVentas;fctVentas[CodOrden]) ) = 1 ) VAR Resultado = CALCULATE( [Numero de Ordenes]; OrdenesConUnRegistro ) RETURN Resultado Se que hay varias maneras de llegar al mismo resultado pero por cuestion de simplicidad y rendimiento que opinión tienes Muchas gracias de antemano
Gracias por tu aporte Ivan, ahora me doy un tiempo de revisarlo a detalle, pero así a simple vista me parece que esas 3 opciones son válidas. Mañana te doy una respuesta definitiva. Saludos.
Hola Iván, revisando las opciones, veo que la mejor opción en termino de performance sería la OPCION 2. Es cierto, usar DISTINCTCOUNT sería un poco redundante. Saludos
Hola a Todos. Me surgio una duda mientas veia el video. En el minuto 21:50 crea una medida para saber los clientes que tiene más de una venta de un producto distinta para un dia determinado como contexto de filtro, lo que no entiendo es porque tuvo que llamar a la tabla DimCliente. No era más sencillo en la medida hacer así: CALCULATE ( [Numero de clientes], DistinctCount( fctVentas[ID_Producto] > 1 ) Quisiera saber que diferencia existe entre lo que escribi yo y lo que hizo Julio. Muchas gracias a todos.!!! Saludos desde Argentina 🔵⚪🔵 Gracias Perú!
Hola Ariel, gracias por tus comentarios. Es una buena pregunta. Lo que sucede es que como comenté en el video todo filtro que quiera incorporar a CALCULATE debe tener LA FORMA DE UNA TABLA, sino no se puede definir. El filtro: DISTINCOUNT(fctVentas[ID_Producto]) > 1 NO SE PUEDE EXPRESAR COMO TABLA, sino que es un valor Verdadero o Falso, entonces no va a entender que es lo que deseo filtrar. Le pongo dimClientes para especificar que estoy diciendo que considere ciertos clientes en el filtro (que voy a incorporar justamente al nuevo contexto de filtro). Saludos.
@@MenquisBI Un lujo Julio. Muchas gracias! Te agradezco el tiempo y tus conocimiento viendo tantos otros videos y vos entregas la verdad de la milanesa (dicho de mi país) lo mejor para tus alumnos jajaja. Sos el mejor. Saludos!
Hola! Muy buen video pero me quedo una duda. Porque en la Variable "TablaFiltro" . Estas usando en la misma funcion Filter, por un lado La columna Fecha de tu FACT TABLE, pero luego al momento de definir la expresion a evaluar usar DimCalendario[Fecha]. Porque usas Fechas de 2 tablas diferentes en vez de una ? Hay una razon para hacer eso al mismo tiempo? Me suena raro esa parte y no se si esta bien o si se deberia hacer usado la Columna fecha de la FACT tanto para la parte de VALUES como para la de Mayor y menor que le sigue luego de la coma. Saludos
Hola Joel, gracias por tus comentarios, excelente observación. Es correcto, en la fórmula ambas fechas deberían ser iguales, habría que elegir fecha de la tabla de hechos o la fecha de la tabla de dimensión (con cualquier de las dos va a salir el mismo resultado). Ahí en la explicación cometí un error al poner fechas distintas, tienes toda la razón. Saludos.
Buenas tardes, Julio Según Marco Russo y Alberto Ferrari esta fórmula debería funcionar pero no es así... ( Definitive Guide to DAX - Pag 193) Delivered Amount 2007 v2 = CALCULATE ( [Sales Amount]; CALCULATETABLE ( FILTER ( Sales; RELATED ( 'Date'[Calendar Year] ) = "CY 2007" ); USERELATIONSHIP ( Sales[Delivery Date] ; 'Date'[Date] ) ) ) En cambio, si la modificamos de esta manera, si que funciona.. Delivered Amount 2007 v2 = CALCULATE ( [Sales Amount]; CALCULATETABLE ( FILTER ( Sales; RELATED ( 'Date'[Calendar Year] ) = "CY 2007" ); USERELATIONSHIP ( Sales[Delivery Date] ; 'Date'[Date] ) ); USERELATIONSHIP ( Sales[Delivery Date] ; 'Date'[Date] ) ) No entiendo la necesidad de activar la relación 2 veces... Muchas gracias
@@ivanmeseguer6621 Tienes razón a mi también me sale en blanco tanto en la matriz como a nivel general :( Veo que es un caso complejo, la verdad se puede obtener el mismo resultado sin usar ni FILTER ni CALCULATETABLE. Lo voy a revisar a detalle y cuando tenga una explicación completa te la paso por este medio. Saludos.
@@ivanmeseguer6621 Ivan la respuesta es la siguiente: En la medida Delivered Amount 2007 v2 el CALCULATETABLE + FILTER retornan una tabla expandida con las ventas con el año delivery 2007. No obstante, el contexto de filtro original sigue activo (Ventas por AÑO ORDEN, no delivery), entonces ambas tablas se van a intersectar y como no hay coincidencia es por eso que el resultado va a salir en blanco. Es necesario agregar ese USERELATIONSHIP extra para garantizar que ambas tablas expandidas tengan los mismos campos y valores digamos, y no se anulen mutuamente. Si quisieras mas detalle, lo podrás encontrar en el capítulo 14: Advanced DAX Concepts, y en la sección llamada "Understanding Active Relationships", del libro Definitive Guide to DAX 2da Edición, ahí se explica a detalle este fenómeno. Saludos y un abrazo desde Perú.
Buenas noches Julio, En la medida clientes de Asia O de una tienda de Asia, cuando cojo la tabla que utlizamos como filtro de calculate y la utilizo para crear una tabla calculada para así comprobar el resultado que me da el filtro FILTER( SUMMARIZE( fctVentas; dimCliente[Continente]; dimTienda[Continente] ); dimCliente[Continente] = "Asia" || dimTienda[Continente] = "Asia" ) me da un error " Ya existe un elemento Column denominado "Continente" en "Clientes de Asia o tienda Asia (TC) Table. ¿Hay alfuna manera de solventar eso? Clientes de Asia o tienda Asia (TC) = FILTER( SUMMARIZE( fctVentas; dimCliente[Continente]; dimTienda[Continente] ); dimCliente[Continente] = "Asia" || dimTienda[Continente] = "Asia" ) El problema es que la tabla expandida tiene 2 columnas con el mismo nombre Muchas gracias
Hola Iván, claro. En una tabla Calculada no podemos tener dos columnas con el mismo nombre, solo como tabla virtual se podría aplicar el concepto de Linaje de Datos y hace la distinción. Se me ocurre rodearlo con un SELECTCOLUMNS y asignarle nombres distinto a cada columna. Saludos
Una duda Julio. Estoy intentando realizar una operación pero por más que lo intento no consigo dar con la manera. Tengo una matriz donde las filas son tareas en las que se han hecho gastos, las columnas son tipos de gastos (material o servicios). Estos gastos se han realizado en 2017, 2019, 2022 y 2024. Lo que intento es representar es la varianza de una misma tarea del 2017 con la del 2024, o la del 2022 con la del 2024. En función de un segmento en el que aparecen los 4 años y yo selecciono los que quiera comparar. Espero haberme explicado con claridad. Muchas gracias!!
Hola Samuel, gracias por tus comentarios. Entiendo, lo que tienes que hacer es utilizar variables, para capturar el máximo y mínimo año que estas seleccionando, y otra variable que genere la variación con esos años considerados (solo utilizas CALCULATE). Esa es la solución, si es que tienes tus años en un solo Segmentador (DAX no puede saber que año seleccionaste primero o segundo, por eso usamos MAX y MIN). Pero si tienes dos segmentadores, uno con el año inicial y otro con el año final comparativo, eso sería lo ideal, bastaría con usar SELECTEDVALUE para capturar los años y luego armar la variación. Saludos.
@@MenquisBI Muchas gracias. No consigo hacer que funcione. Prueba 2 = VAR Fecha1 = YEAR(MIN(Actividades[Fecha PG])) VAR Fecha2 = YEAR(MAX(Actividades[Fecha PG])) VAR TablaFiltro = FILTER( VALUES(Actividades[Fecha PG]), YEAR(Actividades[Fecha PG]) = Fecha1 && YEAR(Actividades[Fecha PG]) = Fecha2 ) VAR Resultado = CALCULATE( [Total Material Presupuestado], TablaFiltro ) RETURN Resultado Situación: Selecciono en el segmento, 2017 y 2019. - VAR Fecha 1 guarda 2017 para los datos de 2017 y 2019 para los datos de 2019. VAR Fecha 2 guarda lo mismo, por tanto no existe diferencia. ¿Cómo puedo solucionar esto? Gracias
@@SamuelCarrilloDJ Entiendo Samuel. Disculpa para solucionar tu problema tendría que ver a detalle tu modelo de datos, para determinar la fórmula correcta. Puedes contactarme por la página web para verlo en una asesoría personalizada. Saludos.
Se que no es el tema, pero podrías por favor aclararme una duda, tengo las ventas de 2 años que suman más de 100 millones de registros, cada día hay que agregar las nuevas ventas, del origen viene de una carpeta de Sharepoint, cada semana se agrega un nuevo excel, obviamente actualizar tantos registros lleva mucho tiempo, hay manera de solo actualizar los nuevos actualizar en mi tabla de ventas la información de los nuevos archivos de excel, es decir que los que ya leyó power BI no los vuelva a leer cada vez que se actualiza? Para que no le tome tanto tiempo
Hola Angel. Para lograrlo debes construir una variante de la actualización incremental. Hay que configurar todo para que funcione. Es imposible para mi explicarte el proceso por este medio, pero hay videos en youtube que te explican como llevarlo a cabo. Solo busca "Incremental Refresh Sharepoint" y encontrarás la solución. Saludos.
Tengo un problema, cree una medida que me clasifica unos datos de criticos y no criticos, ejm C=If(tabla[Valor]‹.8,"Critico","noCritico)), ahora necesito que me cuente la catidad de criticos y no criticos, ise la siguiente medida X=Calculate(countrowns(tabla), filter(tabla,c="Crítico"))... No trae datos, probe la medida C en una tabla y me muestra los criticos y no criticos pero no hace rl conteo, en que puede ser la falla?
Hola Diego, gracias por tus comentarios. mmm, disculpa no me queda claro el contexto. Creo que deberías crear una columna calculada C, no una medida, para poder obtener el resultado esperado. Saludos.
Hola tengo una deuda, estoy trabajando una nueva base y por ejemplo cuando quiero colocar dimclientes"numero de hijos", es decir la columna numero de hijo, no me carga, el power bi me reconoce toda la tabla dimclientes sin dejarme elegir la columna que deseo, que estoy haciendo mal
Hola Carlos, gracias por tus comentarios Debe ser un tema de Power Query, dentro de las transformaciones ha elegido específicamente ciertas columnas, por lo que cuando le agregues otra no lo va a reconocer. Tendrías que ver a detalle las transformaciones realizadas en ese informe en particular. Saludos.
Hola! Una duda con la parte que niegas una comparación: Monto de Ventas Clientes ni 1 ni 2 Hijo = CALCULATE( [Monto de Ventas], NOT ( dimCliente[Numero de Hijos] ) IN {1,2} ) Para mi sería en realidad esto: Monto de Ventas Clientes ni 1 ni 2 Hijo = CALCULATE( [Monto de Ventas], NOT ( dimCliente[Numero de Hijos] IN {1,2} ) ) El paréntesis en tu medida es particularmente rara su construcción. No entiendo su lógica.
Hola Michel, gracias por tus comentarios. Excelente observación, es cierto. Yo lo hago de esa manera por costumbre, recuerdo que en mis inicios no podía usar la forma que propones, pero en realidad DAX no lo lee de ninguna de las dos formas: lo lee sin ningún paréntesis: Monto de Ventas Clientes ni 1 ni 2 Hijo = CALCULATE( [Monto de Ventas], NOT dimCliente[Numero de Hijos] IN {1,2} ) Así que en realidad ambas formas son mismo. Saludos.
Calculate en escenarios de multi- dimensión necesita ayuda, , ahí esta la contradicción en decir que calculate es la formula mas importante en dax, insisto no tiene nada de malo usar calcúlate, pero dejen de santificar calculate.
Gracias por tus comentarios Eladio. Espero hacer pronto un video sobre el enfoque NO CALCULATE, y explicar porque no estoy 100% de acuerdo con esa alternativa, aunque puede ser válida en varios casos. Saludos.
Queridos amigos, ya están disponibles las inscripciones nuestro CURSO DE DAX EN VIVO (Inicio: 19 OCTUBRE 2024):
Pueden registrarse a través de este link: menquisbi.com/e/especializacion-en-lenguaje-dax-edicion-iii-en-vivo
Para mayor información, puedes escribirnos por WhatsApp: wa.me/51908805175
Justamente hoy necesitaba hacer unos cálculos en el trabajo, lamentablemente por mi inexperiencia en DAX no los pude realizar, pero viendo este video lo podré resolver y lo más importante lo he podido entender. Muchas gracias por tus conocimientos, impactas de forma muy positiva en todas las personas que estamos aprendiendo. Excelente explicación maestro.
Muchas gracias por tus gentiles palabras Victor.
Me alegro que el video te resulte de utilidad :)
Saludos cordiales
Excelente video!! De lo mejor que he visto. Muchas gracias.
Qué gran descubrimiento tu canal, qué placer verlo todo así de claro, GRACIAS!
Mil gracias por tus gentiles palabras y buenos deseos estimado :)
Saludos.
Saludos
Muy buena explicación. Mejor dicho y merecido: Excelente!!!
Como aprendizaje de mi parte y compartir: En la construcción de filtros compuestos con SUMMARIZE quise reproducir la tabla que "crea" SUMMARIZE( fctVentas, dimCliente[Continente], dimTienda[Continente]), que supuse seria muy sencillo, pero no permite crear una tabla pues ambas columnas tienen el nombre de "Continente" y genera un error, pero al hacerlo como parte de FILTER no da error, tal y como esta en el video. Supongo que la tabla virtual, dentro de FILTER, considera las columnas Continente como distintas mientras que al tratar de hacer la tabla explicita pues NO permite 2 columnas con el mismo nombre.
Crack!
Que buenas explicaciones... dos años estudiando DAX y como lo explicas es super claro para las personas que no venimos del área de infomática
Cordial saludo Estimado Julio, nuevamente agradeciendo tu trabajo tan importante y útil. En cuanto al filtro compuesto, quise que en lugar de "o" fuera "y", para cliente y tienda de ASIA. No utilicé el filter+ Summarize, en su lugar definí el filtro de Calculate directamente así , las sumas del monto fueron correctas que si lo hubiera hecho con el filtro compuesto. ¿Estarías de acuerdo con lo que hice, cual seria tu recomendación?
Estimado gracias por tus comentarios.
Es 100% correcto. La técnica con SUMMARIZE solo se utiliza con filtro O. Con filtros Y solo basta con agregar una argumento mas en CALCULATE, tal cual lo hiciste.
Saludos.
Sin que me quede nada por dentro😮, es la mejor explicación de CALCULATE que he visto, mis sinceras gracias infinitas por tus aportes 😊
Muchas gracias, me alegro que te sea de utilidad.
Al parecer al momento de este video la función CALCULATE no permitía usar filtros de diferentes tablas y por eso se veía necesario usar SUMMARIZE por el tema de la tabla extendida. Estuve usando CALCULATE añadiendo filtros de distintas tablas y no hay ningún problema. Definitivamente calculate es muy poderosa
Hola Sergio, gracias por tus comentarios.
Disculpa, eso no es correcto. CALCULATE siempre pudo utilizar FILTROS DE DIFERENTES TABLA (pero para condiciones "Y", que es el caso por defecto).
En el video lo que comento es que NO ES POSIBLE HACER FILTRO OR (condición "O") de diferentes tablas.
Eso es algo que no se podía hacer y al día de hoy tampoco es posible, a menos que se utilice SUMMARIZE. Imagino que en un futuro si incorporarán esa opción.
Espero haberme hecho entender.
Saludos cordiales.
Elegente! Oro molido, con ansias esperando lo que sigue WOUUU!
Se que existen demasiados escenario con CALCUTATE , pero debo reconocer que tu explicación es la mejor que he visto a la hora de desglosar dicha función , agradecido por tu tiempo al hacer este video que mas bien es una Master Class !!
@@manuelserna1369 Muchas gracias por el apoyo Manuel :)
Saludos
Una explicación muy buena, se nota la dedicación en tu explicación y en el material 👍
Muchas gracias por tu apoyo :)
Saludos
Gracias Julio excelente explicación para entender CALCULATE, un abrazo
Gracias por tus comentarios Sergio.
Saludos.
Compañero uno de los mejores videos sino el mejor que he podido ver en español acerca del tema. Sencillamente desde Colombia, muchas gracias
Amigos, en el minuto 17:00, si ven la fórmula de la medida, debajo de VALUES puse dimCalendario[Fecha], en realidad debería decir fctVentas[Fecha Orden] (así fue como lo escribí en el reporte de Power BI, cometí un error al pasarlo a la explicación animada).
Por lo demás la explicación se mantiene igual y la fórmula saldría correctamente.
Saludos y un abrazo.
Julio, en la parte de calculate , yo podria seguir agregando filtros de otras tablas sin necesidad de haber modificado con filter o Summarize simplemente oviando el doble pipe por que esa es la ventaja de calculate ir modificando el filtro a como deseemos el resultado, muy buen video Julio, cada vez que los veo comprendo mas! Saludes
Julio en el ultimo en la construcción en la filtros sobre la tabla de hechos, podríamos haber creado la medida cantidad de ordenes para evitarnos el calculate en la formula y simplemente filtramos las que sean igual a 1?
@@nestormoreira1191 Hola Nestor, muchas gracias por tus comentarios.
Es correcto, podemos usar una medida en su lugar, se obtiene el mismo resultado y se seguirá aplicando la transición de contexto de ser el caso.
Saludos.
@MenquisBI Hola Julio Saludos, disculpa podrías ayudarme como activar la opción de herramientas de medicion para cambiar rápidamente el formato de los números gracias.
@@sanchezdariomecanica Darío gracias por tus comentarios. Disculpa, no me queda claro lo que necesitas.
Si quieres cambiarle el formato a una medida solo deben hacer click en ella y automáticamente te apareceré la opción en la parte superior del editor de Power BI Desktop.
Saludos.
Maestro Julio. Muchísimas gracias por esta clase buenísima😊
Me alegro que el video te haya sido de utilidad Manuel :). Gracias por el apoyo.
Saludos
Eres de los mejores creadores de contenido para este tema 🎉. Espero siempre nos sigas compartiendo 🎉
Muchas gracias por tu apoyo Camilo.
Saludos y un gran abrazo :)
Magnifica explicación. Muchas gracias
Julio un genio total, una catedra de como entender un concepto , tu forma de explicar es unica !
Otro excelente video, muchas gracias por compartir el conocimiento.
Gracias muy didáctico, y bien esplicado
Muy Buen Video, Espero que hayan muchos mas para continuar aprendiendo. Gracias. 😃
De todas maneras, aún hay muchos temas de DAX para desarrollar.
Saludos
estoy siguiendo esta serie de videos, hasta ahora son los mejores para explicar DAX, incluso comparandolo con cursos pagos!, Agradezco muchísimo poder acceder a este tipo de contenido, sigue así! tus videos son de gran utilidad!
Muchas gracias por tus palabras José.
Me alegro que estoy videos les estén siendo de utilidad :)
Saludos.
No podría estar mejor explicado, mi enhorabuena por el video. Gracias por su tiempo y por compartir sus conocimientos
Muchas gracias por tus comentarios Gustavo, me alegro que te haya sido de utilidad :).
Saludos.
No es para menos, tal vez el Video con mayor complejidad de Dax debido que se juntan todos los conceptos, que muchas veces pasamos por alto, gran explicación muy didáctica como ya es coatumbre. Que buena explicación. Lo dificil hecho fácil... 🎉
Muchas gracias por el apoyo :)
Saludos.
El mejor docente en DAX que he visto con diferencia... y se nota el gran trabajo que hay detrás tanto de material como de preparación de la exposición.
Listo, ya les escribí. Muchas gracias por responder
Excelente muy bueno, gracias por tus aportes
Excelente y sin rodeos que lo hacen a uno perder el tiempo. Desde ya me declaro seguidor
Gracias por tu apoyo Juan Fernando :). Me alegro que el video te haya sido de utilidad.
Saludos.
Es un tema complejo, que se logra comprender por el gran esfuerzo realizado al explicar todos los detalles que hay en DAX, de una forma muy sencilla. Muchas Gracias por el tiempo invertido y por compartir esa experiencia.
Agradezco mucho tus palabras de apoyo Felix :)
Me alegro que mi contenido te sea de utildad :')
Saludos.
Excelente explicación de CALCULATE. Lo mejor fue las animaciones donde explicas paso a paso como se va formando el resultado. Por último, te deseo lo mejor en el lanzamiento de los cursos para este próximo 25 de Enero 2024. 👍
Muchísimas gracias por tus amables palabras Félix.
Te mando un gran abrazo.
Saludos cordiales.
Gracias ...Gracias Julio...... muy buena explicacion...gracias por tu tiempo.
Gracias por tus comentarios Walter :)
Saludos.
Quiero felicitarte por el excelente video que has creado. Es uno de los mejores videos que he visto sobre este tema. Tu habilidad para explicar de manera clara y concisa es admirable. Te agradezco mucho tu ayuda!
Muchas gracias por tus gentiles palabras Daniel :)
Agradezco tu apoyo.
Saludos cordiales.
aprendo mas aqui, que en el curso "gratis" de MS, la membresia, la mejor inversion que he hecho en todo el año
Me alegro que el video te haya sido de utilidad Ana :')
Saludos y un gran abrazo.
Muy buena explicación, por lo regular debo consultar varios tutoriales para aprender un tema y aquí esta muy completo. Gracias 😮
Me alegro que te haya sido de utilidad Diego :)
Saludos.
Gran master class!. Usted es un excelente maestro. Saludos de Colombia
Te lo agradezco Diego, me alegro que el video que haya sido de utilidad :)
Saludos.
La explicación desglosada con la ayuda visual es excelente , me encanta este método ! , me gustaría que nos recomendarás desafíos grandes para armar tableros complejos con premisas así.
De nuevo gracias por todo !
Muchas gracias por tus comentarios Juan :)
Saludos y un gran abrazo.
Sus videos son una mina de oro, gracias por compartir sus conocimientos en DAX 💪
Muchas gracias por el apoyo :)
Saludos
Muy bueno Julio explicas con lujos de detalle. Realmente ahora aprendí el fundamento de cada formula. Se nota que preparas muy bien los temas. Felicitaciones
Muchas gracias por tu apoyo Alejandro, lo aprecio bastante :).
Saludos cordiales.
Amigo eres muy bueno explicando, muchas gracias!, nos das muchos tips, felicidades por tu canal
Muchas gracias por tu apoyo Rosalba, me alegro que el video te haya sido de utilidad :)
Saludos.
Julio, mil gracias por la explicación como siempre excelente, Julio como lo mencionas en el video todo filtro es una tabla, en el momento en el que no se pueda convertir en una tabla saldría error, pero a mi aun me cuesta un poco este punto de DAX, crees que podrías hacer algo donde toquemos algunos ejemplos que no sean tablas ?
Hola Adriana, muchas gracias por tus comentarios :).
Tengo planeado hacer una segunda parte de la función CALCULATE, exclusiva para miembros, ahí haré algunos ejemplos al respecto. Espero lanzarlo en las próximas semanas :).
Saludos cordiales.
Una vez mas otro video excelente!
Gracias por el aporte.!.
Gracias a ti por tus comentarios.
Saludos.
Buen dia Señores, gracias Julio por los videos que son muy utiles y claros. Al momento de unirse al canal y si hay una duda para poder hacer una mentoria con tu persona cuales son los pasos a seguir. Quedo al pendiente de tus comentarios y espero poder unirme al canal. Soy de Guatemala
Eduardo buenos días. Muchas gracias por tus comentarios.
En realidad la membresía del canal y las asesorías personalizadas son servicios independientes que puedes adquirir por separado, uno no esta condicionado al otro.
En mi página web puedes ver los detalles de como solicitar una asesoría personalizada.
En la membresía ofrezco otro beneficios, como encuestas, videos exclusivos, material adicional, entre otras cosas.
Saludos cordiales.
Que bien explica. Felicidades!
Muchas gracias Leopoldo!.
Saludos.
Hola en primer lugar quiero felicitarte por la explicación que realizas en cada uno de tus videos, la cual considero super genial, clara y precisa. He aprendido a visualizar mejor las cosas en Power Bi, por el enfoque que realizas. En estos momentos, trabajo en un proyecto, en el cuál me falta realizar uno ajuste, pero no he logrado dar con la solución en DAX, quisiera saber si me podrías ayudar al respecto, orientarme, o indicarme que me esta faltando o que estoy haciendo mal. De igual manera cuanto sería el costo de tu asesoría. Quedo atenta
Hola Mariela, muchas gracias por tus comentarios y apoyo.
Si claro, puedes revisar los detalles sobre la asesoría personalizada en la página web:
menquisbi.com/asesoria-personalizada/?v=3827b7f36786
Si quisieras mayor detalle en la misma pagina está mi número de contacto de Whatsapp.
Saludos cordiales.
En verdad Muy bien explicado muchas gracias 😊
Gracias a ti Luis, por el apoyo a mi contenido :)
Saludos.
Buenas tardes, ¿cuál es el video que sigue en donde se ven los modificadores de filtro en CALCULATE con ALL, ALLSELECTED y ALLEXCEPT??? Gracias!!!
Es el video anterior Arturo, justamente se llama ALL, ALLSELECTED y ALLEXCEPT.
Saludos.
Es increible como todo lo aprendido en los ultimos videos convergio en la funcion mas importante de todo DAX y como desglosaste los videos anteriores para poder comprender esto.
Ahora entiendo tambien el video introductorio (el #0 ) porque cometemos el error de pensar que DAX se aprende con prueba y error, y aqui esta muy claro; no entiendes de contextos, no visualizas (asi como lo pudiste visualizar el proceso) y te pierdes y abandonas (como una vez yo hice)
No puedo esperar a ver los demas videos , sin embargo, creo que aqui en mi caso, fortalecer los primeros videos para crear mis primeras medidas (Es decir , practicare lo que eh aprendido gracias a ti) porque se que lo que viene, se vendra complicado y esto anterior debera de darse por hecho.
Nos vemos pronto en el siguiente video dentro de unos diasd :)
05/06
Oscar!, me alegro mucho que el video te haya gustado, y te sea de utilidad :)
Es cierto, el nivel irá subiendo poco a poco, pero manteniendo las bases claras podrás dominar el lenguaje para crear indicadores mucho más sofisticados.
Saludos y un gran abrazo.
Eres muy bueno, gracias por tu aporte
Muchas gracias por tu apoyo :)
Saludos
Julio saludos, en el minuto 19 del video , solo para quedar un poco mas claro, debido a que primero esta Filter aunque sea dentro de una variable y luego Calculate , se da la transición de contextos? por eso ambas fechas pasan a ser filtros en el contexto nuevo?
Hola David.
En este caso no hay transición de Contexto, porque no estoy usando CALCULATE dentro de la iteración. Simplemente estoy evaluando una condición dentro del FILTER, para retornar un conjunto de fechas.
Saludos.
¡Gracias!
Muchas gracias por tu generosidad Peter.
Un abrazo.
Buenas tardes, excúseme la pregunta, por favor ud. como logra pasar de reglón 1 a renglón 2, cuando esta creando la variable?, si le doy enter no lo hace
Hola estimado.
Se usa SHIFT+ENTER.
Saludos
excelso el vídeo...gracias
Muchas gracias por el apoyo Pablo :)
Saludos
me dio fiebre, llevo menos de 1 mes estudiando power bi. Mirare el video hasta que no me quepan dudas!
Gracias por tus comentarios Edson.
Mucho ánimo, espero que lo domines pronto.
Saludos.
@@MenquisBI Realmente se aprende mucho con su curso! Quiero hacerle una consulta. Estoy entusiasmado en aprender DAX, pero noto que usted, luego de hacer la formula, va y la explica en Excel. ¿Cree que yo deba hacer igual, en caso quiera comprender mejor las clases? Lo otro que pensé es que quizá no sea tan necesario, y que depende más de la práctica constante. ¿En todo caso cual crees sea la mejor manera de estudiar estos videos?
@@edsonarias7763 Hola Edson.
Bueno en realidad yo te recomendaría solo revisar las explicaciones. Es un poco difícil armar una explicación en Excel desde cero.
Mi mayor recomendación sería que veas los videos en orden cronológico, intenta no saltarte para que no te pierdas ninguna explicación.
Saludos.
Son excelentes tus videos y veo que estas hace poquito en youtoube. Vas a publicar mas? Tenes alguna escuela de estudio u otros materiales para revisar en otra plataforma? Gracias!
Hola Nico, gracias por comentar y por el apoyo.
Por supuesto, me he propuesto publicar todas las semanas. Respecto a material extra y escuela, he puesto en marcha varios proyectos relacionados a eso, espero poder brindarles novedades dentro de poco :)
Saludos y un abrazo.
Excelente
Gracias!
buen aporte :D
* Si tienes algun problema o consulta relacionada a Power BI, ya puedes acceder a consultas personalizadas en nuestro sitio web :)
menquisbi.com/s/asesoria-personalizada
* Ya está disponible nuestro primer curso de SQL :), puedes adquirirlo aquí: menquisbi.com/curso/sql-server-para-analisis-de-datos
* Videos exclusivos para miembros del canal: ruclips.net/p/UUMOu25jQpvCNUgYV-Tl0iBnQg
Hola Julio muchas gracias por el video! Tengo una duda con respecto al resultado en el minuto 20:08, si bien el resultado es 353 en Power BI y coincide con el ejercicio en Excel, al sumar los valores uno por uno da un total de 596, no comprendo por qué da diferente a lo que aparece en la fila total, gracias
Hola Carol, muchas gracias por tus comentarios :).
El correcto, no necesariamente el total debe ser igual a la suma de los valores, todo depende del contexto.
Por ejemplo, imagina que somos 2 clientes en una empresa: Julio y Carol.
Julio compró $ 60 el 15 de enero.
Carol compró $ 80 el 15 de febrero.
Si averiguamos el monto de los primeros 20 días de cada uno, nos va a salir efectivamente $60 para Julio y $80 para Carol.
Pero si averiguamos el Monto de los primeros 20 días a nivel total, solo nos va a salir $ 60, ya que a nivel general el primer día de venta fue el de Julio, el 15 de enero, la venta de Carol fue recién después de 30 días.
Es por eso que el total no es igual a la suma necesariamente, aunque si queremos podemos conseguirlo, jugando un poco con las fórmulas de DAX.
Saludos.
Muchas gracias Julio por la explicación!
hola! excelente explicación ¿sabes cómo se puede calcular la diferencia de ventas (ventas siendo una medida) entre días hábiles (por ejemplo la diferencia entre el lunes 1 y martes 2 de abril), para mostrar esa diferencia en un gráfico o una tabla? tengo el problema el lunes, que dax mira hacia atrás el domingo cuando necesito calcular la diferencia con el viernes, no el domingo, a pesar de que le pongo un filtro de que no tome en cuenta los fin de semana. Como que el timeintelligence sobreescribe el filtro de calculate de fechas cuando se quiere graficar o hacer una tabla ya que muestra todas las fechas, incluso las que se filtraron
Hola, gracias por comentar. Se me ocurren dos posibles soluciones a ese caso:
1. Usa un condicional para retornar el valor dependiendo del día de la semana en la que se encuentra el contexto de filtro: Si es un de Martes a Sabado usa DATEADD(FECHA,-1,DAY), y si es Lunes usar DATEADD(FECHA,-3, DAY) y con esa lógica podrías manejar el indicador de diferencia de Ventas.
2. En tu dimensión Calendario puedes agregar una columna con el numero del día (que vaya desde 1 hasta el numero de filas de tu dimensión, sin contar FDS), y en lugar de usar una funciones de Inteligencia de Tiempo, hacer un comparativo en base a esos índices (la fórmula es un poco más compleja, pero igual funciona).
Saludos.
@@MenquisBI muchas gracias por tu respuesta! Muy amable. Voy a intentar lo que comentas
Hola Julio,
En la medida "Numero de ordenes de 1 registro", utilizas DISTINCTCOUNT(fctVentas[CodOrden]). ¿ Es necesario utilizar dicha medida si VALUES ya no ha devuelto los CodOrden únicos?.
¿Sería adecuado utilizar dicha medida, simplemente contando las filas de la columna resultante?
Numero de Ordenes de 1 registro (opcion 2) =
VAR OrdenesConUnRegistro =
FILTER(
VALUES(fctVentas[CodOrden]);
CALCULATE(COUNTROWS(fctVentas))=1
)
VAR Resultado = COUNTROWS(OrdenesConUnRegistro)
RETURN
Resultado
¿y esta medida en la que creo que si es necesario utilizar la medida [Numero de Ordenes]?
Numero de Ordenes de 1 registro (opcion 3) =
VAR OrdenesConUnRegistro =
FILTER(
fctVentas;
CALCULATE(
COUNTROWS(fctVentas);
ALLEXCEPT(fctVentas;fctVentas[CodOrden])
) = 1
)
VAR Resultado =
CALCULATE(
[Numero de Ordenes];
OrdenesConUnRegistro
)
RETURN
Resultado
Se que hay varias maneras de llegar al mismo resultado pero por cuestion de simplicidad y rendimiento que opinión tienes
Muchas gracias de antemano
Gracias por tu aporte Ivan, ahora me doy un tiempo de revisarlo a detalle, pero así a simple vista me parece que esas 3 opciones son válidas. Mañana te doy una respuesta definitiva.
Saludos.
Hola Iván, revisando las opciones, veo que la mejor opción en termino de performance sería la OPCION 2. Es cierto, usar DISTINCTCOUNT sería un poco redundante.
Saludos
Hola a Todos. Me surgio una duda mientas veia el video. En el minuto 21:50 crea una medida para saber los clientes que tiene más de una venta de un producto distinta para un dia determinado como contexto de filtro, lo que no entiendo es porque tuvo que llamar a la tabla DimCliente. No era más sencillo en la medida hacer así:
CALCULATE (
[Numero de clientes],
DistinctCount( fctVentas[ID_Producto] > 1
)
Quisiera saber que diferencia existe entre lo que escribi yo y lo que hizo Julio.
Muchas gracias a todos.!!!
Saludos desde Argentina
🔵⚪🔵
Gracias Perú!
Hola Ariel, gracias por tus comentarios.
Es una buena pregunta. Lo que sucede es que como comenté en el video todo filtro que quiera incorporar a CALCULATE debe tener LA FORMA DE UNA TABLA, sino no se puede definir.
El filtro: DISTINCOUNT(fctVentas[ID_Producto]) > 1 NO SE PUEDE EXPRESAR COMO TABLA, sino que es un valor Verdadero o Falso, entonces no va a entender que es lo que deseo filtrar. Le pongo dimClientes para especificar que estoy diciendo que considere ciertos clientes en el filtro (que voy a incorporar justamente al nuevo contexto de filtro).
Saludos.
@@MenquisBI Un lujo Julio. Muchas gracias! Te agradezco el tiempo y tus conocimiento viendo tantos otros videos y vos entregas la verdad de la milanesa (dicho de mi país) lo mejor para tus alumnos jajaja. Sos el mejor.
Saludos!
@@arielferrer769 Jajaja, muchas gracias por tus gentiles palabras Ariel :)
Un gran abrazo.
Hola! Muy buen video pero me quedo una duda.
Porque en la Variable "TablaFiltro" . Estas usando en la misma funcion Filter, por un lado La columna Fecha de tu FACT TABLE, pero luego al momento de definir la expresion a evaluar usar DimCalendario[Fecha].
Porque usas Fechas de 2 tablas diferentes en vez de una ? Hay una razon para hacer eso al mismo tiempo? Me suena raro esa parte y no se si esta bien o si se deberia hacer usado la Columna fecha de la FACT tanto para la parte de VALUES como para la de Mayor y menor que le sigue luego de la coma.
Saludos
Hola Joel, gracias por tus comentarios, excelente observación.
Es correcto, en la fórmula ambas fechas deberían ser iguales, habría que elegir fecha de la tabla de hechos o la fecha de la tabla de dimensión (con cualquier de las dos va a salir el mismo resultado). Ahí en la explicación cometí un error al poner fechas distintas, tienes toda la razón.
Saludos.
Buenas tardes, Julio
Según Marco Russo y Alberto Ferrari esta fórmula debería funcionar pero no es así... ( Definitive Guide to DAX - Pag 193)
Delivered Amount 2007 v2 =
CALCULATE (
[Sales Amount];
CALCULATETABLE (
FILTER (
Sales;
RELATED ( 'Date'[Calendar Year] ) = "CY 2007"
);
USERELATIONSHIP ( Sales[Delivery Date] ; 'Date'[Date] )
)
)
En cambio, si la modificamos de esta manera, si que funciona..
Delivered Amount 2007 v2 =
CALCULATE (
[Sales Amount];
CALCULATETABLE (
FILTER (
Sales;
RELATED ( 'Date'[Calendar Year] ) = "CY 2007"
);
USERELATIONSHIP ( Sales[Delivery Date] ; 'Date'[Date] )
);
USERELATIONSHIP ( Sales[Delivery Date] ; 'Date'[Date] )
)
No entiendo la necesidad de activar la relación 2 veces...
Muchas gracias
Hola Ivan, disculpa no te sigo.
La primera versión no veo que tenga ningún problema. ¿En que caso no te sale el valor?
Saludos.
Disculpa. No me he explicado. La primera versión devuelve BLANK en todos los casos
@@ivanmeseguer6621 Tienes razón a mi también me sale en blanco tanto en la matriz como a nivel general :(
Veo que es un caso complejo, la verdad se puede obtener el mismo resultado sin usar ni FILTER ni CALCULATETABLE.
Lo voy a revisar a detalle y cuando tenga una explicación completa te la paso por este medio.
Saludos.
@@ivanmeseguer6621 Ivan la respuesta es la siguiente:
En la medida Delivered Amount 2007 v2 el CALCULATETABLE + FILTER retornan una tabla expandida con las ventas con el año delivery 2007. No obstante, el contexto de filtro original sigue activo (Ventas por AÑO ORDEN, no delivery), entonces ambas tablas se van a intersectar y como no hay coincidencia es por eso que el resultado va a salir en blanco.
Es necesario agregar ese USERELATIONSHIP extra para garantizar que ambas tablas expandidas tengan los mismos campos y valores digamos, y no se anulen mutuamente.
Si quisieras mas detalle, lo podrás encontrar en el capítulo 14: Advanced DAX Concepts, y en la sección llamada "Understanding Active Relationships", del libro Definitive Guide to DAX 2da Edición, ahí se explica a detalle este fenómeno.
Saludos y un abrazo desde Perú.
Ok. Gracias. Supuse que es lo que comentas, pero como en rl libro en el capítulo de CALCULATE te la da por buena, esa era mi duda. Mucha gracias Julio
Buenas noches Julio,
En la medida clientes de Asia O de una tienda de Asia, cuando cojo la tabla que utlizamos como filtro de calculate y la utilizo para crear una tabla calculada para así comprobar el resultado que me da el filtro
FILTER(
SUMMARIZE(
fctVentas;
dimCliente[Continente];
dimTienda[Continente]
);
dimCliente[Continente] = "Asia" || dimTienda[Continente] = "Asia"
)
me da un error " Ya existe un elemento Column denominado "Continente" en "Clientes de Asia o tienda Asia (TC) Table. ¿Hay alfuna manera de solventar eso?
Clientes de Asia o tienda Asia (TC) =
FILTER(
SUMMARIZE(
fctVentas;
dimCliente[Continente];
dimTienda[Continente]
);
dimCliente[Continente] = "Asia" || dimTienda[Continente] = "Asia"
)
El problema es que la tabla expandida tiene 2 columnas con el mismo nombre
Muchas gracias
Hola Iván, claro.
En una tabla Calculada no podemos tener dos columnas con el mismo nombre, solo como tabla virtual se podría aplicar el concepto de Linaje de Datos y hace la distinción.
Se me ocurre rodearlo con un SELECTCOLUMNS y asignarle nombres distinto a cada columna.
Saludos
Gracias Julio. Utilicé SELECTCOLUMNS como alternativa
Una duda Julio. Estoy intentando realizar una operación pero por más que lo intento no consigo dar con la manera.
Tengo una matriz donde las filas son tareas en las que se han hecho gastos, las columnas son tipos de gastos (material o servicios). Estos gastos se han realizado en 2017, 2019, 2022 y 2024. Lo que intento es representar es la varianza de una misma tarea del 2017 con la del 2024, o la del 2022 con la del 2024. En función de un segmento en el que aparecen los 4 años y yo selecciono los que quiera comparar.
Espero haberme explicado con claridad.
Muchas gracias!!
Hola Samuel, gracias por tus comentarios.
Entiendo, lo que tienes que hacer es utilizar variables, para capturar el máximo y mínimo año que estas seleccionando, y otra variable que genere la variación con esos años considerados (solo utilizas CALCULATE).
Esa es la solución, si es que tienes tus años en un solo Segmentador (DAX no puede saber que año seleccionaste primero o segundo, por eso usamos MAX y MIN).
Pero si tienes dos segmentadores, uno con el año inicial y otro con el año final comparativo, eso sería lo ideal, bastaría con usar SELECTEDVALUE para capturar los años y luego armar la variación.
Saludos.
@@MenquisBI Muchas gracias. No consigo hacer que funcione.
Prueba 2 =
VAR Fecha1 = YEAR(MIN(Actividades[Fecha PG]))
VAR Fecha2 = YEAR(MAX(Actividades[Fecha PG]))
VAR TablaFiltro =
FILTER(
VALUES(Actividades[Fecha PG]),
YEAR(Actividades[Fecha PG]) = Fecha1 &&
YEAR(Actividades[Fecha PG]) = Fecha2
)
VAR Resultado =
CALCULATE(
[Total Material Presupuestado],
TablaFiltro
)
RETURN Resultado
Situación:
Selecciono en el segmento, 2017 y 2019.
- VAR Fecha 1 guarda 2017 para los datos de 2017 y 2019 para los datos de 2019. VAR Fecha 2 guarda lo mismo, por tanto no existe diferencia.
¿Cómo puedo solucionar esto?
Gracias
@@SamuelCarrilloDJ Entiendo Samuel.
Disculpa para solucionar tu problema tendría que ver a detalle tu modelo de datos, para determinar la fórmula correcta.
Puedes contactarme por la página web para verlo en una asesoría personalizada.
Saludos.
@@MenquisBI Gracias! Intentaré concretar una reunión para tratarlo. Saludos!
Segundo.
La explicación es muy clara, y pausada dando tiempo para entenderla.
Gracias por el apoyo Mauricio :)
Saludos
cuanto es el valor mensual en pesos colombianow
Hola Ramon, espero que todo bien.
Te refieres a los miembros del canal?.
Si es así creo que es aproximadamente 10,000 pesos colombianos.
Un abrazo.
Se que no es el tema, pero podrías por favor aclararme una duda, tengo las ventas de 2 años que suman más de 100 millones de registros, cada día hay que agregar las nuevas ventas, del origen viene de una carpeta de Sharepoint, cada semana se agrega un nuevo excel, obviamente actualizar tantos registros lleva mucho tiempo, hay manera de solo actualizar los nuevos actualizar en mi tabla de ventas la información de los nuevos archivos de excel, es decir que los que ya leyó power BI no los vuelva a leer cada vez que se actualiza? Para que no le tome tanto tiempo
Hola Angel.
Para lograrlo debes construir una variante de la actualización incremental. Hay que configurar todo para que funcione.
Es imposible para mi explicarte el proceso por este medio, pero hay videos en youtube que te explican como llevarlo a cabo. Solo busca "Incremental Refresh Sharepoint" y encontrarás la solución.
Saludos.
@@MenquisBI muchísimas gracias que amable eres, ojalá un día subas algún vídeo relacionado porque explicas como ninguno, saludos
Tengo un problema, cree una medida que me clasifica unos datos de criticos y no criticos, ejm C=If(tabla[Valor]‹.8,"Critico","noCritico)), ahora necesito que me cuente la catidad de criticos y no criticos, ise la siguiente medida X=Calculate(countrowns(tabla), filter(tabla,c="Crítico"))...
No trae datos, probe la medida C en una tabla y me muestra los criticos y no criticos pero no hace rl conteo, en que puede ser la falla?
Hola Diego, gracias por tus comentarios.
mmm, disculpa no me queda claro el contexto. Creo que deberías crear una columna calculada C, no una medida, para poder obtener el resultado esperado.
Saludos.
Hola tengo una deuda, estoy trabajando una nueva base y por ejemplo cuando quiero colocar dimclientes"numero de hijos", es decir la columna numero de hijo, no me carga, el power bi me reconoce toda la tabla dimclientes sin dejarme elegir la columna que deseo, que estoy haciendo mal
Hola Carlos, gracias por tus comentarios
Debe ser un tema de Power Query, dentro de las transformaciones ha elegido específicamente ciertas columnas, por lo que cuando le agregues otra no lo va a reconocer.
Tendrías que ver a detalle las transformaciones realizadas en ese informe en particular.
Saludos.
Hola! Una duda con la parte que niegas una comparación:
Monto de Ventas Clientes ni 1 ni 2 Hijo =
CALCULATE(
[Monto de Ventas],
NOT ( dimCliente[Numero de Hijos] ) IN {1,2}
)
Para mi sería en realidad esto:
Monto de Ventas Clientes ni 1 ni 2 Hijo =
CALCULATE(
[Monto de Ventas],
NOT ( dimCliente[Numero de Hijos] IN {1,2} )
)
El paréntesis en tu medida es particularmente rara su construcción.
No entiendo su lógica.
Hola Michel, gracias por tus comentarios.
Excelente observación, es cierto.
Yo lo hago de esa manera por costumbre, recuerdo que en mis inicios no podía usar la forma que propones, pero en realidad DAX no lo lee de ninguna de las dos formas: lo lee sin ningún paréntesis:
Monto de Ventas Clientes ni 1 ni 2 Hijo =
CALCULATE(
[Monto de Ventas],
NOT dimCliente[Numero de Hijos] IN {1,2}
)
Así que en realidad ambas formas son mismo.
Saludos.
@@MenquisBI Muchas gracias por la aclaración.
Calculate en escenarios de multi- dimensión necesita ayuda, , ahí esta la contradicción en decir que calculate es la formula mas importante en dax, insisto no tiene nada de malo usar calcúlate, pero dejen de santificar calculate.
Gracias por tus comentarios Eladio.
Espero hacer pronto un video sobre el enfoque NO CALCULATE, y explicar porque no estoy 100% de acuerdo con esa alternativa, aunque puede ser válida en varios casos.
Saludos.