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

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
2022 Release Wave 1 760x460.png

2022 Release Wave 1 Plan

Power Platform release plan for the 2022 release wave 1 describes all new features releasing from April 2022 through September 2022.

Power BI December 2021 Update_carousel 768x460.jpg

Check it Out!

Click here to read more about the December 2021 Updates!