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
Syndicate_Admin
Administrator
Administrator

Medida funciona a nivel de línea, pero devuelve resultado incorrecto en total

Hay expertos

Tengo la siguiente tabla, donde GAP=ABS([FCST]-[ACTUAL]), donde FCST y REAL son todas medidas que hacen referencia a la misma tabla.

Esto funciona bastante bien a nivel de línea, pero como se puede ver el resultado en total está mal. PBI toma directamente la suma de FCST y ACTUAL para el cálculo, en lugar de la suma de GAP, que es el resultado deseado.

gracias.

yamacha_2-1618986045871.png

1 ACCEPTED SOLUTION

Allí, @yamacha

Si no desea mostrar su nombre material y el nombre del distribuidor, por favor hágamelo saber el patrón, al menos.

¿Cuántos distribuidores diferentes hay? ¿Cuántos tipos de materiales hay?

¿Son 6 tipos diferentes de distribuidores con 6 tipos diferentes de materiales?

¿O es 2 tipos diferentes de distribuidores con 4 tipos diferentes de material?

Acabo de crear mi propia muestra otra vez. Se trata de 2 tipos diferentes de distribuidores y 6 tipos diferentes de materiales.

En este caso, la medida anterior que fue escrita por mí todavía funciona. Porque son 6 tipos diferentes de materiales en 6 filas.

Así que creé otra muestra. Se trata de 2 tipos diferentes de distribuidores y 4 tipos diferentes de materiales, mostrando 6 filas de información. Ahora, mi medida anterior no funciona.

No estoy seguro de cómo se ve su mesa porque esa información está oculta por el color rojo.

Sin embargo, la muestra anterior era tabla de 4 filas y esta muestra es de 6 filas, por lo que asumí y creé 2 tipos-distribuidores y 4ypes-materials en 6 filas. Todavía no puedo saber si asumí correctamente o no.

Si mi suposición es correcta, trate de escribir su medida algo como a continuación.

GAP2 =
SUMX ( KEEPFILTERS( ALLSELECTED( 'Table2'[Material], Table2[Dealer] )), CALCULATE ( ABS ( [FCSTs2] - [ACTUALs2] ) ) )

Hola, mi nombre es Jihwan Kim.


Si este post ayuda, entonces considere aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido, y dar un gran pulgar hacia arriba.


Linkedin: https://www.linkedin.com/in/jihwankim1975/

View solution in original post

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

Gracias Jihwan funciona. ¿Pero puedo saber por qué? Según la definición de VALUES: "Cuando el parámetro de entrada es un nombre de columna, devuelve una tabla de una columna que contiene los valores distintos de la columna especificada", por lo que VALUES ( 'Table'[Material] ) solo devolverá una sola lista de [Material], ¿cómo puede SUMX seguir realizando el cálculo sobre otras columnas?

Allí, @yamacha

Gracias por sus comentarios.

No soy lo suficientemente bueno en DAX para explicar bien sobre la fórmula DAX, pero déjame intentarlo.

Por favor, pruebe las dos medidas siguientes y habrá una diferencia entre esos dos.

Creo que en general, la fórmula dax funciona fila por fila

Por lo tanto, en este caso, si desea sumar la columna mediante el cálculo, la tabla de una columna debe crearse virtualmente.

Una vez hecho esto, todavía hay que resolver una cosa más. Por favor, intente crear las dos medidas siguientes y eche un vistazo a ella si hay alguna diferencia.

Uno proporcionará el resultado que desee, y el otro proporcionará el número correcto solo en el nivel total.

La razón es que la función CALCULATE ayuda a iterar una fila por una fila dentro de la medida.

Esto es sólo una manera entre muchas otras maneras correctas, y no estoy seguro de si esta respuesta es la mejor o no desde la perspectiva de lento o rápido. Si no tiene un tamaño muy grande de un conjunto de datos, no importa, pero si tiene un tamaño muy gib de un conjunto de datos, el rendimiento debe tenerse en cuenta.

Medida 1 = SUMX ( VALORES ( 'Tabla'[Material] ), CALCULAR ( ABS ( [FCST] - [REAL] ) ) )

Medida 2 = SUMX ( VALORES ( 'Tabla'[Material] ), ABS ( [FCST] - [REAL] ) )

Gracias Jihwan por su explicación paciente.

Probé tus dos medidas con o w/o "calcualte", el resultado se ve igual...

