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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
paliman
Frequent Visitor

Relaciones: Agrupar valores no definidos en "Otros"

Hola a todos

Estoy trabajando en un escenario de presupuesto frente a real.

En la "Tabla de presupuesto" tengo un presupuesto detallado para algunos clientes importantes, y una gran cantidad de pequeños clientes agrupados como "Otros".

En la "Tabla de reales" tengo a todos estos pequeños clientes uno por uno

También tengo dos tablas de dimensiones denominadas "Clientes" con todos los datos maestros y "Clientes de presupuesto", con solo nuestros principales clientes y el artículo "otros"

Estas son las tablas de dimensiones:

Dim Tables.PNG

Ambos están relacionados por "Cust ID" y "Budget Cust ID"

Las tablas de hechos:

Fact Tables.PNG

Y el resultado deseado:

Result Table.PNG

No puedo agrupar las ventas reales a los pequeños clientes en el otro grupo

Gracias de antemano

Pablo.

2 ACCEPTED SOLUTIONS
edhans
Super User
Super User

Haría esto en Power Query antes de incorporar los datos a su modelo DAX. THat es para lo que está diseñado Power Query.

Se convierte en esto:

2020-04-16 19_30_06-Untitled - Power Query Editor.png

en esto:

2020-04-16 19_30_55-Untitled - Power Query Editor.png

Ponga este código M en una consulta en blanco para ver lo que hice. No tenía datos reales ni sabía cuál era su punto de decisión sobre lo que era un cliente real y lo que se resumió en "Otros clientes", así que arbitrariamente elegí mirar los primeros 5 caracteres de los nombres de clientes falsos que estaba usando. Podría hacerlo fuera del valor de ventas, o de algún otro campo que quizás no haya mostrado, como clase de cliente, categoría, etc.

Tenga en cuenta también antes de traerlo a DAX, incluso podría hacer un grupo en los primeros 2 columsn y resumir las ventas y sólo traer una línea "Otro cliente" con un total de sus ventas en una línea si lo desea.

1) En Power Query, seleccione Nuevo origen y, a continuación, Consulta en blanco
2) En la cinta inicio, seleccione el botón "Editor avanzado"
3) Retire todo lo que ve, luego pegue el código M que le he dado en ese cuadro.
4) Pulse Hecho

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUXIuLS7Jz00tArENDQwMlGJ1opWMgBz/kozUouTSYpCEiSlY2BhJGKTEEqg6FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID = _t, Column1 = _t, Column2 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Column1", type text}, {"Column2", Int64.Type}}),
    #"Added NewID" = Table.AddColumn(#"Changed Type", "NewID", each if Text.Start([Column1], 5) = "Other" then 999 else [ID], Int64.Type),
    #"Added New Name" = Table.AddColumn(#"Added NewID", "New Name", each if [NewID] = 999 then "Other Customers" else [Column1], type text),
    #"Removed Other Columns" = Table.SelectColumns(#"Added New Name",{"NewID", "New Name", "Column2"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Other Columns",{{"NewID", "ID"}, {"New Name", "Name"}, {"Column2", "Sales"}})
in
    #"Renamed Columns"



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

View solution in original post

amitchandak
Super User
Super User

@paliman, preferiría una tabla de dimensiones de cliente la que aparece en la 2a y añadir una nueva fila en esa

Otros, Otros clientes

O

-1, Otro cliente

Esto se puede hacer si tiene una nueva tabla con esa fila y combinarlas en el modo de consulta Editar.

View solution in original post

4 REPLIES 4
paliman
Frequent Visitor

Gracias a los dos. El enfoque de usar Power Query era correcto.

Me alegra que su proyecto avance ahora @paliman.


Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting
amitchandak
Super User
Super User

@paliman, preferiría una tabla de dimensiones de cliente la que aparece en la 2a y añadir una nueva fila en esa

Otros, Otros clientes

O

-1, Otro cliente

Esto se puede hacer si tiene una nueva tabla con esa fila y combinarlas en el modo de consulta Editar.

edhans
Super User
Super User

Haría esto en Power Query antes de incorporar los datos a su modelo DAX. THat es para lo que está diseñado Power Query.

Se convierte en esto:

2020-04-16 19_30_06-Untitled - Power Query Editor.png

en esto:

2020-04-16 19_30_55-Untitled - Power Query Editor.png

Ponga este código M en una consulta en blanco para ver lo que hice. No tenía datos reales ni sabía cuál era su punto de decisión sobre lo que era un cliente real y lo que se resumió en "Otros clientes", así que arbitrariamente elegí mirar los primeros 5 caracteres de los nombres de clientes falsos que estaba usando. Podría hacerlo fuera del valor de ventas, o de algún otro campo que quizás no haya mostrado, como clase de cliente, categoría, etc.

Tenga en cuenta también antes de traerlo a DAX, incluso podría hacer un grupo en los primeros 2 columsn y resumir las ventas y sólo traer una línea "Otro cliente" con un total de sus ventas en una línea si lo desea.

1) En Power Query, seleccione Nuevo origen y, a continuación, Consulta en blanco
2) En la cinta inicio, seleccione el botón "Editor avanzado"
3) Retire todo lo que ve, luego pegue el código M que le he dado en ese cuadro.
4) Pulse Hecho

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUXIuLS7Jz00tArENDQwMlGJ1opWMgBz/kozUouTSYpCEiSlY2BhJGKTEEqg6FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID = _t, Column1 = _t, Column2 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Column1", type text}, {"Column2", Int64.Type}}),
    #"Added NewID" = Table.AddColumn(#"Changed Type", "NewID", each if Text.Start([Column1], 5) = "Other" then 999 else [ID], Int64.Type),
    #"Added New Name" = Table.AddColumn(#"Added NewID", "New Name", each if [NewID] = 999 then "Other Customers" else [Column1], type text),
    #"Removed Other Columns" = Table.SelectColumns(#"Added New Name",{"NewID", "New Name", "Column2"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Other Columns",{{"NewID", "ID"}, {"New Name", "Name"}, {"Column2", "Sales"}})
in
    #"Renamed Columns"



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors