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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
leandro_salas24
Frequent Visitor

Problema para valuar un stock con una lista de precios (para período anterior)

Buenas tardes a todos!

Este posteo viene del anterior: https://community.powerbi.com/t5/Translated-Spanish-Desktop/Problema-con-el-modelo-de-datos-medidas-...

He podido solucionar los problemas de la relación entre tablas, logrando obtener los resultados deseados:

1) Obtener un stock por tipo de instrumento en base a una tabla de hechos (compras y ventas de instrumentos)

2) He podido relacionar la lista de precios de dichos instrumentos (2° tabla de hechos) con la tabla de movimientos, vía una tabla con dimensión calendario.

El inconveniente que tengo actualmente es a nivel cálculo en DAX: no estoy pudiendo obtener la valuación para el período anterior (es decir, el stock al período anterior multiplicado por el precio del período anterior).

Estoy basándome en lo que pude encontrar en el siguiente link: https://www.daxpatterns.com/cumulative-total-excel-2013/

Los períodos son mensuales. La lista de precios contiene sólo un precio de cierre de mes. Los movimientos son diarios pero el stock es mensual. No estoy necesitando valuar un stock diario, dado que no tengo una lista de precios diaria.

A continuación, les dejo las medidas que pude crear:

 

CotizacionActual:

=IF(HASONEVALUE(DimFCI[Nombre]);MAXX(CALCULATETABLE(TOPN(1;CotizacionesFCI;CotizacionesFCI[Fecha]);CotizacionesFCI;FILTER(ALL(DimCalendario);DimCalendario[PeriodoID]<=MAX(DimCalendario[PeriodoID])));CotizacionesFCI[Cotizacion]))

 

CotizacionAnterior:

=IF(HASONEVALUE(DimFCI[Nombre]);MAXX(CALCULATETABLE(CotizacionesFCI;FILTER(ALL(DimCalendario);DimCalendario[PeriodoID]<=MAX(DimCalendario[PeriodoID])-1));CotizacionesFCI[Cotizacion]))

 

TenenciaActual:

=CALCULATE(SUM(MovimientosFCI[Cantidad]);FILTER(ALL(DimCalendario);DimCalendario[PeriodoID]<=MAX(DimCalendario[PeriodoID])))

 

TenenciaAnterior:

=CALCULATE(SUM(MovimientosFCI[Cantidad]);FILTER(ALL(DimCalendario);DimCalendario[PeriodoID]<=MAX(DimCalendario[PeriodoID])-1))

 

Valuación Actual:

=SUMX(VALUES(DimFCI[Nombre]);[CotizacionActual]*[TenenciaActual])

 

Valuación Anterior:

=SUMX(VALUES(DimFCI[Nombre]);[CotizacionAnterior]*[TenenciaAnterior])

 

La medida Valuación Actual funciona perfectamente. Pero en ValuaciónAnterior, para algunos instrumentos toma precios que no se corresponden con el período que correspondería. He intentando probar con la siguiente medida, pero no trae valores posibles para la medida ValuaciónAnterior:

CotizaciónAnterior2:

=IF(HASONEVALUE(DimFCI[Nombre]);MAXX(CALCULATETABLE(TOPN(1;CotizacionesFCI;CotizacionesFCI[Fecha]);CotizacionesFCI;FILTER(ALL(DimCalendario);DimCalendario[PeriodoID]<=MAX(DimCalendario[PeriodoID])-1));CotizacionesFCI[Cotizacion]))

 

Aguardo sus comentarios. Si necesitan mayor información, soy todo oídos.

 

PD: lo estoy trabajando en Excel, con Power Pivot. 

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

Hola,@leandro_salas24

No está claro lo que quieres. Los meros enlaces y fórmulas no me harán entender su problema con mayor claridad.

¿Puede comprimir su problema en un caso simple?

Los datos de muestra y la producción esperada ayudarían enormemente.

Saludos
Equipo de apoyo a la comunidad _ Eason

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.