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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

CALCULATE a un nivel de detalle diferente en una matriz del que se muestra

Hey todo,

He estado trabajando en este problema durante demasiado tiempo y tal vez lo estoy pensando demasiado, pero no puedo conseguir que este cálculo funcione como creo que debería. Tengo datos como se muestra a continuación. Para reducirlo a los puntos importantes para este cálculo, las tablas son:
Dim_Model: por SKU con Categoría, Grupo, Fabricante
Dim_Calendar: por fecha con SeasonYear
Dim_Geography: por Estado
Fact_Inventory: por SKU, Fecha, Estado con Ventas

paulevans85_1-1611123977195.png

El objeto visual resultante que estoy tratando de lograr es una Matriz con varias medidas (no importante para esta pregunta) y un porcentaje al cálculo de tipo total (el quid de esta pregunta) que se agrega a un nivel no mostrado en el objeto visual. Para complicar aún más las cosas, por supuesto, hay rebanadoras en el informe a considerar. Cualquier ayuda es muy apreciada, ya que estoy seguro de que esto es algo simple que estoy pasando por alto.

Filtros: Dim_Model.Manufacturer á "A"
Slicers: Dim_Model.Category, Dim_Calendar.SeasonYear y Dim_Geography.State

Medida deseada: Porcentaje de ventas para las SKU/Categoría (cualquiera que sea el nivel de perforación en el que lo tenga el usuario) Grupo frente a las ventas totales de ese Grupo para todos los Fabricantes
Consideraciones: Todos los fabricantes utilizarán los mismos nombres de grupo para fines de datos de la industria, pero ninguno utiliza la misma categoría ni nomenclatura DE SKU, los usuarios quieren una matriz para que puedan profundizar / arriba entre categoría y SKU, pero sólo utilizando los botones superiores no los expansores de árbol / contratistas, me doy cuenta de que esta medida duplica algunos datos en el objeto visual, pero es lo suficientemente útil como para que esté bien hasta que podamos obtener más granulares categoría y comparaciones SKU

Datos de ejemplo: aquí está claro que Grupo es Exterior, Interior y Multi, aunque supongamos que realmente no se puede inferir por el nombre de categoría, debe usar el campo Grupo

CategoríaVentasVentas en grupoVentas en grupo
de la industria
% de
Industria
Al aire libre - Grande $ 152,254 $ 228,038 $ 272,34183.7%
Al aire libre - Pequeño $ 75,784 $ 228,038 $ 272,34183.7%
Interior - Grande $ 12,347 $ 24,887 $ 786,5743.2%
Interior - Medio $ 9,087 $ 24,887 $ 786,5743.2%
Interior - Pequeño $ 3,453 $ 24,887 $ 786,5743.2%
Multi - Pequeño $ 111,980 $ 1,112,320 $ 3,547,90831.4%
Multi - X Pequeño $ 1,000,340 $ 1,112,320 $ 3,547,90831.4%

disculpas por los números más destrozados a la derecha, me sigue diciendo HTML no válido cuando me alineo a la derecha a pesar de que sólo estoy usando los botones incorporados

1 ACCEPTED SOLUTION

Hey @PaulDBrown ! Gracias de nuevo por esto. Trabajé a través de algunas iteraciones de lo que sugeriste y todavía me dio sólo los números de los elementos visibles.

¡Buuuuuut, pude averiguarlo! 🙌 A través de esta medida bastante inelegante, tengo los números exactos que necesito en cualquier nivel de jerarquía visible

Ventas en grupo ?
VAR grp á SELECTEDVALUE(Dim_Model[Grupo])

devolución
CALCULATE(
SI(
ISBLANK(grp)
, SUM(Fact_Inventory[Ventas])
, CALCULATE(
SUM(Fact_Inventory[Ventas])
, Dim_Model [Grupo] - grp
)
)
, ALL(Dim_Model[SKU])
, ALL(Dim_Model[Categoría])
)
El condicional ISBLANK(grp) es para situaciones donde más de 1 Grupo está "seleccionado", lo que sólo sucede (en mi informe) para los totales generales y, por lo tanto, solo necesita ser todas las Ventas (condicionadas a otras segmentaciones en la página)

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

