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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Anonymous
Not applicable

Número máximo/promedio consecutivo de días que un valor cae por debajo de cero

Hola, chicos

actualmente estoy trabajando en un informe de inventario detallado.

Básicamente, mis datos constan de dos tablas:

- Tabla A: Información sobre el nivel de existencias del producto p en la empresa c en la fecha d

fechaproductocompañíaacción
01-01-2020xamazona100
02-01-2020xamazona40
03-01-2020xamazona60
01-01-2020yWalmart70

- Tabla B: Información sobre la demanda r del producto p en la empresac en la fecha d.

fechaproductocompañíaDemandIdcantidad
01-01-2020xamazona150
01-01-2020xamazona240
02-01-2020yamazona360

Por supuesto, podría agregar la 'Demanda' como columna adicional para la tabla A, sin embargo, quiero que todos los cálculos se realicen dinámicamente para poder filtrar ciertos tipos de demanda.

En primer lugar, creé el stock neto por fecha, producto y empresa. Básicamente, esto es sólo una medida fácil:

NetStock := SUM(Stock) - SUM(Cantidad)

Junto a eso, quiero crear un KPI que mida el número de ocasiones en las que el stock cae por debajo de 0 (y básicamente estamos fuera de stock). Como agregar todos los productos y empresas en una suma no funciona, decidí determinar esto en el nivel más bajo:

StockOutOccasions = 
var JoinedTable =
SUMMARIZE(
    'Table_A';
    'Table_A'[Company];
    'Table_A'[Product];
    'Table_A'[Date];
    "OutOfStock"; IF([NetStock] < 0; 1; 0)
)
return SUMX(JoinedTable; [OutOfStock])

Se han creado medidas de Similair para medir el déficit de existencias, la probabilidad de deso capitalización, etc.

Mi KPI final es representar la duración de un desmeste, tanto la duración máxima como la media.

Sin embargo, estoy luchando bastante cómo hacer esto, ya que uso una tabla medida en cálculos anteriores.

Mis expectativas son para la siguiente tabla medida:

fechaproductocompañíaNetStock
01-01xy-10
02-01xy-15
03-01xy-10
04-01xy5
05-01xy-20
06-01xy10

Duración máxima: 3 (=> 01-01 hasta 03-01)

Duración media: 2 (=> (3+1)/2 )

Tuve la idea de crear una 'columna' adicional que indica el número de días consecutivos que el netstock < 0, y 0 si el netstock >= . Esto daría como resultado lo siguiente:

fecha01-0102-0103-0104-0105-0106-01
x123010

Entonces la duración máxima sería sólo el valor máximo de esta columna.

El promedio se puede determinar como: COUNT(x>0)/COUNT(x=1)

Entonces, la idea está ahí, intenté un par de cosas, pero principalmente estoy atascado en las restricciones de la tabla medida.

¿Alguien puede ayudarme a crear la columna x? (Ver la última matriz)

Soy consciente de que la medida probablemente va a ser algo lenta, sin embargo, prefiero esto ya que esto me permite usar filtros.

Gracias de antemano!

4 REPLIES 4
TomMartens
Super User
Super User

Hola @JamievdM ,

tal vez este post proporcionará lo que usted está buscando o al menos proporciona algunas ideas nuevas:

https://community.powerbi.com/t5/Desktop/DAX-formula-for-consecutive-events-with-some-criteria/m-p/8...

Si no es así, cree un archivo pbix que contenga algunos datos de ejemplo pero que siga reflejando su modelo de datos, cargue el archivo en onedrive o dropbox y comparta el enlace.

Asegúrese de que el pbix tiene un modelo de datos adecuado (esquema de estrella), lo que significa que hay tablas dedicadas para la empresa, producto, fecha, (no está seguro acerca del demandid).

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany
v-shex-msft
Community Support
Community Support

HI @JamievdM,

La fórmula de medida se calcula en función de su contenido de fila, por lo que puede verse afectada dinámicamente por filtros/slicers.
Cuando se utiliza en una columna o tabla calculada, su nivel de contenido de fila se fijará como toda la tabla y no podrá interactuar con la segmentación/filtro para lograr una columna/tabla calculada dinámica.

BTW, mida fórmulas que no se pueden utilizar como categoría para agrupar y agregar registros.
saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.
amitchandak
Super User
Super User

@ImkeF , puede ayudar

Hola Amit,

Desearía poder ayudar aquí, pero eso está más allá de mis habilidades DAX hoy.

Un índice anidado / condicional en DAX necesita algunas superpotencias DAX de @Greg_Deckler, @TomMartens o @OwenAuger .

Imke Feldmann (The BIccountant)

If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!

How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors