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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Cómo obtener TopN+OurProducts, y el resto agrupados como otros. [Lea a continuación para obtener más información]

Por lo tanto, he podido obtener los productos TopN de la lista de productos, y el resto como otros. Creé una nueva tabla a partir de mi mesa principal e hice una relación 1:Many con ella. Código para la nueva tabla:

TopProducts = UNION(VALUES('LPO Combined Molecule Mo (2)'[Product]), ROW("Product", "Other"))

nueva medida que muestra los productos opN de la lista de productos, y el resto como otros:

Top N Value = 
Var TopNValue = 5

Var TopPProduct=
	TopN(TopNValue, ALLSELECTED(TopProducts), 'LPO Combined Molecule Mo (2)'[MAT 2023 Value SUM])

Var AllValue = CALCULATE('LPO Combined Molecule Mo (2)'[MAT 2023 Value SUM], ALLSELECTED(TopProducts))

Var OtherValue = AllValue - CALCULATE('LPO Combined Molecule Mo (2)'[MAT 2023 Value SUM], TopPProduct)

Var TopNValue1 = CALCULATE('LPO Combined Molecule Mo (2)'[MAT 2023 Value SUM], KEEPFILTERS(TopPProduct))

Var currentPProduct = SELECTEDVALUE(TopProducts[Product])

Return
IF(currentPProduct  = "Other", OtherValue, TopNValue1)

Además, tengo que mencionar que estoy usando una cortadora de fiambres. Por lo tanto, los productos que se muestran cambian según la categoría a la que pertenecen. Ahora mi pregunta es cómo puedo modificar esta medida para incluir siempre un determinado producto independientemente de que estén en el topN.

Aquí hay un ejemplo de mi tabla:

Afthab_0-1699814176827.png

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hola @Afthab

¿Eres capaz de enviar los datos con los que estás trabajando? La razón por la que pregunto es que los $10,066,415 y los $5,891,691 son diferentes a la suma de la tabla de ejemplo que proporcionó anteriormente.

También es importante recordar que la medida se centra en el TopN y también en los productos "siempre incluidos". No estoy seguro de cómo se calcula el total de $10,066,415.

¿Necesitaría obtener una mejor comprensión de los datos de muestra si es posible?

Muchas gracias.

Theo

Syndicate_Admin
Administrator
Administrator

@TheoC,

Gracias por la solución. De hecho, esto me devuelve lo que quiero. Sin embargo, el total que se muestra no es el mismo que la suma total real. Vea la siguiente captura de pantalla:

Afthab_0-1699866909909.png

El primer valor es total y el segundo es nueva medida creada

Syndicate_Admin
Administrator
Administrator

@ThxAlot SQLBI es muy bueno en todos los aspectos. Sin embargo, no estoy seguro de que esto satisfaga las necesidades de lo que se ha preguntado en el segundo aspecto de la solicitud de @Afthab: "Ahora mi pregunta es cómo puedo modificar esta medida para incluir siempre un determinado producto independientemente de que estén en el topN".

Syndicate_Admin
Administrator
Administrator

Syndicate_Admin
Administrator
Administrator

Hola @Afthab

Intenta ajustar la medida para que incluyas IN en tu lógica. Es posible que necesite un poco de ajuste, pero dé lo siguiente y asegúrese de ajustarlo de acuerdo con su modelo:

Top N Plus OurProducts Value = 

VAR TopNValue = 5

VAR AlwaysProductsList = { "A", "B" , "C" ...} // Replace with your own products

VAR TopNPlusOurProducts = 

    UNION (
        TOPN ( TopNValue, ALLSELECTED ( TopProducts ) , 'LPO Combined Molecule Mo (2)'[MAT 2023 Value SUM] ) , 
        FILTER ( ALL ( 'ProductTable' ) , 'ProductTable'[ProductColumn] IN AlwaysProductsList)
    )

VAR AllValue = CALCULATE ( 'LPO Combined Molecule Mo (2)'[MAT 2023 Value SUM] , ALLSELECTED ( TopProducts ) )

VAR OtherValue = AllValue - CALCULATE ( 'LPO Combined Molecule Mo (2)'[MAT 2023 Value SUM] , TopNPlusOurProducts )

VAR TopNPlusOurProductsValue = CALCULATE ( 'LPO Combined Molecule Mo (2)'[MAT 2023 Value SUM] , KEEPFILTERS ( TopNPlusOurProducts ) )

VAR CurrentProduct = SELECTEDVALUE ( TopProducts[Product] )

RETURN

IF ( CurrentProduct = "Other" , OtherValue , IF ( CurrentProduct IN OurProductsList , TopNPlusOurProductsValue , TopNPlusOurProductsValue ) )

Espero que ayude.

Theo

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

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

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.