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
Jimmy_85
New Member

Medir la segmentación en rangos basados en otra tabla

Queridos todos,

Necesito su ayuda a lo siguiente: Tengo una base de datos clásica (Tabla de entrada 1) con datos de ventas/costo con diferentes niveles jerárquicos para el producto y la geografía. El primer paso es calcular el margen bruto (GM) como medida calculada (definida como 1 costo/ventas). En la parte superior tengo otra tabla de entrada (tabla de entrada 2) que clasifica el estado de una categoría de producto basada en el GM. Las dos tablas deseadas son: Tabla de salida 1: Una codificación de color que indica el estado del GM (me las arreglé hasta ahora con switch/true pero sin la dimensión de categoría de producto en la tabla de entrada 2). Tabla de salida 2: Indique el % de las ventas que están bajo cada estado gm. Lo gestioné con la fórmula en la parte inferior, pero de nuevo sin la dimensión de categoría de producto. Cabe destacar que ambas tablas de salida deben tener la capacidad de profundizar/desglosar para jerarquías geográficas y de productos.

Un millón de gracias

Jimmy

Tablas de entrada
Tabla 1: Base de datos simple
PaísSector de productosCategoría de productoSkuVentasCosto
País XFrutasPlátano4242105
Country YVerdurasTomate323386
Country YFrutasManzanas85782012
Country YVerdurasPepino948982
País ZFrutasManzanas8578104
País ZVerdurasPepino94892010
Tabla 2: Margen bruto% Rango de una medida calculada
Categoría de productoEstadoLímite superiorLímite inferior
ManzanasVerde100%50%
ManzanasRojo50%30%
PepinoVerde10060%
PepinoRojo60%30%
Salida deseada
Tabla 1: Codificación de color basada en el margen bruto%
Categoría de productoCountry YPaís Z
ManzanasRojoVerde
PepinoVerdeRojo
Cuadro 2: % Ventas bajo diferentes estados de GM%
Categoría de productoVerdeRojoTotal
Manzanas33%67%100%
Pepino29%71%100%

Clúster GM% ?

CALCULATE (sum(Table1[Sales]),

FILTRO (

VALORES (Tabla1) ,

COUNTROWS (

FILTRO (

'Table2',

[GM%]> 'Tabla2'[Límite inferior]

&& [GM%] < 'Table2'[Límite superior]

)

) > 0

)

)

3 REPLIES 3
v-zhenbw-msft
Community Support
Community Support

Hola @Jimmy_85 ,

Podemos usar los siguientes pasos para cumplir con sus requisitos.

1. Cree una columna de cálculo GM en la Tabla1.

GM = 1 - DIVIDE([Cost],[Sales])

Measure 1.jpg

2. Cree una columna de país en la Tabla2.

country = CALCULATE(MAX('Table1'[Country]),FILTER('Table1','Table1'[Product Category]='Table2'[Product Category ] && 'Table1'[GM]>='Table2'[Lower Limit] && 'Table1'[GM]<='Table2'[Upper Limit]))

Measure 2.jpg

Entonces podemos obtener la tabla de salida1.

Measure 3.jpg

3. Necesitamos crear una columna en la Tabla2 para calcular las ventas.

Sales = CALCULATE(SUM(Table1[Sales]),FILTER('Table1','Table1'[Product Category]='Table2'[Product Category ] && 'Table1'[GM]>='Table2'[Lower Limit] && 'Table1'[GM]<='Table2'[Upper Limit]))

Measure 4.jpg

4. Por fin podemos crear una medida y obtener la tabla de salida2.

GM% Cluster = 
VAR total =
    CALCULATE (
        SUM ( Table1[Sales] ),
        FILTER (
             Table1 ,
            COUNTROWS (
                FILTER (
                    ALLSELECTED('Table2'),
                    [GM] >= 'Table2'[Lower Limit]
                        && [GM] < 'Table2'[Upper Limit]
                )
            ) > 0
        )
    )
var each_s = CALCULATE(SUM(Table2[Sales]))
RETURN
DIVIDE(each_s,total)

Measure 5.jpg

Si no cumple con su requisito, ¿podría mostrar el resultado exacto esperado basado en la tabla que ha compartido?

BTW, pbix como adjunto.

Saludos

Equipo de Apoyo comunitario _ zhenbw

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola a todos,

¡Muchas gracias por sus respuestas rápidas!

@amitchandak por desgracia este fue mi primer esfuerzo, pero finalmente no funcionó

@v-zhenbw-msft gracias por el esfuerzo detallado - por favor vea a continuación por qué esta solución no puede funcionar:

  • GM% no puede estar en una columna calculada, ya que necesito esto como una medida no un cálculo por fila. Mi base de datos original tiene 20 países, 5 sectores de productos, 50 categorías de productos y 3.000 SKUs. Y necesito hacer este cálculo en cualquier nivel de selección.
  • Debido a la complejidad de la base de datos, no puedo utilizar la tabla de rango GM% para asignar junto a ella el país y el GM%.
  • En la tabla 2 de salida final, el total por fila debe ser 100%. La lógica es qué % de ventas está bajo el estado Rojo y bajo estado Verde, por lo tanto, la suma debe ser del 100%.
  • Las tablas de salida deseadas son exactamente las que he puesto arriba, con la única diferencia de que tengo originalmente una base de datos mucho más grande frente a esta simplista.

¡Gracias!

amitchandak
Super User
Super User

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.