Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hola equipo,
Tengo el siguiente caso. Tengo objetivos específicos (Nombre de destino 1, Nombre de destino 2, etc.) que cada mes tienen cambios en los criterios. Por ejemplo, en enero, el Nombre de destino 1 tiene un único criterio basado en la columna Grupo de artículos de Dim_Products donde solo son elegibles los productos del Nombre del grupo de artículos 1, el Nombre de destino 2 tiene 3 criterios, los productos elegibles son aquellos que están en Nombre de categoría 1 (Categoría de productos Dim) y Nombre de subcategoría 1 (Subcategoría de productos Dim) y Nombre de marca 1 (Marca de productos Dim coulumn), el Nombre de destino 3 tiene 1 criterio los productos que tienen el Nombre de subcategoría 2 (Subcategoría de productos atenuados). En febrero, los mismos objetivos tienen diferentes criterios. El nombre de destino 1 tiene 1 criterio, los productos que tienen el nombre de la categoría 2 (categoría de coulumn de productos atenuados), el nombre de destino 2 tiene 2 criterios, los productos que tienen el nombre del grupo de artículos 2 (grupo de artículos de coulumn de productos dim) y el nombre de la subcategoría 4 (subcategoría de coulumn de productos atenuados) y el nombre de destino 3 tiene 1 criterio productos con nombre de marca 17 (marca de coulumn de productos atenuados).
Tabla de configuración de destinos
Mes | Blanco | Criteria_1 | Value_1 | Criteria_2 | Value_2 | Criteria_3 | Value_3 |
Enero | Nombre de destino 1 | Grupo de artículos | Nombre del grupo de artículos 1 | TTL | TTL | TTL | TTL |
Enero | Nombre de destino 2 | Categoría | Nombre de la categoría 1 | Subcategoría | Nombre de la subcategoría 1 | Marca | Nombre de la marca 1 |
Enero | Nombre de destino 3 | Subcategoría | Nombre de la subcategoría 2 | TTL | TTL | TTL | TTL |
Febrero | Nombre de destino 1 | Categoría | Nombre de la categoría 2 | TTL | TTL | TTL | TTL |
Febrero | Nombre de destino 2 | Grupo de artículos | Nombre del grupo de artículos 2 | Subcategoría | Nombre de la subcategoría 4 | TTL | TTL |
Febrero | Nombre de destino 3 | Marca | Nombre de la marca 17 | TTL | TTL | TTL | TTL |
En las columnas de criterios, siempre haciendo referencia a una columna de la tabla de productos dim y en las columnas de valores, un valor de esta columna
Tabla de productos Dim
Producto | Grupo de artículos | Categoría | Subcategoría | Marca |
Producto 1 | Nombre del grupo de artículos 1 | Nombre de la categoría 1 | Nombre de la subcategoría 1 | Nombre de la marca 1 |
Producto 2 | Nombre del grupo de artículos 2 | Nombre de la categoría 3 | Nombre de la subcategoría 4 | Nombre de la marca 4 |
Producto 3 | Nombre del grupo de artículos 3 | Nombre de la categoría 5 | Nombre de la subcategoría 8 | Nombre de la marca 9 |
Producto 4 | Nombre del grupo de artículos 3 | Nombre de la categoría 6 | Nombre de la subcategoría 9 | Nombre de la marca 11 |
Producto 5 | Nombre del grupo de artículos 1 | Nombre de la categoría 2 | Nombre de la subcategoría 3 | Nombre de la marca 3 |
Producto 6 | Nombre del grupo de artículos 4 | Nombre de la categoría 8 | Nombre de la subcategoría 11 | Nombre de la marca 13 |
Producto 7 | Nombre del grupo de artículos 3 | Nombre de la categoría 5 | Nombre de la subcategoría 7 | Nombre de la marca 8 |
Producto 8 | Nombre del grupo de artículos 5 | Nombre de la categoría 10 | Nombre de la subcategoría 14 | Nombre de la marca 16 |
Producto 9 | Nombre del grupo de artículos 1 | Nombre de la categoría 1 | Nombre de la subcategoría 1 | Nombre de la marca 1 |
Producto 10 | Nombre del grupo de artículos 5 | Nombre de la categoría 11 | Nombre de la subcategoría 15 | Nombre de la marca 19 |
Producto 11 | Nombre del grupo de artículos 3 | Nombre de la categoría 7 | Nombre de la subcategoría 10 | Nombre de la marca 12 |
Producto 12 | Nombre del grupo de artículos 5 | Nombre de la categoría 12 | Nombre de la subcategoría 16 | Nombre de la marca 20 |
Producto 13 | Nombre del grupo de artículos 1 | Nombre de la categoría 1 | Nombre de la subcategoría 2 | Nombre de la marca 2 |
Producto 14 | Nombre del grupo de artículos 4 | Nombre de la categoría 9 | Nombre de la subcategoría 13 | Nombre de la marca 15 |
Producto 15 | Nombre del grupo de artículos 3 | Nombre de la categoría 5 | Nombre de la subcategoría 8 | Nombre de la marca 10 |
Producto 16 | Nombre del grupo de artículos 5 | Nombre de la categoría 11 | Nombre de la subcategoría 15 | Nombre de la marca 18 |
Producto 17 | Nombre del grupo de artículos 2 | Nombre de la categoría 3 | Nombre de la subcategoría 4 | Nombre de la marca 5 |
Producto 18 | Nombre del grupo de artículos 5 | Nombre de la categoría 10 | Nombre de la subcategoría 14 | Nombre de la marca 17 |
Producto 19 | Nombre del grupo de artículos 3 | Nombre de la categoría 6 | Nombre de la subcategoría 9 | Nombre de la marca 11 |
Producto 20 | Nombre del grupo de artículos 4 | Nombre de la categoría 8 | Nombre de la subcategoría 12 | Nombre de la marca 14 |
Producto 21 | Nombre del grupo de artículos 2 | Nombre de la categoría 4 | Nombre de la subcategoría 5 | Nombre de la marca 6 |
Producto 22 | Nombre del grupo de artículos 2 | Nombre de la categoría 4 | Nombre de la subcategoría 6 | Nombre de la marca 7 |
¿Cómo puedo gestionarlo para filtrar las ventas (tabla de hechos) tal y como está configurado por objetivo? ¿Nombre real vs nombre de destino 1, real vs nombre de destino 2, etc.?
Tenga en cuenta que cada mes, cada objetivo puede cambiar los criterios (por lo tanto, la columna debe filtrarse de la tabla Productos atenuados).
Necesito un enfoque para Power Query o DAX Measure.
Gracias de antemano,
Eleftheria Koniari
Puede usar Power Query para transformar la tabla de criterios en una lista de productos coincidentes, p. ej.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8krMK00sqlTSUQpJLEpPLVHwS8xNVTAE8j1LUnMV3IvySwtQOAgFISE+WMhYHVyGGgH5zoklqen5YCkYE2FgcGlSMkIeiYdQ4lSUmJcCo2HCuK00JmyqEV6fuKUmFeEIH5xeIctEI0IhbkTYKybEWmaMIyTNcbs8FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Month = _t, Target = _t, Criteria_1 = _t, Value_1 = _t, Criteria_2 = _t, Value_2 = _t, Criteria_3 = _t, Value_3 = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Month", type text}, {"Target", type text}, {"Criteria_1", type text}, {"Value_1", type text}, {"Criteria_2", type text}, {"Value_2", type text}, {"Criteria_3", type text}, {"Value_3", type text}}),
Prods = List.Buffer( Table.ToRecords( Products)),
AddedList = Table.AddColumn( #"Changed Type", "Prod Names", each
let
Criteria1Col = [Criteria_1],
Criteria1Val = [Value_1],
Criteria2Col = [Criteria_2],
Criteria2Val = [Value_2],
Criteria3Col = [Criteria_3],
Criteria3Val = [Value_3],
MatchingProds = List.Select( Prods, each
( Criteria1Col = "TTL" or Record.Field( _, Criteria1Col) = Criteria1Val) and
( Criteria2Col = "TTL" or Record.Field( _, Criteria2Col) = Criteria2Val) and
( Criteria3Col = "TTL" or Record.Field( _, Criteria3Col) = Criteria3Val)
)
in
List.Transform( MatchingProds, each [Product])
, type list),
#"Removed Columns" = Table.RemoveColumns(AddedList,{"Criteria_1", "Value_1", "Criteria_2", "Value_2", "Criteria_3", "Value_3"}),
#"Expanded Prod Names" = Table.ExpandListColumn(#"Removed Columns", "Prod Names"),
#"Changed Type1" = Table.TransformColumnTypes(#"Expanded Prod Names",{{"Prod Names", type text}})
in
#"Changed Type1"
A continuación, puede utilizar TREATAS para hacer coincidir los productos de un determinado objetivo / mes con la tabla de productos, p. ej.
Sales for Target 1 =
VAR MatchingProducts =
CALCULATETABLE (
VALUES ( Targets[Product] ),
TREATAS ( VALUES ( 'Date'[Month] ), Targets[Month] ),
Targets[Target] = "Target 1"
)
VAR Result =
CALCULATE (
[Sales Amount],
KEEPFILTERS ( TREATAS ( MatchingProducts, Products[Product] ) )
)
RETURN
Result
También me gustaría tomarme un momento para agradecer a @johnt75 , por participar activamente en el foro de la comunidad y por las soluciones que han estado compartiendo en el foro de la comunidad. Sus contribuciones marcan una diferencia real.
Quería comprobar si ha tenido la oportunidad de revisar la información proporcionada. No dude en ponerse en contacto con nosotros si tiene más preguntas. Si la respuesta ha abordado su consulta, acéptela como una solución para que otros miembros de la comunidad puedan encontrarla fácilmente.
Gracias
Harshitha.
Equipo de apoyo a la comunidad.