Ir para conteúdo
  • 0

DAX


Paulo Cesar
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Alunos

Prezados, bom dia!
Preciso de uma ajudar em relação a uma criação de um filtro de Slow Moving Category.

A medida abaixo é referente a criação de uma coluna a Stock_Time é a coluna que estou utilizando nesse filtro

image.png.b8e08a8c6f47e68a19c17500c62c1f56.pngimage.png.62977b301afd94e0a4f205a5b69b646e.png

Esse é o filtro:

image.png.7eb43d542dd47d430be43a50d7998526.png

Essa é a medida que eu estou utilizando na minha tabela, para que quando eu selecione uma categoria filtre na tabela a categoria selecionada

image.png.85d239920512d9a97822c1b878ea5ac1.png

image.png.28e388b3213adbd7402dde94c86ed2a6.png

Abaixo vou colocar um exemplo se eu selecionar a categoria ( >12M ). Quando selecionada a categoria,  além de trazer a categoria >12M ela trás outras categorias também.

Alguém teria uma ideia de como fazer isso funcionar?

aguardo retorno!

Atenciosamente,

Paulo 

image.png.a07a86d22d1f198c30d84c2112b8fb07.png

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
Postado (editado)
2 horas atrás, Paulo Cesar disse:

Complementando a pergunta anterior.

Filtrei o categoria >12M e ele trouxe outras categorias conforme imagem abaixo:

image.png.cb206a234bd58efafb633ce9d914df07.png

só uma duvida sua coluna categoria está em texto ou geral? acho q se vc por ela em texto vai puxar apenas os resultados >12M

Edit: pode ser um problema de relacionamento tbm da coluna category com a coluna slow moving category, no caso a falta do relacionamento dessas duas colunas

Editado por Fabrício Pena Patrocínio
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
49 minutos atrás, Fabrício Pena Patrocínio disse:

só uma duvida sua coluna categoria está em texto ou geral? acho q se vc por ela em texto vai puxar apenas os resultados >12M

Edit: pode ser um problema de relacionamento tbm da coluna category com a coluna slow moving category, no caso a falta do relacionamento dessas duas colunas

@Fabrício Pena Patrocínioboa tarde!

Grato pelo retorno.

Acontece que, não tem um relacionamento e minha coluna na tabela stock está como texto. Na verdade e tenho a coluna 

categoria conforma imagem abaixo. e na tabela estou usando a medida Slow Moving que é a mesma imagem abaixo.

Na verdade o que eu quero é que quando eu filtre qualquer categoria ele traga somente aquela categoria.

image.png.7f21835b569f855007555d4d834fba24.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Postado (editado)
8 minutos atrás, Paulo Cesar disse:

@Fabrício Pena Patrocínioboa tarde!

Grato pelo retorno.

Acontece que, não tem um relacionamento e minha coluna na tabela stock está como texto. Na verdade e tenho a coluna 

categoria conforma imagem abaixo. e na tabela estou usando a medida Slow Moving que é a mesma imagem abaixo.

Na verdade o que eu quero é que quando eu filtre qualquer categoria ele traga somente aquela categoria.

image.png.7f21835b569f855007555d4d834fba24.png

ah sim, medidas geralmente não é filtrada assim mesmo não, vc tem q criar uma coluna calculada, vc pode usar essa mesma formula da medida para fazer a coluna
ai vc vai conseguir filtrar. A explicação grosseiramente q posso te dar é q medida não é um dado é um calculo.

 

image.png.1d6e38cc48d2224da97592b1c6496e14.pngimage.png.b729b505379bda2d1102fa0d6a3ae34a.pngimage.png.064f505c19ca50384f564ca262889799.png

Editado por Fabrício Pena Patrocínio
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
6 minutos atrás, Fabrício Pena Patrocínio disse:

ah sim, medidas geralmente não é filtrada assim mesmo não, vc tem q criar uma coluna calculada, vc pode usar essa mesma formula da medida para fazer a coluna
ai vc vai conseguir filtrar. A explicação grosseiramente q posso te dar é q medida não é um dado é um calculo.

 

