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

calcular el promedio de la tabla con los cambios de precios en cuanto a la fecha

para mantener las cosas simples, mi tabla tiene fecha y precio

fecha de cambio de precio | precio

01-ene-21 | 22

04-ene-21 | 20

16-ene-21 | 18

22-ene-21 | 21

el promedio calculará el promedio simple de los cuatro precios. Quiero que la fórmula DAX calcule el promedio del período teniendo en cuenta el precio de cada día

fecha | precio

01-ene-21 | 22

02-ene-21 | 22

03-ene-21 | 22

04-ene-21 | 20

04-ene-21 | 20

...

intentó experimentar con lastnonblank pero no tuvo éxito. por favor ayuda

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

En ella @nileshpca ,

Estos son los pasos que puede seguir:

1. Crear medida.

table1_sum =
var _summtable=
SUMMARIZE('Table 2','Table 2'[all date],'Table 2'[price],
"price_change",
var _1=CALCULATE(SUM('Table 2'[price]),FILTER(ALL('Table 2'),'Table 2'[all date]=EARLIER('Table 2'[all date])))
var _2=CALCULATE(SUM('Table 2'[price]),FILTER(ALL('Table 2'),'Table 2'[all date]=EARLIER('Table 2'[all date])-1))
return
IF(
    _1<> _2,MINX(FILTER(ALL('Table 2'),'Table 2'[price]=EARLIER('Table 2'[price])),[price]),BLANK()),
"count",COUNTX(FILTER(ALL('Table 2'),'Table 2'[price]=EARLIER('Table 2'[price])),[all date]),
"count_all",COUNTX(ALL('Table 2'),[all date]),
"sum_all",SUMX(ALL('Table 2'),[price]))
return
DIVIDE( SUMX(_summtable,[sum_all]),SUMX(_summtable,[count_all]))

2. Resultado:

vyangliumsft_0-1647933852628.png

Saludos

Liu Yang

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente

View solution in original post

14 REPLIES 14
Syndicate_Admin
Administrator
Administrator

En ella @nileshpca ,

Estos son los pasos que puede seguir:

1. Crear medida.

table1_sum =
var _summtable=
SUMMARIZE('Table 2','Table 2'[all date],'Table 2'[price],
"price_change",
var _1=CALCULATE(SUM('Table 2'[price]),FILTER(ALL('Table 2'),'Table 2'[all date]=EARLIER('Table 2'[all date])))
var _2=CALCULATE(SUM('Table 2'[price]),FILTER(ALL('Table 2'),'Table 2'[all date]=EARLIER('Table 2'[all date])-1))
return
IF(
    _1<> _2,MINX(FILTER(ALL('Table 2'),'Table 2'[price]=EARLIER('Table 2'[price])),[price]),BLANK()),
"count",COUNTX(FILTER(ALL('Table 2'),'Table 2'[price]=EARLIER('Table 2'[price])),[all date]),
"count_all",COUNTX(ALL('Table 2'),[all date]),
"sum_all",SUMX(ALL('Table 2'),[price]))
return
DIVIDE( SUMX(_summtable,[sum_all]),SUMX(_summtable,[count_all]))

2. Resultado:

vyangliumsft_0-1647933852628.png

Saludos

Liu Yang

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente

gracias.. esto funciona perfectamente

Syndicate_Admin
Administrator
Administrator

hola

gracias...

está dando un promedio simple de los cuatro precios. Quiero considerar el precio para todos los días del mes. si no estoy claro, se requiere cargar un archivo de muestra con solución..

https://drive.google.com/file/d/15u4fZG4Y2IGHWnGv9G78R6i_OwTXuSXL/view?usp=sharing

nilesh

esto funciona muy bien.. pero ¿cómo uso esto si hay 50 productos en 6 años? tendrá que hacer precio con todas las fechas durante 6 años para cada producto. ¿Puede haber una solución dax sin columna calculada... Lo intenté, pero parece que EARLIER no se puede usar en medida.

Sí, ya veo. Debe combinar la tabla 1 en la tabla 2 (en la fecha) y elegir Rellenar para la nueva columna con solo cuatro entradas con la pestaña de transformación. A continuación, puede aplicar su fórmula de promedio regular a esta nueva columna (Precio1).

Whitewater100_0-1647623902688.png

hola

gracias.. estaba buscando una medida dax en lugar de una solución de consulta de energía, ya que hay muchos productos involucrados. Se dio un ejemplo para un producto para mantenerlo simple

Hola:

He creado otra forma de llegar a la pregunta inicial.

Power Query (ejemplo # 1) es el mejor para muchos elementos y cambios.

Hasta ahora tenemos tres soluciones diferentes a su pregunta original.

Si desea publicar una nueva pregunta con nuevos datos.

Aquí está el enlace del archivo con las diversas soluciones.

¡Gracias! https://drive.google.com/file/d/1Qc6dQnkbNHkwAZeoh5eCdeI78JUDblmz/view?usp=sharing

Muchas gracias. Estoy usando powerquery actualmente, pero solo para 2-3 productos. hay más de 50 productos de más de 6 años. la tabla pq será un gran drenaje de memoria.

estaba pensando si es posible crear una tabla virtual en dax con la columna de fecha de la calandra y el producto seleccionado de la fila de filtro y luego rellenar la tabla virtual.

eso sería increíble, si puede suceder...

Hola:

Creo que si tiene una tabla de fechas adicional (como su tabla 2) y ejecuta el proceso PQ que mencioné (y la suma de DAX mide después), será una solución más rápida que devolverá el procesamiento al editor de consultas. Empujar hacia atrás más cerca de la fuente es generalmente la mejor práctica.

Dicho esto, aquí hay una nueva actualización del archivo. Solo necesita tener su tabla con los cuatro precios en ella llena con todas las fechas del mes. Lo llamé "Tabla de precios". Existe DAX Calc Col.

¡Espero que esta sea la solución para trabajar para ti! https://drive.google.com/file/d/1Qc6dQnkbNHkwAZeoh5eCdeI78JUDblmz/view?usp=sharing

Este enlace tiene la medida DAX en él.

Nuevo precio medio = PROMEDIO(PriceTable[Nuevo precio de relleno])

https://drive.google.com/file/d/1Qc6dQnkbNHkwAZeoh5eCdeI78JUDblmz/view?usp=sharing

Hola:

Esto puede dar 27 como respuesta:

Precio medio II =
DIVIDIR(SUMA(«Cuadro 2» [Precio]),
CUENTAS(«Cuadro 2»))
¿Es esta la medida que quieres? Gracias..

Quiero la respuesta 27 de la Tabla1. La Tabla 2 no está en la base de datos real y debe mostrar cómo se calculará el promedio.

Syndicate_Admin
Administrator
Administrator

@nileshpca ,

Si el precio es una columna

averageX(allselected(Table), Table[price])


si el precio es una medida
calculate(averageX(values(Table[Date], [price]), allselected())

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.