Forum Discussion

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

Uso de Sumx con USERELATIONSHIP

Hola
Estoy tring para calcular la siguiente lógica (pero obtengo un error: la función USERELATIONSHIP solo se puede usar en la función CALCULATE).
T hoy =
CALCULATE(SUMX(vwbi_target_actual_sales,vwbi_target_actual_sales[Gap_From _Target] / USERELATIONSHIP(vwbi_target_calls[No_Of_Deliveries_Remaining_For_Current_Month],vwbi_target_actual_sales[Gap_From _Target]))
)
Así que probé esta sintaxis también:
CALCULATE(SUMX(vwbi_target_actual_sales,vwbi_target_actual_sales[Gap_From _Target] / CALCULATE(USERELATIONSHIP(vwbi_target_calls[No_Of_Deliveries_Remaining_For_Current_Month],vwbi_target_actual_sales[Gap_From _Target]))
))
Pero no funcionó demasiado.
Utilizo la función sumx porque necesito proporcionar este cálculo a nivel de fila.
Al final necesito dividir vwbi_target_actual_sales[Gap_From _Target] por vwbi_target_calls[No_Of_Deliveries_Remaining_For_Current_Month] y sumar los resultados a nivel de fila.
¿Puede anayone explicar cuál es el problema en mi consulta y cómo puedo resolverlo?

4 Replies

  • @KatyaK , ¿Necesitas esto?


    divide(sum(vwbi_target_actual_sales[Gap_From _Target]), calculate(sum(vwbi_target_actual_sales[Gap_From _Target]), USERELATIONSHIP(vwbi_target_calls[No_Of_Deliveries_Remaining_For_Current_Month],vwbi_target_actual_sales[Gap_From _Target])))

    ¿O?


    calculate(sum(vwbi_target_actual_sales[Gap_From _Target]), USERELATIONSHIP(vwbi_target_calls[No_Of_Deliveries_Remaining_For_Current_Month],vwbi_target_actual_sales[Gap_From _Target]))

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Hay amitchandak,

      Su primera consulta es lo que necesito, pero obtuve un error después de ejecutarla:
      "La función USERELATIONSHIP sólo puede utilizar las referencias de dos columnas que participan en la relación."

      Voy a tratar de aclarar lo que quiero calcular:

      Tengo esta tabla:

      KatyaK_0-1629790052175.png

      Necesito calcular la columna objetivo de Dailty = brecha con el objetivo / Número de entregas restantes.

      la diferencia con respecto al objetivo es una columna que se exsiting en el cuadro A y el número de entregas restantes es una columna existente en el cuadro 2.

      Como puede ver en la imagen, la fila marcada verde está en el nivel de empleado y las filas rojas están en el nivel de cliente (cada empleado tiene varios clientes).

      Lo que quiero es sumar todas las filas de clientes y obtener esos resultados a nivel de empleado.

      Por ejemplo para sumar - 22,186+19,960+18,017......

      En este momento no obtengo esos resultados - Toma el resultado de la brecha total y divieds por las entregas restantes totales.

      Esta es la razón por la que necesito crear un cálculo a nivel de fila.

  • Este es un viejo hilo. Pero proporcionando una respuesta para las personas futuras.

    Creo que tengo la solución; Bueno, funcionó para mí, de todos modos.

    Tiene razón al usar CALCULAR... más o menos. El truco es usar CALCULATETABLE. Según entiendo CALCULATETABLE, es que esencialmente puede hacer todo lo que CALCULATE puede hacer, excepto que lo aplica a una tabla. De ahí el nombre 🙂 Por lo tanto, si envuelve su tabla en una fórmula CALCULATETABLE, y emplea la relación USERELATIONSHIP dentro de ella, entonces debería funcionar. (Una vez más, funcionó para mí, así que espero que funcione para todos)

    Entonces, creo que si hubiera cambiado su medida a lo siguiente, habría funcionado:

    SUMX(

    CALCULATETABLE(

    vwbi_target_actual_sales,

    USERELATIONSHIP(

    vwbi_target_calls[No_Of_Deliveries_Remaining_For_Current_Month],

    vwbi_target_actual_sales[Gap_From _Target]

    )

    ),

    vwbi_target_actual_sales[Gap_From _Target]

    )