image.png.1d6e38cc48d2224da97592b1c6496e14.pngimage.png.b729b505379bda2d1102fa0d6a3ae34a.pngimage.png.064f505c19ca50384f564ca262889799.png

Eu criei essa coluna utilizando a mesma medida que está na tabela

 

image.png.acbb2b61a0e7a425979c9225515ee07b.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Agora, Fabrício Pena Patrocínio disse:

so criar o filtro entao por essa coluna e filtrar, agr se vc quer filtra pela coluna de outra tabela ai vc tem q relacionar uma tabela na outra

Na verdade eu coloquei essa coluna em um segmentador de dados onde aparaceu as categorias , só que eu tenho uma tabela que eu queria filtrar, mais quando eu filtro >12M ele além de trazer os >12M ele está trazendo outras categorias

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
3 minutos atrás, Paulo Cesar disse:

Na verdade eu coloquei essa coluna em um segmentador de dados onde aparaceu as categorias , só que eu tenho uma tabela que eu queria filtrar, mais quando eu filtro >12M ele além de trazer os >12M ele está trazendo outras categorias

cria um relacionamento entre as colunas q tem >12M em cada tabela então

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 17/05/2024 em 15:43, Fabrício Pena Patrocínio disse:

cria um relacionamento entre as colunas q tem >12M em cada tabela então

@Fabrício Pena Patrocíniobom dia!

Na verdade eu criei uma tabela dCategoria, só que na tabela Stock_details eu tenho uma coluna que eu criei pegando a mesma medida em DAX só que quando eu vou fazer o relacionamento ENTRE A DCATEGORIAS e a  STOCK_DETAILS ele está dando dependencia circular.

Porque estou usando a inventory Month que é essa medida, já a qty las 12 month estou utilizando essa medida:

Qty Last 12 Months =
IF(
    ISBLANK(
    CALCULATE(
        [Quantity] // Quantidade está vindo da Sales_Report
        , DATESINPERIOD(
            dCalendario[Data]
            , Today()-1 , -1, YEAR
        )
    )),
    0,
    CALCULATE(
        [Quantity]
        , DATESINPERIOD(
            dCalendario[Data]
            , Today()-1 , -1, YEAR)
            )
        )
---------------------------------------------------------------------------------------------------------
Inventory_Months =
VAR vQtdHand = SUM(Stock_Details[ON_HAND_BAL])
RETURN
DIVIDE(
  vQtdHand,
    [Qty Last 12 Months]
   )*12
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
8 horas atrás, Paulo Cesar disse:

@Fabrício Pena Patrocíniobom dia!

Na verdade eu criei uma tabela dCategoria, só que na tabela Stock_details eu tenho uma coluna que eu criei pegando a mesma medida em DAX só que quando eu vou fazer o relacionamento ENTRE A DCATEGORIAS e a  STOCK_DETAILS ele está dando dependencia circular.

Porque estou usando a inventory Month que é essa medida, já a qty las 12 month estou utilizando essa medida:

Qty Last 12 Months =
IF(
    ISBLANK(
    CALCULATE(
        [Quantity] // Quantidade está vindo da Sales_Report
        , DATESINPERIOD(
            dCalendario[Data]
            , Today()-1 , -1, YEAR
        )
    )),
    0,
    CALCULATE(
        [Quantity]
        , DATESINPERIOD(
            dCalendario[Data]
            , Today()-1 , -1, YEAR)
            )
        )
---------------------------------------------------------------------------------------------------------
Inventory_Months =
VAR vQtdHand = SUM(Stock_Details[ON_HAND_BAL])
RETURN
DIVIDE(
  vQtdHand,
    [Qty Last 12 Months]
   )*12

consegue passar o arquivo pbix para eu tentar te ajudar?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Paulo Cesar, vamos lá. Alterei a medida Slow Moving Category para o seguinte:

