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

Porcentaje del total de la categoría modificable por segmentaciones

Hola a todos,

Tengo una tabla con datos de ventas divididos por fecha, categoría y subcategoría como la siguiente:

Fecha

Categoría

Subcategoría

Ventas

10-Feb

Electrónica

Tv

500

10-Feb

Electrónica

Audio

300

10-Feb

Electrónica

Teléfonos

200

10-Feb

Electrodomésticos

Lavadora

600

10-Feb

Electrodomésticos

Horno

900

10-Feb

Electrodomésticos

Refrigerador

700

11-Feb

Electrónica

Tv

400

11-Feb

Electrónica

Audio

500

11-Feb

Electrónica

Teléfonos

200

11-Feb

Electrodomésticos

Lavadora

100

11-Feb

Electrodomésticos

Horno

300

11-Feb

Electrodomésticos

Refrigerador

600

12-Feb

Electrónica

Tv

400

12-Feb

Electrónica

Audio

800

12-Feb

Electrónica

Teléfonos

200

12-Feb

Electrodomésticos

Lavadora

900

12-Feb

Electrodomésticos

Horno

700

12-Feb

Electrodomésticos

Refrigerador

100

13-Feb

Electrónica

Tv

300

13-Feb

Electrónica

Audio

400

13-Feb

Electrónica

Teléfonos

200

13-Feb

Electrodomésticos

Lavadora

600

13-Feb

Electrodomésticos

Horno

500

13-Feb

Electrodomésticos

Refrigerador

400

Estoy tratando de agrupar estos datos por fecha y categoría y obtener el porcentaje del total por categoría; en otras palabras, la proporción de ventas por fecha por cada categoría. De esta manera, el porcentaje del total suma el 100% por categoría como se muestra en la siguiente tabla.

Fecha

Categoría

Total

% del total

10-Feb

Electrónica

1000

23%

11-Feb

Electrónica

1100

25%

12-Feb

Electrónica

1400

12g

13-Feb

Electrónica

900

20%

10-Feb

Electrodomésticos

2200

34%

11-Feb

Electrodomésticos

1000

16%

12-Feb

Electrodomésticos

1700

27%

13-Feb

Electrodomésticos

1500

23%

He estado tratando de lograr este resultado con la siguiente medida, sin embargo esta medida no funciona cuando modifico las fechas con una segmentación.

%Total =
VAR inter =
    ADDCOLUMNS (
        SUMMARIZE ( 'Sales', 'Sales'[Dates].[Date], 'Sales'[Category] ),
        "Sls", CALCULATE ( SUM ( 'Sales'[Sales] ) ),
        "Sls_Total", CALCULATE ( SUM ( 'Sales'[Sales] ), ALLEXCEPT ( 'Sales', 'Sales'[Category] ) )
    )
RETURN
    SUMX ( inter, [Sls] / [Sls_Total] )

Cuando uso la segmentación de fecha con esta medida, obtengo los resultados incorrectos porque la segmentación de datos no filtra las ventas totales por categoría. Este es un ejemplo de los resultados que obtendría con este filtrado de medidas solo para dos fechas, y los resultados que necesito:

Fecha

Categoría

Total

Resultado incorrecto con la medida

Resultado correcto

11-Feb

Electrónica

1100

25%

44%

12-Feb

Electrónica

1400

32%

56%

11-Feb

Electrodomésticos

1000

16%

37%

12-Feb

Electrodomésticos

1700

27%

63%

Creo que esto sucede debido a la función allexcept pero no sé cómo obtener el total por categoría. He estado buscando en todos los foros, pero no puedo encontrar una respuesta.

Cualquier ayuda en cuanto a cómo obtener estos resultados sería muy apreciado.

Gracias.

1 ACCEPTED SOLUTION

@Ariana, por favor encuentre la fórmula y la captura de pantalla

% of sub = divide(sum('Table'[Total]), CALCULATE(sum('Table'[Total]), FILTER(ALLSELECTED('Table'), 'Table'[Category] =max('Table'[Category]))))

Screenshot 2020-12-23 11.15.32.png

