Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and a 50 percent discount on exams.
Get startedEarn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
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.
Solved! Go to 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]))))
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
@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]))))
@Ariana , Por favor, encuentre el archivo adjunto después de la firma
He probado con filtro de fecha
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.
@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])))
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
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])
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