Slow Moving Category = 
VAR vCat = SELECTEDVALUE(dCategory[Category])
VAR vInventoryMonths = [Inventory_Months]
VAR VResultado = 
SWITCH(
    TRUE(),
    and(vInventoryMonths > 0, vInventoryMonths  <= 12) , "OK",
    and(vInventoryMonths > 12, vInventoryMonths <= 24) , ">12M",
    and(vInventoryMonths > 24, vInventoryMonths <= 36) , ">24M",
        vInventoryMonths > 36 , ">36M",
    and([Qty Last 12 Months] = 0,[Qty Last 24 Months] = 0), "OBS2",
    "OBS1"
)
RETURN
IF(
    vCat = VResultado,
    VResultado
)

Aqui eu comparei o valor filtrado da categoria (na segmentação) com o valor calculado pela medida. Se for igual, traz o valor. Se for diferente, traz BLANK.

Depois criei a Medida FiltraEstoque:

FiltraEstoque = 
var vCat = SELECTEDVALUE(dCategory[Category])
VAR vSMC = [Slow Moving Category]
RETURN
IF(
    vCat = vSMC, 
    1
)

Esta medida eu coloquei como filtro lateral da tabela de baixo, filtrando o valor para 1.

 

Notei tb que na sua tabela auxiliar tem OBS, mas na medida vc divide em OBS1 e OBS2. Seria legal ter OBS1 e OBS2 na tabela auxiliar.

 

 

20240522_Brasil Sales Report - Copy.pbix

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
5 horas atrás, Bruno Abdalla de Souza disse:

@Paulo Cesar, vamos lá. Alterei a medida Slow Moving Category para o seguinte:

Slow Moving Category = 
VAR vCat = SELECTEDVALUE(dCategory[Category])
VAR vInventoryMonths = [Inventory_Months]
VAR VResultado = 
SWITCH(
    TRUE(),
    and(vInventoryMonths > 0, vInventoryMonths  <= 12) , "OK",
    and(vInventoryMonths > 12, vInventoryMonths <= 24) , ">12M",
    and(vInventoryMonths > 24, vInventoryMonths <= 36) , ">24M",
        vInventoryMonths > 36 , ">36M",
    and([Qty Last 12 Months] = 0,[Qty Last 24 Months] = 0), "OBS2",
    "OBS1"
)
RETURN
IF(
    vCat = VResultado,
    VResultado
)

Aqui eu comparei o valor filtrado da categoria (na segmentação) com o valor calculado pela medida. Se for igual, traz o valor. Se for diferente, traz BLANK.

Depois criei a Medida FiltraEstoque:

FiltraEstoque = 
var vCat = SELECTEDVALUE(dCategory[Category])
VAR vSMC = [Slow Moving Category]
RETURN
IF(
    vCat = vSMC, 
    1
)

Esta medida eu coloquei como filtro lateral da tabela de baixo, filtrando o valor para 1.

 

Notei tb que na sua tabela auxiliar tem OBS, mas na medida vc divide em OBS1 e OBS2. Seria legal ter OBS1 e OBS2 na tabela auxiliar.

 

 

20240522_Brasil Sales Report - Copy.pbix 16.63 MB · 1 download

@Bruno Abdalla de Souzaboa tarde!

É isso mesmo que eu queria, nossa estou a uma semana para tentar fazer isso. Muito obrigado pela ajuda!

Deixa te perguntar uma coisa nessa parte aqui terei que criar um relacionamento da dCategoria com a Categoria que está na Stock certo?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Aterei as 3 medidas

Stock Cost = 
VAR vCategoria = VALUES(dCategory[Category])
VAR vItens = 
    FILTER(
        ADDCOLUMNS(
            SUMMARIZE(
                dItens,
                dItens[ITEM], 
                dItens[ITEM_DESCRIPTION],
                dItens[SEGMENT]
            ),
            "@Categoria",
            [Slow Moving Category]
        ),
        [@Categoria] IN vCategoria
    )