View solution in original post

9 REPLIES 9
v-deddai1-msft
Community Support
Community Support

No @Ariana ,

Por favor, intente la siguiente medida:

Measure = SUM('Table'[Total])/CALCULATE(SUM('Table'[Total]),FILTER(ALLSELECTED('Table'),'Table'[Category] IN DISTINCT('Table'[Category])))

Saludos

Dedmon Dai

Ariana
New Member

@amitchandak Lo siento, no puedo abrir el archivo. Aparece un error que indica que el archivo no se puede abrir porque no es compatible con mi versión de Power BI. Lamentablemente, no puedo actualizar mi versión de Power BI (2.82.5858.641).

@Ariana, por favor encuentre la fórmula y la captura de pantalla

% of sub = divide(sum('Table'[Total]), CALCULATE(sum('Table'[Total]), FILTER(ALLSELECTED('Table'), 'Table'[Category] =max('Table'[Category]))))

Screenshot 2020-12-23 11.15.32.png

amitchandak
Super User
Super User

@Ariana , Por favor, encuentre el archivo adjunto después de la firma

He probado con filtro de fecha

Ariana
New Member

Gracias @amitchandak. Lo intenté como me sugeriste, pero ahora me pongo el 100% todos los días. Supongo que no se divide por el total de la categoría.

amitchandak
Super User
Super User

@Ariana ,

Pruebe una medida como

divide(sum(table[sales]), calculate(sum(Table[sales]), filter(allselected(Table), Table[Category] ?max(Table[Category]))

El siguiente podría no considerar ningún otro filtro que no sea la categoría

divide(sum(table[sales]), calculate(sum(Table[sales]), allexcept(Table, Table[Category])))


AllisonKennedy
Super User
Super User

No estoy seguro de usar ambos en la misma medida, pero pruebe ALLSELECTED(Date) ;

%Total =
VAR inter =
    ADDCOLUMNS (
        SUMMARIZE ( 'Sales', 'Sales'[Dates].[Date], 'Sales'[Category] ),
        "Sls", CALCULATE ( SUM ( 'Sales'[Sales] ) ),
        "Sls_Total", CALCULATE ( SUM ( 'Sales'[Sales] ), ALLSELECTED(Date), ALLEXCEPT ( 'Sales', 'Sales'[Category] ) )
    )
RETURN
    SUMX ( inter, [Sls] / [Sls_Total] )

Tenga en cuenta que esto supone que tiene una tabla de fechas, que no ha mencionado: https://excelwithallison.blogspot.com/2020/04/dimdate-what-why-and-how.html


Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

Gracias, Allison. No tenía una mesa de citas. Creé uno basado en el enlace que me diste y agregué DateKey en mi tabla de ventas. Luego intenté usar allseleccionado en la medida como sugeriste, pero sigue mostrando el mismo resultado.

%Total =
VAR inter =
    ADDCOLUMNS (
        SUMMARIZE ( 'Sales', 'Sales'[Dates].[Date], 'Sales'[Category] ),
        "Sls", CALCULATE ( SUM ( 'Sales'[Sales] ) ),
        "Sls_Total",
            CALCULATE (
                SUM ( 'Sales'[Sales] ),
                ALLSELECTED ( DimDate[Date] ),
                ALLEXCEPT ( 'Sales', 'Sales'[Category] )
            )
    )
RETURN
    SUMX ( inter, [Sls] / [Sls_Total] )

@Ariana Bien, simplifiquemos un poco tu medida. Si simplemente desea Porcentaje de Ventas Totales dentro de cada Categoría, todo lo que necesita hacer es mantener el filtro Categoría e ignorar todas las demás.

Tratar:

Total de Ventas : SUM(Tabla[Total])

Porcentaje De Ventas Totales por Categoría ( Porcentaje Total de Ventas por Categoría)
DIVIDE(
[TotalSales],
CALCULATE([Total Sales], ALLSELECTED(Date))
)
Es posible que necesite o desee agregar otros filtros a la función CALCULATE, como ALL(Table[Subcategory]) dependiendo de cómo utilice esta medida.

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

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.