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
Anonymous
Not applicable

Contar si al menos un valor cumple los criterios y, a continuación, establezca la nueva columna en true

Hola amigos,

En una tabla, además de otros campos, tengo 2 columnas: una contiene un atributo ([Atributo]) y la otra contiene su valor respectivo ([Valor], "Sim" - Sí y "No" - No). Necesito crear una nueva columna que cuente si hay al menos un valor [Valor] - "Sim" (Sí) basado en el "cluster" de la columna [Mapeamento]. Para todos los valores de [Mapeamento] que contiene la cadena "RAC 4", si hay al menos un [Valor] á "Sim", necesito establecer la nueva columna en "Sim" para todos sus valores. Para los demás, el valor debe ser el mismo en [Valor]. Algo como la siguiente tabla:

AtributoValorAsignaciónNueva columna
rac_102RAC 10_2

rac_101

RAC 10_1
rac_9NoRAC 9No
rac_62RAC 6_2
rac_61NoRAC 6_1No
rac_5RAC 5
rac_45NoRAC 4
rac_44RAC 4
rac_43NoRAC 4
rac_42RAC 4
rac_41NoRAC 4
rac_3NoRAC 3No
rac_2NoRAC 2No
rac_1RAC 1

¿Alguien tiene idea de cómo se puede hacer?

Gracias de antemano,

Thiago.

5 REPLIES 5
mahoneypat
Employee
Employee

Puede utilizar una expresión como esta en la columna calculada:

New Column =
IF (
    ISBLANK (
        CALCULATE (
            COUNTROWS ( Table ),
            ALLEXCEPT ( Table, Table[Mapeamento] ),
            Table[Valor] = "Sim"
        )
    ),
    "Nao",
    "Sim"
)

Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


BA_Pete
Super User
Super User

Hola @thiagoizidoro ,

Si desea alejar este trabajo del modelo de datos, puede hacerlo en Power Query de la siguiente manera:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WKkpMjjc0MFLSUQrOzAWSQY7OCoYG8UZKsTowSUN0SUO4pCVQ0O/w4nyonCVcwgzVRDMkA80MUTWZIZlniqLLFC5uYoqqxwQhY4KiBUnCGKcWI1xaDHFpQTPLGC5hhCqBFGyogaYUGwsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Atributo = _t, Valor = _t, Mapeamento = _t]),
    groupMapeamento = Table.Group(Source, {"Mapeamento"}, {{"data", each _, type table [Atributo=text, Valor=text, Mapeamento=text, New Column=text]}}),
    addYourColumn = Table.AddColumn(groupMapeamento, "yourColumn", each if List.Contains(Table.Column([data], "Valor"), "Sim") then "Sim" else "Nao"),
    expandOtherCols = Table.ExpandTableColumn(addYourColumn, "data", {"Atributo", "Valor"}, {"Atributo", "Valor"})
in
    expandOtherCols

En Power Query, vaya a Nuevo origen > Consulta en blanco y, a continuación, en Editor avanzado, pegue mi código sobre el código predeterminado para seguir los pasos que he tomado.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




amitchandak
Super User
Super User

@thiagoizidoro, la agrupación no está claro que necesita algo como

if(countx(filter,[Mapping] ?earlier([Mapping]) && [Value] á "Yes,[Mapping]) >0, "Yes","No")

Anonymous
Not applicable

@amitchandak , @Fowmy :

He probado su fórmula, pero el resultado es "Sim" para todas las filas de la tabla.

He hecho algunos cambios y he llegado al resultado esperado, muchas gracias por toda su ayuda.

New_Valor = 
    if(
        countx(
            filter(
                data;
                data[Mapeamento] = earlier(data[Mapeamento]) &&
                data[user_id] = earlier(data[user_id]) && 
                data[Valor] = "Sim" &&
                data[Mapeamento] = "RAC 4"
            ); 
            data[Mapeamento]);
            "Sim";
            data[Valor]
    )

Gracias chicos!!! ¡Me salvaste el día!

Fowmy
Super User
Super User

@thiagoizidoro

Agregue una nueva columna:

SimPresent = IF(
    CALCULATE(
    COUNTROWS('Data'),ALLEXCEPT('Data','Data'[Mapeamento]), 'Data'[Valor]="Sim")>0,"Sim","Não")

Si está satisfecho con mi respuesta, márquela como una solución para que otros puedan encontrarlo fácilmente.

No se olvide de dar KUDOS ? a las respuestas que ayudan a responder a sus preguntas


Suscríbete a ExcelFort: Aprende Power BI, Power Query y Excel

Did I answer your question? Mark my post as a solution! and hit thumbs up


Subscribe and learn Power BI from these videos

Website LinkedIn PBI User Group

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.