VAR vResultado =             
    SUMX(
        vItens,
        [Avg Cost Value] * [Qty On Hand]
    )
RETURN
    vResultado

 

 

Qty On Hand = 
VAR vCategoria = VALUES(dCategory[Category])
VAR vItens = 
    FILTER(
        ADDCOLUMNS(
            SUMMARIZE(
                dItens,
                dItens[ITEM], 
                dItens[ITEM_DESCRIPTION],
                dItens[SEGMENT]
            ),
            "@Categoria",
            [Slow Moving Category]
        ),
        [@Categoria] IN vCategoria
    )
VAR vResultado =             
    SUMX(
        vItens,
        CALCULATE(SUM(Stock_Details[ON_HAND_BAL]))
    )
RETURN
    vResultado

 

 

Avg Cost Value = 
VAR vCategoria = VALUES(dCategory[Category])
VAR vItens = 
    FILTER(
        ADDCOLUMNS(
            SUMMARIZE(
                dItens,
                dItens[ITEM], 
                dItens[ITEM_DESCRIPTION],
                dItens[SEGMENT]
            ),
            "@Categoria",
            [Slow Moving Category]
        ),
        [@Categoria] IN vCategoria
    )
VAR vResultado =             
    SUMX(
        vItens,
        COALESCE(
            CALCULATE(AVERAGE(Stock_Details[VALOR CUSTO (REAL COST UNITÁRIO) ])),
            0
        )
    )
RETURN
    vResultado

 

20240522_Brasil Sales Report - Copy.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
8 horas atrás, Bruno Abdalla de Souza disse:

Aterei as 3 medidas

Stock Cost = 
VAR vCategoria = VALUES(dCategory[Category])
VAR vItens = 
    FILTER(
        ADDCOLUMNS(
            SUMMARIZE(
                dItens,
                dItens[ITEM], 
                dItens[ITEM_DESCRIPTION],
                dItens[SEGMENT]
            ),
            "@Categoria",
            [Slow Moving Category]
        ),
        [@Categoria] IN vCategoria
    )
VAR vResultado =             
    SUMX(
        vItens,
        [Avg Cost Value] * [Qty On Hand]
    )
RETURN
    vResultado

 

 

Qty On Hand = 
VAR vCategoria = VALUES(dCategory[Category])
VAR vItens = 
    FILTER(
        ADDCOLUMNS(
            SUMMARIZE(
                dItens,
                dItens[ITEM], 
                dItens[ITEM_DESCRIPTION],
                dItens[SEGMENT]
            ),
            "@Categoria",
            [Slow Moving Category]
        ),
        [@Categoria] IN vCategoria
    )
VAR vResultado =             
    SUMX(
        vItens,
        CALCULATE(SUM(Stock_Details[ON_HAND_BAL]))
    )
RETURN
    vResultado

 

 

Avg Cost Value = 
VAR vCategoria = VALUES(dCategory[Category])
VAR vItens = 
    FILTER(
        ADDCOLUMNS(
            SUMMARIZE(
                dItens,
                dItens[ITEM], 
                dItens[ITEM_DESCRIPTION],
                dItens[SEGMENT]
            ),
            "@Categoria",
            [Slow Moving Category]
        ),
        [@Categoria] IN vCategoria
    )
VAR vResultado =             
    SUMX(
        vItens,
        COALESCE(
            CALCULATE(AVERAGE(Stock_Details[VALOR CUSTO (REAL COST UNITÁRIO) ])),
            0
        )
    )
RETURN
    vResultado

 

20240522_Brasil Sales Report - Copy.pbix 16.63 MB · 0 downloads

@Bruno Abdalla de Souzabom dia!

Testei aqui e é isso mesmo, porém, quando não tem nenhuma seleção no filtro de categoria fica assim.

image.png.5cd047c120a04641866a6eb7e0d02a8e.png

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...