Forum Discussion

alejandroezp's avatar
alejandroezp
Icon for Helper I rankHelper I
2 years ago
Solved

Filtrar salida función IF

Buenos días,

 

Estoy usando una query que encadena varias funciones IF y una de ellas no debería contar con todos los datos de la tabla.

Tenemos dos tablas, un inventario con toda la información que tenemos sobre piezas de coches y lo intentamos actualizar cada vez que lleganuevos recambios. Periódicamente revisamos el almacén y listamos las piezas para añadirlas al inventario. El problema es que no sabemos cuántas piezas ya se han añadido al inventario.

Tabla inventario

PiezaTipoSN
Parachoques volvoParachoquesP356
Parachoques ToyotaParachoquesP357
LLanta MazdaLLanta 
Luces FordLuces

L220

Luces ToyotaLucesL221
Bastidor AudiBastidorB438
LLanta FordLLanta 
Parachoques MazdaParachoquesP358
Bastidor FordBastidorB439

 

Tabla nuevas piezas

PiezaTipoSNCoincide SNCoincide Pieza
Parachoques volvoParachoquesP356SISI
Parachoques ToyotaParachoquesP357SI

SI

LLanta MazdaLLantaY3009NOSI
Luces LotusLuces

L238

NONO
Luces subaruLucesL221SINO
Bastidor AudiBastidorB438SISI
LLanta FordLLantaY3010NOSI
Parachoques MazdaParachoquesP358SISI
Bastidor FordBastidorB479NOSI

 

Las columnas "Coincide SN" y "Coincide Pieza" son el resultado de un lookupvalue entre ambas columnas.

Mi inención es que cada celda SI/NO sea un resultado distinto:

-Si el SN y la pieza son iguales, la pieza está bien registrada.

-Si el SN es igual pero el nombre no, se debe cambiar el nombre de la pieza.

-Si el SN no es igual pero el nombre si, y el campo SN está rellenado en el inventario se debe cambiar el SN en la tabla nuevas piezas. En este caso no se deben contar las piezas que son llantas.

-Si el SN no es igual pero el nombre si, y el campo SN no está rellenado en el inventario se debe añadir el SN en el inventario. En este caso no se deben contar las piezas que son llantas.

-Si el SN y la pieza no son iguales, la pieza se tiene que añadir al inventario.

 

Estoy probando con la siguinete fórmula:

Buscar Name S/N = IF(Nuevas piezas[Coincide SN]="SI",IF(Nuevas piezas[Coincide Name]="SI","OK","Nombre mal Nuevas piezas"),IF(Nuevas piezas[Coincide Name]="NO",IF(Nuevas piezas[Coincide SN]=BLANK(),"SN mal en Nuevas piezas","Falta SN en inventario"),"No inventario"))
 
Saludos
  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi alejandroezp 

     

    When you have multiple possible result expressions, you can use SWITCH function (DAX) to avoid having multiple nested IF statements. This can make it easier to understand and check. For example, 

    Column = 
    VAR vSN = 'Tabla nuevas piezas'[Coincide SN]
    VAR vPieza = 'Tabla nuevas piezas'[Coincide Pieza]
    RETURN
    SWITCH(TRUE(),
    vSN = "SI" && vPieza = "SI", "OK",
    vSN = "SI" && vPieza = "NO", "Nombre mal Nuevas piezas",
    vSN = BLANK() && vPieza = "NO", "SN mal en Nuevas piezas",
    vSN = "NO" && vPieza = "NO","Falta SN en inventario",
    "No inventario"
    )

     

    Best Regards,
    Jing
    If this post helps, please Accept it as Solution to help other members find it. Appreciate your Kudos!

1 Reply

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi alejandroezp 

     

    When you have multiple possible result expressions, you can use SWITCH function (DAX) to avoid having multiple nested IF statements. This can make it easier to understand and check. For example, 

    Column = 
    VAR vSN = 'Tabla nuevas piezas'[Coincide SN]
    VAR vPieza = 'Tabla nuevas piezas'[Coincide Pieza]
    RETURN
    SWITCH(TRUE(),
    vSN = "SI" && vPieza = "SI", "OK",
    vSN = "SI" && vPieza = "NO", "Nombre mal Nuevas piezas",
    vSN = BLANK() && vPieza = "NO", "SN mal en Nuevas piezas",
    vSN = "NO" && vPieza = "NO","Falta SN en inventario",
    "No inventario"
    )

     

    Best Regards,
    Jing
    If this post helps, please Accept it as Solution to help other members find it. Appreciate your Kudos!