@paulevans85

Esto debería funcionar:

Ventas de todos los fabricantes & Grupo de categorías CALCULATE([Suma de ventas], ALL(Dim_Model.Manufacturer), ALL(Dim_Model.Category Group))


% sobre todos los fabricantes- DIVIDE([Suma de ventas], [Ventas de todos los fabricantes y grupo de categorías])

Hola @PaulDBrown ! Muchas gracias por la respuesta. Categoría y Grupo son dos campos separados; La categoría es uno de los dos posiblemente visibles (SKU el otro) en las filas de la matriz y el grupo es el campo no visible que necesito agregar. Probé el ALL(Dim_Model.Manufacturer) y agregué el segundo ALL() por lo tanto:

  1. como lo has escrito - no funciona porque son campos separados
  2. solo Categoría - da las ventas totales de la industria ($1,365,245 de la tabla anterior) para todos los Grupos para cada fila (actualmente se muestra en el nivel de categoría de la jerarquía) y ahora muestra los registros de otras categorías que no forman parte del fabricante "A" con espacios en blanco para otras medidas y el mismo total para esta medida
    1. Para deshacerme de las filas adicionales, creé una medida Sales_All CALCULATE(SUM(Fact_Inventory.Sales), ALL(Dim_Model.Manufacturer)) y filtrado a "no está en blanco" en el objeto visual. Esto lo llevó de vuelta a la matriz como se describió anteriormente con un [Sales todos los fabricantes y grupo de categorías] para cada uno, pero agregando a ese nivel de categoría. El total general en la parte inferior es el total general correcto, pero los subtotales individuales no suman ese total general porque las otras Ventas (no Fabricante "A") no son visibles
  3. solo Grupo - no agrega filas adicionales y muestra el total general correcto, pero muestra subtotales individuales por categoría en lugar de subtotales para el grupo
    1. Se ha añadido el filtro [Sales_All] de nuevo para las pruebas y cambió sólo el total general y lo convierte en la suma de los subtotales mostrados
  4. Categoría y Grupo - lo mismo que 2 y 2.1 arriba

@paulevans85

Ok, para lograr lo que necesitas, dado que Categoría y Grupo son campos separados, puedes:

1) añadir ambos campos al objeto visual y utilizar el meaure

2) crear un nuevo campo (columna calculada) en la tabla tenue para categoría - grupo. A continuación, puede utilizar este campo en la medida en lugar de la expresión ALL(Dim_Model.Group). Ie. Utilice ALL(Dim_Model. Categoría - Grupo)) y cámbiele el nombre en el objeto visual.
tener sentido?

Hey @PaulDBrown ! Gracias de nuevo por esto. Trabajé a través de algunas iteraciones de lo que sugeriste y todavía me dio sólo los números de los elementos visibles.

¡Buuuuuut, pude averiguarlo! 🙌 A través de esta medida bastante inelegante, tengo los números exactos que necesito en cualquier nivel de jerarquía visible

Ventas en grupo ?
VAR grp á SELECTEDVALUE(Dim_Model[Grupo])

devolución
CALCULATE(
SI(
ISBLANK(grp)
, SUM(Fact_Inventory[Ventas])
, CALCULATE(
SUM(Fact_Inventory[Ventas])
, Dim_Model [Grupo] - grp
)
)
, ALL(Dim_Model[SKU])
, ALL(Dim_Model[Categoría])
)
El condicional ISBLANK(grp) es para situaciones donde más de 1 Grupo está "seleccionado", lo que sólo sucede (en mi informe) para los totales generales y, por lo tanto, solo necesita ser todas las Ventas (condicionadas a otras segmentaciones en la página)

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

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.