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

Filtrado cruzado de datos en la misma columna y misma tabla

Hola

Actualmente estoy trabajando en un conjunto de datos, que es similar al de abajo

Número de materia prima Tipo
acategoría 1
bcategoría 2
cRegión 1
dRegión 2
eRegión 3
eCategoría 1

Con esto, estoy mostrando dos gráficos de barras.

El gráfico 1 tiene la categoría como eje y valor como recuento de materia prima (que es 3).

El gráfico 2 tiene la región como eje y valor como recuento de materia prima (que es 3).

Estos gráficos se filtran como objetos visuales independientes mediante el panel de filtro.

Una materia prima puede tener tipos de categoría y región.

Cuando se selecciona una categoría determinada en el gráfico 1, la región debe filtrarse cruzadamente en el gráfico 2 y viceversa.

¿Cómo podemos lograr esto?

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @AishwariyaV ,

Prueba esto:

1. Transformar datos:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUXJOLElNzy+qVDBUitWJVkpCFjICCyUDhYJS0zPz86BqUhACEBWpCAFjuACywbEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Raw material number" = _t, Type = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Raw material number", type text}, {"Type", type text}}),
    CategoryTable = Table.SelectRows(#"Changed Type", each Text.Contains([Type],"Category" )),
    RegionTable = Table.SelectRows(#"Changed Type", each Text.Contains([Type],"Region" )),
    MergeTable = Table.NestedJoin(CategoryTable, {"Raw material number"}, RegionTable, {"Raw material number"}, "RegionTable", JoinKind.FullOuter),
    #"Expanded RegionTable" = Table.ExpandTableColumn(MergeTable, "RegionTable", {"Raw material number", "Type"}, {"Raw material number.1", "Type.1"}),
    #"Added Conditional Column" = Table.AddColumn(#"Expanded RegionTable", "Custom", each if [Raw material number] = null then [Raw material number.1] else [Raw material number]),
    #"Removed Columns" = Table.RemoveColumns(#"Added Conditional Column",{"Raw material number", "Raw material number.1"}),
    #"Renamed Columns1" = Table.RenameColumns(#"Removed Columns",{{"Custom", "Raw material number"}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns1",{"Raw material number", "Type", "Type.1"}),
    #"Renamed Columns2" = Table.RenameColumns(#"Reordered Columns",{{"Type", "Category Type"}, {"Type.1", "Region Type"}}),
    #"Sorted Rows" = Table.Sort(#"Renamed Columns2",{{"Raw material number", Order.Ascending}})
in
    #"Sorted Rows"

pq.gif

2. Crear objetos visuales:

filter.gif

Saludos

Icey

Si este post Ayuda a continuación, considerar Aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido.

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

No @AishwariyaV ,

Prueba esto:

1. Transformar datos:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUXJOLElNzy+qVDBUitWJVkpCFjICCyUDhYJS0zPz86BqUhACEBWpCAFjuACywbEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Raw material number" = _t, Type = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Raw material number", type text}, {"Type", type text}}),
    CategoryTable = Table.SelectRows(#"Changed Type", each Text.Contains([Type],"Category" )),
    RegionTable = Table.SelectRows(#"Changed Type", each Text.Contains([Type],"Region" )),
    MergeTable = Table.NestedJoin(CategoryTable, {"Raw material number"}, RegionTable, {"Raw material number"}, "RegionTable", JoinKind.FullOuter),
    #"Expanded RegionTable" = Table.ExpandTableColumn(MergeTable, "RegionTable", {"Raw material number", "Type"}, {"Raw material number.1", "Type.1"}),
    #"Added Conditional Column" = Table.AddColumn(#"Expanded RegionTable", "Custom", each if [Raw material number] = null then [Raw material number.1] else [Raw material number]),
    #"Removed Columns" = Table.RemoveColumns(#"Added Conditional Column",{"Raw material number", "Raw material number.1"}),
    #"Renamed Columns1" = Table.RenameColumns(#"Removed Columns",{{"Custom", "Raw material number"}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns1",{"Raw material number", "Type", "Type.1"}),
    #"Renamed Columns2" = Table.RenameColumns(#"Reordered Columns",{{"Type", "Category Type"}, {"Type.1", "Region Type"}}),
    #"Sorted Rows" = Table.Sort(#"Renamed Columns2",{{"Raw material number", Order.Ascending}})
in
    #"Sorted Rows"

pq.gif

2. Crear objetos visuales:

filter.gif

Saludos

Icey

Si este post Ayuda a continuación, considerar Aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido.

Syndicate_Admin
Administrator
Administrator

@AishwariyaV , si la tabla muestra los datos de origen. Creo que sería una buena idea despotablear lo mismo y tratar de

https://radacad.com/pivot-and-unpivot-with-power-bi

Gracias por la respuesta @amitchandak .

Pero mis datos de origen en sí solo están en formato unpivoted.

El problema es, ya que estoy usando el panel de filtro para filtrar la categoría y la región en dos objetos visuales independientes, cuando selecciono la barra "Categoría 1" del gráfico 1, en lugar de mostrar "Región 3" en el gráfico 2, se muestra en blanco.

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.