Mientras tanto, cuando presento otra columna "Cliente" que queda en Material, encontré que el problema aparece de nuevo: una vez que se seleccionan varios clientes, el Total de GAP devuelve solo la brecha entre el FCST total REAL y el FCST total, supongo que modificaré el contenido en VALUES, pero no tengo idea de cómo hacerlo.

Allí, @yamacha

Si agrega más contextos a la visualización, la medida debe escribirse de nuevo teniendo en cuenta todos los contextos. Sólo vi un contexto que era "Material".

Si desea agregar más contextos, comparta su información compartiendo el enlace del archivo pbix de ejemplo aquí. Entonces puedo tratar de llegar a una medida más precisa.

gracias.

Hola, mi nombre es Jihwan Kim.

Si este post ayuda, entonces considere aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido, y dar un gran pulgar hacia arriba.

Linkedin: https://www.linkedin.com/in/jihwankim1975/

Hola Jihwan

El contexto es simple, sólo tiene que añadir un col más a la izquierda al material. Con su fórmula, ahora el resultado de [GAP] por material es correcto, pero el error aparece de nuevo si por nivel de distribuidor. El total a continuación será 397920, las medidas sólo devuelven la brecha entre totales.

yamacha_1-1619078598259.png

Allí, @yamacha

Si no desea mostrar su nombre material y el nombre del distribuidor, por favor hágamelo saber el patrón, al menos.

¿Cuántos distribuidores diferentes hay? ¿Cuántos tipos de materiales hay?

¿Son 6 tipos diferentes de distribuidores con 6 tipos diferentes de materiales?

¿O es 2 tipos diferentes de distribuidores con 4 tipos diferentes de material?

Acabo de crear mi propia muestra otra vez. Se trata de 2 tipos diferentes de distribuidores y 6 tipos diferentes de materiales.

En este caso, la medida anterior que fue escrita por mí todavía funciona. Porque son 6 tipos diferentes de materiales en 6 filas.

Así que creé otra muestra. Se trata de 2 tipos diferentes de distribuidores y 4 tipos diferentes de materiales, mostrando 6 filas de información. Ahora, mi medida anterior no funciona.

No estoy seguro de cómo se ve su mesa porque esa información está oculta por el color rojo.

Sin embargo, la muestra anterior era tabla de 4 filas y esta muestra es de 6 filas, por lo que asumí y creé 2 tipos-distribuidores y 4ypes-materials en 6 filas. Todavía no puedo saber si asumí correctamente o no.

Si mi suposición es correcta, trate de escribir su medida algo como a continuación.

GAP2 =
SUMX ( KEEPFILTERS( ALLSELECTED( 'Table2'[Material], Table2[Dealer] )), CALCULATE ( ABS ( [FCSTs2] - [ACTUALs2] ) ) )

Hola, mi nombre es Jihwan Kim.


Si este post ayuda, entonces considere aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido, y dar un gran pulgar hacia arriba.


Linkedin: https://www.linkedin.com/in/jihwankim1975/

Hola @Jihwan_Kim, pregunta de seguimiento a esta vieja publicación; ¿Qué pasa si cada uno de los puntos de datos a los que queremos hacer referencia se encuentra en tablas separadas?

Quiero calcular exactamente el mismo resultado que el OP de esta publicación, pero así es como se configuran mis medidas/columnas.

Por ejemplo, para mí:

  • [FCST] es una medida que hace referencia a la tabla "Previsiones"
    • CALCULATE(SUM('Pronósticos'[Cantidad]))
  • [Datos reales] es una medida que hace referencia a la tabla "Transacciones"
    • CALCULATE(SUM('Transacciones'[Cantidad de ventas])
  • en lugar de 'Tabla 2' [Material] era 'Materiales' [Material]
  • en lugar de 'Tabla 2' [Distribuidor] era 'Concesionarios' [Concesionario]

Hola Jihwan

Realmente apreciar sus soluciones multi-escenario, su inferencia es exactamente correcta y las medidas funcionan exactamente! Toneladas de ayuda para mí, no sólo para este caso, ya que puedo adaptarlo a nuevos escenarios en adelante.

Syndicate_Admin
Administrator
Administrator

Allí, @yamacha

Si no hay más columnas en el lado izquierdo de la imagen, pruebe lo siguiente.

GAP =
SUMX ( VALORES ( 'Tabla'[Material] ), CALCULAR ( ABS ( [FCST] - [REAL] ) ) )

Hola, mi nombre es Jihwan Kim.


Si este post ayuda, entonces considere aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido, y dar un gran pulgar hacia arriba.


Linkedin: https://www.linkedin.com/in/jihwankim1975/

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.