Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Comparar valores con la instrucción if

Tengo una tabla con varios campos y mi principal preocupación son 2 campos, uno tiene ID y el otro tiene grado (campo numérico).

Estoy tratando de verificar la primera identificación de identificación a identificación que coincide en el mismo campo y, si coinciden, verifique el campo de calificación y vea si su valor es más alto que su valor anterior, luego ponga un 1 y ponga un 0
10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

su error

Syndicate_Admin
Administrator
Administrator

Perdón por la insight, prueba esto
HigherGradeFlag =
VAR CurrentID = Tabla1[ID]
VAR CurrentGrade = Tabla1[Grado]
VAR PreviousGrade =
CALCULAR (
MAX ( Tabla 1[Grado] ),
FILTER ( Tabla1, Tabla1[ID] = CurrentID && Tabla1[Grado] < CurrentGrade )
)
VAR IsFirstOccurrence =
CALCULAR (
COUNTROWS ( Tabla 1 ),
FILTER ( Tabla1, Tabla1[ID] = CurrentID && Tabla1[Grado] < CurrentGrade )
) = 0
DEVOLUCIÓN
IF ( IsFirstOccurrence || CurrentGrade > PreviousGrade, 1, 0 )

Syndicate_Admin
Administrator
Administrator

no funciona, compruebe el agregado

ragygad_0-1689369095500.png

Los primeros 2 valores de calificación deberían haber sido 0, ya que no son más altos que cualquier otro valor en el mismo campo

Syndicate_Admin
Administrator
Administrator

Ver la tabla ayuda, pruebe esta columna calculada
HigherGradeFlag =
VAR CurrentID = Tabla1[ID]
VAR CurrentGrade = Tabla1[Grado]
VAR PreviousGrade =
CALCULAR (
MAX ( Tabla 1[Grado] ),
FILTER ( Tabla1, Tabla1[ID] = CurrentID && Tabla1[Grado] < CurrentGrade )
)
DEVOLUCIÓN
IF ( CurrentGrade > PreviousGrade, 1, 0 )

Syndicate_Admin
Administrator
Administrator

No funciona.
Así que esta es una tabla ficticia de lo que estaba tratando de explicar

ragygad_0-1689366870127.png

Syndicate_Admin
Administrator
Administrator

Oh, ya veo, ¿puedes probar esto?
NewColumn =
SI(
Tabla1[ID] = CALCULAR(MAX(Tabla1[ID]), FILTER(ALL(Tabla1), ANTERIOR(Tabla1[ID]) = Tabla1[ID])),
SI(
Tabla1[Grado] > CALCULAR(MAX(Tabla1[Grado]), FILTRO(TODOS(Tabla1), ANTERIOR(Tabla1[ID]) = Tabla1[ID])),
1,
0
),
EN BLANCO()
)

Syndicate_Admin
Administrator
Administrator

Lo intenté, pero no puedes tener antes en una función con la instrucción if, solo funciona con la función de filtro

Syndicate_Admin
Administrator
Administrator

Para lograrlo en DAX, pruebe este código NewColumn =
SI(
Tabla1[ID] = ANTES(Tabla1[ID]),
SI(
Tabla1[Grado] > ANTES(Cuadro 1[Grado]),
1,
0
),
EN BLANCO()
)

Syndicate_Admin
Administrator
Administrator

¿Hay alguna manera de hacerlo en DAX?

Syndicate_Admin
Administrator
Administrator

Hola, podría usar un si más en Power Query M, aquí hay un código de ejemplo
= Table.AddColumn(#"Previous Step", "OutputColumnName", each if ( ( [#"ID1"] = [#"ID2"] ) and ( [#"GradeValue"] > YourValue ) ) then 1 else 0)

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

AugPowerBI_Carousel

Power BI Monthly Update - August 2024

Check out the August 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors