Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
3 years ago

PowerBI, si existe valor, replique

Buenos días

Estoy buscando un comando DAX, como en el ejemplo a continuación, he podido identificar direcciones de correo electrónico duplicadas, etc., con lo que necesito ayuda es decir, si CustNo "1400083" según este ejemplo tiene el valor debajo de DuplicateCheckAmended = "DuplicateRegistered" para crear un nuevo colomb con la etiqueta "ManualUpdate" con el valor "True" en todos los elementos de línea donde CustNo es el PK.

Gracias

9 Replies

  • @GoRo2010 en este caso puedes crear un calc colume como el siguiente. contará custNo en la tabla y si es más de uno, le dará asignar valor true en la nueva columna else false

    ManualUpdate = si (CALCULAR (COUNTROWS(), TODOS excepto(Clientes registrados, 'Clientes registrados'[CustNo])) >1,VERDADERO(),FALSO())
    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Gracias por este @negi007 , pero creo que podría haberlo explicado un poco mal.

      Como puede ver en el ejemplo de abajo, tengo 2x (a veces incluso más) donde CustNo es el mismo, pero debajo de DuplicatesCheckAmend, si uno de los valores es igual a "DuplicateRegistered" entre todos los mismos CustNo (1400083) según este ejemplo, se debe crear una nueva columna donde todos los valores contra CustNo (1400083) deben ser verdaderos, puede haber un caso en el que haya varios CustNo (9999) como ejemplo, pero "DuplicateRegistered" no existe en DuplicatesCheckAmend, esos deben ser falsos.

      Gracias

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        @GoRo2010 supongo que el valor DuplicateRegistered aparecerá solo cuando haya varios valores para el mismo cust_No, en ese caso puede tener una columna de calc simple como la siguiente

        ManualUpdate = si(Registered_Customers[DuplicateCheckAmend]="DuplicadoRegistrado",VERDADERO(),FALSO())
        En caso de que esto no sea lo que está buscando, le sugiero que comparta datos de muestra en formato de texto para que podamos hacer pruebas sobre los datos.
  • También puede hacer esto:

    ManualUpdate2 = Dónde _T1='Tab_cust'[CustNo]
    Dónde _t2 ='Tab_cust'[DuplicatesCheckAmend]
    Dónde _resultado = CALCULAR(COUNTROWS(),
    FILTRO(TODO('Tab_cust'),
    'Tab_cust'[CustNo]=_T1
    && 'Tab_cust'[DuplicatesCheckAmend]="DuplicadoRegistrado"))
    DEVOLUCIÓN
    si(_resultado=1,VERDADERO,FALSO)