Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

Inventory_stock

Necesito ayuda en el cálculo de inventario,
Ejemplo: He recibido stock en 1º, 2º y 3º y el stock es de 10 camisas por día y el stock total es de 30 ahora
y el día 4 se vendieron 15 camisetas

Resultado deseado: el recuento vendido debe deducirse de la primera fecha (el recuento vendido es de 15 en 4, por lo que 10 debe descuartizarse a partir de la 1ª fecha y 5 shoud se deducen en 2ª)
y de la misma manera cuando 7 camisas se vendan en 5ª fecha luego 5 deducidas de 2ª fecha (quedando en 2ª fecha) y 2 deberán deducirse de 3ª fecha

FechaNuevo stockFalta de existenciasResultado
01-01-202210 0
02-01-202210 0
03-01-202210 8
04-01-2022 15
05-01-2022 7

Simplemente, la primera salida debe deducirse de la primera en número.

  • Syndicate_Admin's avatar
    Syndicate_Admin
    4 years ago

    @Reddyp Lo siento por eso, problemas de sintaxis:

    Measure = 
      VAR __Date = MAX('Table'[Date])
      VAR __InTable = FILTER(ALL('Table'),[New Stock] <> BLANK())
      VAR __OutTable = FILTER(ALL('Table'),[Stock out] <> BLANK()) 
      VAR __Out = SUMX(__OutTable,[Stock out])
      VAR __ResultTable = 
        ADDCOLUMNS(
          ADDCOLUMNS(
            __InTable,
            "__RunningTotal",SUMX(FILTER(__InTable,[Date]<=__Date),[New Stock])
          ),
          "__WhileLoop",[__RunningTotal] - __Out
        )
      VAR __Result = MAXX(FILTER(__ResultTable,[Date] = __Date),[__WhileLoop])
    RETURN
      IF(__Result <= 0,0,__Result)

4 Replies

  • @Reddyp Prueba esto:

    Measure = 
      VAR __Date = MAX('Table'[Date])
      VAR __InTable = FILTER(ALL('Table',[New Stock] <> BLANK())
      VAR __OutTable = FILTER(ALL('Table',[Stock out] <> BLANK()) 
      VAR __Out = SUMX(__OutTable,[Stock out])
      VAR __ResultTable = 
        ADDCOLUMNS(
          ADDCOLUMNS(
            __InTable,
            "__RunningTotal",SUMX(FILTER(__InTable,[Date]<=__Date),[New Stock])
          ),
          "__WhileLoop",[__RunningTotal] - __Out
        )
      VAR __Result = MAXX(FILTER(__ResultTable,[Date] = __Date),[__WhileLoop])
    RETURN
      IF(__Result <= 0,0,__Result)
    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      @Greg_Deckler Gracias por la respuesta, pero me enfrento a un problema al exicuting la medida
      ¿Puede volver a verificar o puede guiarme para conocer mi error al agregar medida?

      Reddyp_4-1648818195865.png

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        @Reddyp Lo siento por eso, problemas de sintaxis:

        Measure = 
          VAR __Date = MAX('Table'[Date])
          VAR __InTable = FILTER(ALL('Table'),[New Stock] <> BLANK())
          VAR __OutTable = FILTER(ALL('Table'),[Stock out] <> BLANK()) 
          VAR __Out = SUMX(__OutTable,[Stock out])
          VAR __ResultTable = 
            ADDCOLUMNS(
              ADDCOLUMNS(
                __InTable,
                "__RunningTotal",SUMX(FILTER(__InTable,[Date]<=__Date),[New Stock])
              ),
              "__WhileLoop",[__RunningTotal] - __Out
            )
          VAR __Result = MAXX(FILTER(__ResultTable,[Date] = __Date),[__WhileLoop])
        RETURN
          IF(__Result <= 0,0,__Result)