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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

Ayuda de Optimize Code

Hola a todos

Tengo un montón de código que funciona, pero es lento. Leí que vars y switches pueden acelerar las cosas, pero cuando trato de usarlos no funciona. Aquí está mi medida actual (da la respuesta correcta):

if(HASONEFILTER('Single BOM Table'[Child Part]),

[Child Parts Req] - [Makat_Inv_FR],

sumx(SUMMARIZE('Single BOM Table','Single BOM Table'[Child Part],"child",

[Child Parts Req] - [Makat_Inv_FR]),

[niño]*1))

Cuando intento convertirlo usando Vars:

Makat todavía necesita =
Dónde child_parts_req = [Req de piezas secundarias]
Dónde makat_Inv_FR_ = [Makat_Inv_FR]
Dónde resultado=
si(HASONEFILTER(«Tabla de lista de materiales única»[Parte secundaria]),
child_parts_req - makat_Inv_FR_,
sumx(RESUMIR(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[Parte secundaria],"niño",
child_parts_req-makat_Inv_FR_),
[niño]*1))
devolución
resultado
La respuesta es diferente. ¿Qué estoy haciendo mal?
5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@airwolf39 todas estas medidas requieren atención. Puedo ver por qué es súper lento.

Syndicate_Admin
Administrator
Administrator

@airwolf39

1 a muchos está bien, ¿alguna dirección de filtro cruzado a ambos?

¿Puede consultar con el analizador de rendimiento qué está pasando? Qué medida está tardando más. comience con una medida y verifique el rendimiento y luego agregue otra para ver cuál está causando el problema.

El problema es "FG Build". Que está construido sobre un montón de medidas. Lo que espero son algunos consejos sobre cómo hacer las medidas más rápido ...

La medida que está causando el problema es esta:

FG Build =
si(ISBLANK([Max Makat todavía necesita]),
espacio en blanco(),
[FG todavía necesita]-[Impacto de la tasa de llenado])
--------------------------------------------------------------------
FG todavía necesita =
Dónde Calc = CALCULAR([Abrir cantidad de ventas]-[Inv_OpenSO_FGFR],filtro(partes,[Abrir cantidad de ventas]>0))
devolución
si(Calc>0,Calc,espacio en blanco())
Impacto de la tasa de llenado =
Dónde FG_S_N = [FG todavía necesita]
Dónde Max_S_N = «Tabla de lista de materiales única»[Max Makat todavía necesita]
devolución
si(HASONEFILTER(Piezas[BOM #]),
si(ISBLANK([Coef]),
FG_S_N, Max_S_N),
Max_S_N+ CALCULAR([FG todavía necesita],filtro(Partes,ISBLANK([Coef]))))
Max Makat todavía necesita =
si(HASONEFILTER(«Tabla de lista de materiales única»[Parte secundaria]) ||
(HASONEFILTER(Piezas[BOM #]) ||
(HASONEFILTER(Piezas[SPEC 5]))),
«Tabla de lista de materiales única»[Impacto máximo de FR],
sumx(RESUMIR(Partes,Piezas[SPEC 5],"spec_5",«Tabla de lista de materiales única»[Impacto máximo de FR]),[spec_5]*1))
Impacto máximo de FR =
maxx(RESUMIR(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[Parte secundaria],"Niño",
([Req de piezas secundarias]-'Inventario Makat'[Makat_Inv_FR])),
[Niño]*1)
Coef =
si(isblank([Qty_Child de ventas abiertas]),espacio en blanco(),
si(HASONEFILTER(«Tabla de lista de materiales única»[Parte secundaria]),
CALCULAR(MAXX(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[coeff]),
filtro(«Tabla de lista de materiales única»,[Qty_Child de ventas abiertas]>0),filtro(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[coeff]>0)),
sumx(RESUMIR(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[Parte secundaria],"Niño",
CALCULAR(SUMX(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[coeff]),
filtro(«Tabla de lista de materiales única»,[Qty_Child de ventas abiertas]>0),filtro(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[coeff]>0))),
[Niño]*1)))
Syndicate_Admin
Administrator
Administrator

@airwolf39 porque en sumx estás usando variables, el valor no se calcula para cada parte secundaria y es por eso que

Puede haber muchas razones para el rendimiento lento, cómo se modelan los datos y la relación entre las tablas.

Síguenos en LinkedIn (en inglés) y YouTube.gif a nuestro YouTube (en inglés) canal

Más información sobre el formato condicional en Microsoft Reactor

Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.

Todas mis mesas tienen un reletionship de 1 a muchos. Es muy limpio y utiliza llaves únicas.

Sé que tienes que mantener las variables dentro de una función de cálculo si quieres que funcionen correctamente. No me di cuenta de que esto también se aplica a sumx??

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.