cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Medidas para determinadas sucursales

Hola a todos.
Hay una lista de ramas, se calculan diferentes indicadores para ellas. ¿Es posible hacer que se calculen ciertos indicadores para ciertas ramas? Cuando la segmentación de datos seleccionaba una rama, ¿se mostraban las líneas con medidas para esa rama? Intenté KEEPFILTERS pero deja la línea con el indicador vacío, pero necesita desaparecer.

Por ejemplo, parte de una mesa grande

RamaSuma
Sucursal1, ventas 100
Sucursal1, ventas 150
Sucursal2, ventas 200
Sucursal2, ventas 250
Sucursal3, ventas 110
Sucursal1, gastos 50
Sucursal1, gastos 60
Sucursal2, gastos80
Sucursal3, gastos 35

Resultado: no se debe considerar la medida de ventas para 3, solo el gasto

MedidasSuma
Rama1
Ventas 250
Gasto 110
Rama2
Ventas 450
Gasto 80
Rama3
Gasto 35

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Primero debe dividir la columna Sucursal en 2: una para Sucursal y la otra para ventas / gastos. Puede usar este código en Power Query:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcipKzEvOMNRRKE7MSS1WUFBQ0lEyNDBQitXBIWeKLGeEImdkgEcORZ8xqpmGaPalVhSk5hWnQmRN8UmaodkIlQTKWKDZh6LN2FQpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Branch = _t, Sum = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Branch", type text}, {"Sum", Int64.Type}}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Branch", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Branch.1", "Branch.2"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Branch.1", type text}, {"Branch.2", type text}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Branch.1", "Branch"}, {"Branch.2", "Type"}}),
    #"Trimmed Text" = Table.TransformColumns(#"Renamed Columns",{{"Type", Text.Trim, type text}}),
    #"Cleaned Text" = Table.TransformColumns(#"Trimmed Text",{{"Type", Text.Clean, type text}}),
    #"Filtered Rows" = Table.SelectRows(#"Cleaned Text", each true)
in
    #"Filtered Rows"

Para obtener esta estructura:

Split column.JPG

Lo ideal es crear tablas de dimensiones para rama y tipo (recomendado). Así es como se ve el modelo:

model.JPG

Luego, con estas medidas:

Sum Amount = SUM(FactTable[Sum])
Exc br3 sales =
SUMX (
    FactTable,
    CALCULATE (
        IF (
            MAX ( 'Dim Branch'[dBranch] ) = "Branch3"
                && MAX ( 'Dim Type'[dType] ) = "sales",
            BLANK (),
            [Sum Amount]
        )
    )
)

Obtendrá lo siguiente:

result.JPG

He adjuntado el archivo PBIX de ejemplo

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Primero debe dividir la columna Sucursal en 2: una para Sucursal y la otra para ventas / gastos. Puede usar este código en Power Query:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcipKzEvOMNRRKE7MSS1WUFBQ0lEyNDBQitXBIWeKLGeEImdkgEcORZ8xqpmGaPalVhSk5hWnQmRN8UmaodkIlQTKWKDZh6LN2FQpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Branch = _t, Sum = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Branch", type text}, {"Sum", Int64.Type}}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Branch", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Branch.1", "Branch.2"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Branch.1", type text}, {"Branch.2", type text}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Branch.1", "Branch"}, {"Branch.2", "Type"}}),
    #"Trimmed Text" = Table.TransformColumns(#"Renamed Columns",{{"Type", Text.Trim, type text}}),
    #"Cleaned Text" = Table.TransformColumns(#"Trimmed Text",{{"Type", Text.Clean, type text}}),
    #"Filtered Rows" = Table.SelectRows(#"Cleaned Text", each true)
in
    #"Filtered Rows"

Para obtener esta estructura:

Split column.JPG

Lo ideal es crear tablas de dimensiones para rama y tipo (recomendado). Así es como se ve el modelo:

model.JPG

Luego, con estas medidas:

Sum Amount = SUM(FactTable[Sum])
Exc br3 sales =
SUMX (
    FactTable,
    CALCULATE (
        IF (
            MAX ( 'Dim Branch'[dBranch] ) = "Branch3"
                && MAX ( 'Dim Type'[dType] ) = "sales",
            BLANK (),
            [Sum Amount]
        )
    )
)

Obtendrá lo siguiente:

result.JPG

He adjuntado el archivo PBIX de ejemplo

View solution in original post

Syndicate_Admin
Administrator
Administrator

Proporcione datos de muestra o un archivo PBIX, y una descripción del resultado esperado

@PaulDBrown Lo cambié

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

November Power BI Update 768x460.png

Check it Out!

Click here to read more about the November 2021 Updates!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.