Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

Columna condicional compleja

Estoy intentando hacer una columna condicional basada en valores de otras dos columnas. Si la columna B es "sí", quiero que la columna C sea "sí" siempre que la columna A tenga el mismo valor. Aquí...
  • Syndicate_Admin's avatar
    4 years ago

    Hola

    Esta fórmula de columna calculada funciona

    =if(CALCULATE(COUNTROWS(Table1),FILTER(Table1,Table1[Column A]=EARLIER(Table1[Column A])&&Table1[Column B]="Yes"))>=1,"Yes",BLANK())

    Espero que esto ayude.

    Untitled.png

  • Syndicate_Admin's avatar
    4 years ago

    Vea el trabajo aquí - Abrir una consulta en blanco - Inicio - Editor avanzado - Elimine todo desde allí y pegue el siguiente código para probar (más adelante, cuando use la consulta en su conjunto de datos, tendrá que cambiar la fuente adecuadamente. Si tiene columnas distintas de estas, elimine el paso Tipo cambiado y vuelva a realizar un tipo modificado para completar la tabla de la interfaz de usuario).

    Nota: es posible que el paso de valor reemplazado no sea necesario para usted, ya que lo he utilizado para generar valores nulos en lugar de espacios en blanco.

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("rdC7DcAgDATQXVxTYOMfo0SIMhNkfylARYRCmrRPZ53tUgApimZjVjEIcJwX1LDw1gyZWXL+1TTxh6lTn7X0YtMpm6jTZIatotX4wzz2nC6mcX6DMY0VcVi9AQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Column A" = _t, #"Column B" = _t]),
        #"Replaced Value" = Table.ReplaceValue(Source,"",null,Replacer.ReplaceValue,{"Column B"}),
        #"Changed Type" = Table.TransformColumnTypes(#"Replaced Value",{{"Column A", Int64.Type}, {"Column B", type text}}),
        #"Grouped Rows" = Table.Group(#"Changed Type", {"Column A"}, {{"Temp", each _, type table [Column A=nullable number, Column B=nullable text]}}),
            //Function Start
            fxProcess=(Tbl)=>
            let
                #"Added Custom" = Table.AddColumn(Tbl, "Column C", each if List.Count(List.Select(Tbl[Column B],each _="Yes"))>0 then "Yes" else null)
            in
                #"Added Custom",
        //Function End
        #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each fxProcess([Temp])),
        #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"Column B", "Column C"}, {"Column B", "Column C"}),
        #"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"Temp"})
    in
        #"Removed Columns"