March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Tengo dos tablas llamadas "Datos" e "Informe".
La tabla de datos consta de columnas como código de área, tipo, longitud del bastidor, ancho del bastidor, altura del bastidor y volumen, que se determina en función de las dimensiones del bastidor.
En la tabla Informe, hay columnas como Artículo, Código de área, Longitud del paquete, Ancho del paquete y Altura, con el código de área que sirve como una relación clave que vincula las dos tablas.
En el contexto de la tabla Datos, mi objetivo es determinar el tamaño de bastidor adecuado en función de las dimensiones del paquete asociadas a un código de área específico.
Para ayudar en esto, creé una columna auxiliar de volumen en la tabla Datos utilizando las dimensiones del bastidor.
El objetivo principal de esta columna auxiliar es identificar el volumen mínimo cuando coinciden varios tamaños.
Por ejemplo, está diseñado para ubicar la estantería con el menor volumen entre tres estanterías capaces de acomodar una de las doce cajas disponibles.
Actualmente, estoy explorando la posibilidad de un código DAX para crear una nueva columna calculada que logre el mismo resultado.
Para lograr esto en Excel, empleo la siguiente fórmula:
=IFERROR(LOOKUP(2,1/(DATOS!$F$2:$F$15=1/(1/MAX(((DATOS!$C$2:$C$15>=$D 2)*(DATOS!$D$2:$D$15>=$C 2)+(DATOS!$C$2:$C$15>=$C 2)*(DATOS!$D$2:$D$15>=$D 2)>0)*(DATOS!$E$2:$E$15>=$E 2)*(DATOS!$A$2:$A$15=$B 2)*DATOS!$F$2:$F$15))),DATA!$C$2:$C$15),"")
Informe:
Datos:
PBI:
Archivo adjunto para su referencia
https://www.dropbox.com/scl/fi/hbrz1w0qglv7oe35vw5sx/NFS-SP-06-12-2023.pbix?rlkey=hifyzqbz5rlkqyly9r...
https://www.dropbox.com/scl/fi/xd8m5cjfux1y0oa1pitxw/SP-06.12.2023.xlsx?rlkey=zvhnmk6q4epu19jshlvhcb...
Hola
Pruebe esta fórmula de columna calculada
Volume = CALCULATE(MAX(DATA[Volume]),FILTER(DATA,(DATA[Area Code]=EARLIER(REPORT[Area Code])&&DATA[Width]>=EARLIER(REPORT[Pack Width])&&DATA[Height]>=EARLIER(REPORT[Pack Height])&&DATA[Depth]>=EARLIER(REPORT[Pack Length]))||(DATA[Area Code]=EARLIER(REPORT[Area Code])&&DATA[Width]>=EARLIER(REPORT[Pack Length])&&DATA[Height]>=EARLIER(REPORT[Pack Height])&&DATA[Depth]>=EARLIER(REPORT[Pack Width]))))
Espero que esto ayude.
@Ashish_Mathur ,
Gracias por su respuesta una vez más, y pido disculpas por la demora en la respuesta.
¿Puede proporcionar un consejo rápido sobre cómo incluir criterios de filtro adicionales en su impresionante código DAX?
Quiero el mismo resultado aplicando un criterio de filtro adicional más que es "Modo". Si tengo más de un criterio de filtro, ¿puedo aplicar junto al código de área para ambos lugares? ¿Funcionará? ¿Es necesario aplicar los criterios de filtro "Modo" junto al código de área de ambos lugares? (Resaltado en rojo.
Datos:
Informe:
https://www.dropbox.com/scl/fi/npbwfs3w42ifduzfevmgh/Lookup2-1_1312.pbix?rlkey=jejbnod00zrrj2dgchurf...
https://www.dropbox.com/scl/fi/xd8m5cjfux1y0oa1pitxw/SP-06.12.2023.xlsx?rlkey=zvhnmk6q4epu19jshlvhcb...
Sí, puedes. Por favor, pruébelo usted mismo.
@Ashish_Mathur ,
Agradezco su respuesta. He seguido tu sugerencia y he aplicado el filtro después del tipo. ¿Podría confirmar si este es el método correcto para aplicar los criterios de filtro adicionales?
Si obtienes la respuesta correcta, entonces es la fórmula correcta.
@Ashish_Mathur ,
Gracias por su respuesta. Aunque el código DAX funciona correctamente cuando se trata de varios códigos de área en la tabla del informe, se producen problemas al controlar códigos de área específicos, lo que da lugar a resultados inexactos. Por ejemplo, cuando el código de área es "AB1" en la tabla del informe, el volumen esperado es 9 u 11.
Sin embargo, el código DAX devuelve volúmenes asociados a diferentes códigos de área.
Entre el total de 7847 elementos de línea de la tabla del informe, 5352 se alinean perfectamente, pero 2492 muestran resultados incorrectos. A pesar de mis intentos de ajustar el código DAX, sigue produciendo errores.
Resultado incorrecto:
¿Puede ayudarme, por favor?
Adjunto un archivo para su lectura.
https://www.dropbox.com/scl/fi/qrburmfeh65i8n521r3m6/Lookup2-1-Issue_07-12-2023.pbix?rlkey=o6w19w25w...
https://www.dropbox.com/scl/fi/1um93fj1lp0oxli9k6bpv/SP-07.12.2023.xlsx?rlkey=5n91yq2p85fiiw11k4t3qm...
Hola
Escriba estas fórmulas de columna calculadas en la tabla Informe
Volume = CALCULATE(MAX(DATA[Volume]),FILTER(DATA,DATA[Area Code]=EARLIER(REPORT[Area Code])&&(DATA[Width]>=EARLIER(REPORT[Pack Width])&&DATA[Height]>=EARLIER(REPORT[Pack Height])&&DATA[Depth]>=EARLIER(REPORT[Pack Length]))||(DATA[Width]>=EARLIER(REPORT[Pack Length])&&DATA[Height]>=EARLIER(REPORT[Pack Height])&&DATA[Depth]>=EARLIER(REPORT[Pack Width]))))
Rack width = LOOKUPVALUE(DATA[Width],DATA[Area Code],REPORT[Area Code],DATA[Volume],REPORT[Volume])
Rack height = LOOKUPVALUE(DATA[Height],DATA[Area Code],REPORT[Area Code],DATA[Volume],REPORT[Volume])
Rack depth = LOOKUPVALUE(DATA[Depth],DATA[Area Code],REPORT[Area Code],DATA[Volume],REPORT[Volume])
Espero que esto ayude.
En base a qué combinación, necesita confirmación, ¿solo usa el código de área? Si usa item y type, ¿cómo se vinculan entre las tablas?
@vanessafvg, gracias por su respuesta.
Básicamente, los datos de paquetes pequeños deben encontrarse en un estante más pequeño en lugar de ir a un estante más grande.
Es genial que haya proporcionado los datos, pero ¿puede proporcionar la lógica / regla de negocio para las columnas en lugar de proporcionar la fórmula de Excel que es difícil de leer?
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.