Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Filtro de nivel de fila con cálculo

Hola a todos, tengo una tabla con una lista de costos contra diferentes personas pero para una persona quiero darle un 50% de descuento, en este caso usaré a Charlie como el elegido! Así que quiero que los 200 £ permanezcan en el archivo de datos sin procesar, pero el total debe incluir darle un descuento, haciendo un total de 425 £ en lugar de 525 £.

Supongo que esto requiere un filtro de nivel de fila y tal vez más de un cálculo, pero todo lo que he intentado hasta ahora no ha funcionado, ¿alguien puede sugerir una solución, por favor? ¡Espero que se pueda hacer de alguna manera!

¡Cualquier ayuda es muy apreciada!

Charges.GIF

12 REPLIES 12
Syndicate_Admin
Administrator
Administrator

Hola, @samc_26

Measure = 
var b = SUMX(  FILTER( 'Table' ,'Table'[name]="charlie"),'Table'[charge])
var c = b* (50/100)
var d = CALCULATE(SUM('Table'[charge]),ALL())
return
IF(ISINSCOPE('Table'[name]),MIN('Table'[charge]),d-c)

Dangar332_0-1704691407199.png

Syndicate_Admin
Administrator
Administrator

Hola @samc_26 ,

Aquí algunos pasos que quiero compartir, puedes consultarlos si se ajustan a tu requerimiento.

Aquí están mis datos de prueba:

vheqmsft_0-1704682976690.png

1.Crear dos medidas

Total with Discount = 
SUMX(
    'Table',
    IF(
        'Table'[Name] = "Charlie",
        'Table'[Charge] * 0.5,
        'Table'[Charge]
    )
)
Measure = 
IF(
    ISINSCOPE('Table'[Name]),
    sum('Table'[Charge]),
    [Total with Discount])

2. Resultado final

vheqmsft_1-1704683147029.png

Saludos

Alberto He

Si esta publicación Ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente

Hola Albert, gracias por las ideas, pero realmente no ha tenido ningún efecto en los datos, no estoy seguro de si es porque tengo varias semanas en mis datos o si es otra cosa. Realmente no puedo mostrarte nada, ya que es confidencial 😞 para los negocios

Syndicate_Admin
Administrator
Administrator

Hola @DanP he probado esto, pero parece mostrar el valor original y no calcula la diferencia del descuento del 50% para el nombre.

Syndicate_Admin
Administrator
Administrator

Crear e nueva medida y asignar un factor para el valor seleccionado
Ventas netas factorizadas =
Fueron _Categoría = CALCULAR( [Ventas netas] * 1.5, Categoría[Categoría de producto] = "Audio")
Fueron _SelectedCategory = SELECTEDVALUE(Categoría[Categoría de producto])
devolución interruptor(verdadero, _SelectedCategory = "Audio", _Categoría, [Ventas netas])

Hola, gracias por tu publicación, he intentado usarla pero no estoy seguro de qué medida es 'Ventas netas' en este ejemplo, ¿es solo una suma de todas las ventas de la columna de cargos?

Sí, [Ventas netas] es otra medida que es solo la suma de las ventas. Es para mostrar, primero crea la medida original, luego puede usarla otra medida

Ventas netas = SUMA( Ventas[CantidadVentas])

Hola @3CloudThomas He probado esto, pero solo parece mostrar el valor original y no calcula la diferencia del descuento del 50% para el nombre.

Syndicate_Admin
Administrator
Administrator

Hola, @samc_26

Pruebe la siguiente medida

Solo tienes que ajustar el nombre de la tabla y el nombre de la columna

Measure = 
var a = SELECTEDVALUE('Table (3)'[name])
var b = SUMX(  FILTER( 'Table (3)' ,'Table (3)'[name]=a),'Table (3)'[charge])
var c = b* (50/100)
var d = CALCULATE(SUM('Table (3)'[charge]),ALL())
return
IF(ISINSCOPE('Table (3)'[name]),MIN('Table (3)'[charge]),d-c)

Dangar332_0-1704460138034.png

Compruébalo según lo necesites

Dangar332_1-1704460171543.png

Hola, gracias por tomarse el tiempo de publicar esto, he intentado usarlo pero no puedo averiguar cómo se filtra el código solo al nombre 'Charlie'. Cuando pongo la medida en una tarjeta, muestra una cifra de 2,89 millones cuando busco unos 11k, ¡así que no estoy seguro de lo que ha pasado!

Hola, @samc_26

Hice código para la selección dinámica de usuarios

Solo para Charlie

Pruebe el siguiente código

Measure = 
var b = SUMX(  FILTER( 'Table (3)' ,'Table (3)'[name]="charlie"),'Table (3)'[charge])
var c = b* (50/100)
var d = CALCULATE(SUM('Table (3)'[charge]),ALL())
return
IF(ISINSCOPE('Table (3)'[name]),MIN('Table (3)'[charge]),d-c)

Hola @Dangar332 he probado esto pero todavía no funciona 😞 , ¡Gracias de nuevo por sus sugerencias!

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.