Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Be 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

Reply
Syndicate_Admin
Administrator
Administrator

Lookupvalue Valor máximo devuelto

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:

Saxon202202_1-1701901670475.png

Datos:

Saxon202202_2-1701901714556.png


PBI:

Saxon202202_3-1701902082489.png


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...


10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

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_0-1702003766408.png

@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:

Saxon202202_0-1702476668871.png

Informe:

Saxon202202_1-1702476719560.pngSaxon202202_2-1702476769258.png

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?


Saxon202202_0-1702577852054.png

Volumen con modo = CALCULAR(MÁXIMO(DATOS[Volumen]),FILTRO(DATOS,(DATOS[Código de área]=ANTERIOR(INFORME[Código de área])&&(DATOS[Modo])=ANTERIOR(INFORME[Modo])&&DATOS[Ancho]>=ANTERIOR(INFORME[Ancho del paquete])&&DATOS[Altura]>=ANTERIOR(INFORME[Altura del paquete])&&DATOS[Profundidad]>=ANTERIOR(INFORME[Longitud del paquete]))||(DATOS[Código de área]=ANTERIOR(INFORME[Código de área])&&(DATOS[Modo])=ANTERIOR(INFORME[Modo])&&DATOS[Ancho]>=ANTERIOR(INFORME[Longitud del paquete])&&DATOS[Altura]>=ANTERIOR(INFORME[Altura del paquete])&&DATOS[Profundidad]>=ANTERIOR(INFORME[Ancho del paquete]))))

Si obtienes la respuesta correcta, entonces es la fórmula correcta.

Syndicate_Admin
Administrator
Administrator

@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:

Saxon202202_1-1701988648689.png

¿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...

Syndicate_Admin
Administrator
Administrator

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.

Syndicate_Admin
Administrator
Administrator

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?

Syndicate_Admin
Administrator
Administrator

@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.

Syndicate_Admin
Administrator
Administrator

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?

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors