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 subtotal basado en varias segmentaciones de datos

Estimados expertos,

Buen día, espero que lo estés haciendo bien.

Ok, mi requisito es tranquilo diferente o inusual, estamos en un proceso de replicar los informes tabulares de SSRS en Power BI, la mayoría de las características se lograron y se atascaron en este, no soy tan bueno en DAX, solo lo básico que conozco. así que, déjenme ir al grano

requisito:

1) Hay 5 segmentaciones de datos, a saber, Grupo1, Grupo2, Grupo3, Grupo4, Grupo5

información adicional sobre la segmentación de datos >> todas son segmentaciones de datos de selección única >> un valor de segmentación de datos no se mostrará en la otra. >> colum slicer es de una tabla independiente que tiene "Sin relación" con cualquier otra tabla de datos.

2) El usuario seleccionará aleatoriamente los valores de cada segmentación de datos >> en función de esta selección, necesito calcular el subtotal de una columna financiera

Conjunto de datos de ejemplo y el resultado esperado según la imagen siguiente.

Prabhu_MDU_0-1624469911580.png

déjame darte un resumen sobre la imagen de arriba,

> He tomado la población de EE.UU. por estado

> Se agregaron dos segmentaciones de datos para el propósito de ejemplo
> Seleccionado "País" de Slicer#1 y "Estado" de Slicer#2

> Según la selección anterior, la salida esperada se proporciona en el lado derecho de la imagen. (tabla coloreado)
También creé medidas como esta

Measeure =

CALCULAR(
SUM('Tabla'[Población]),
FILTER(VALUES('Tabla'),
'Tabla'[País]=MIN('Tabla'[País]) ||
'Tabla'[Estado]=MIN('Tabla'[Estado])
)
)
)
pero esta medida no está funcionando como se esperaba, está calculando la Suma basada en "País" no está considerando el "Estado".
por favor, sugiéreme dónde estoy confundiendo.
cualquier ayuda es muy apreciada.
Muchas gracias
Prabhu




1 ACCEPTED SOLUTION

Allí, @Prabhu_MDU;

Puede intentar cambiar la medida de la siguiente manera:

Payment =
CALCULATE (
    SUM ( [Payment] ),
    FILTER (
        'Table',
        [Company] = MAX ( Slicer1[Group1_Column] )
            && [External] = MAX ( Slicer2[Group2_Column] )
            && [Process Center] = MAX ( Slicer3[Group3_Column] )
            && [State Name] = MAX ( Slicer4[Group4_Column] )))

Saludos
Team_ de apoyo comunitario Yalan Wu
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Mis humildes disculpas por el retraso en la respuesta.. (todos los correos de notificación fueron en la carpeta de correo no deseado, lo siento mucho por ello).

Muchas gracias por su gran esfuerzo @v-yalanwu-msft .. estás mucho más cerca de mi requisito. pero no es exactamente lo mismo. (lo siento mucho)..
aquí está el ejemplo de poder para lo que estoy buscando.
buena noticia es, soy capaz de traer el valor esperado utilizando SWITCH. pero parece que es demasiado costoso en rendimiento. tomando mucho tiempo de renderizado cuando implemento la misma lógica en el archivo en tiempo real.
por favor, descargue este archivo pbix de ejemplo y eche un vistazo, defenitely puede ser fácil de ayudarme con este archivo de ejemplo.
Pido disculpas si no soy claro al dar el requisito.


mirando adelante a saber de ti..

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

Syndicate_Admin
Administrator
Administrator

Allí, @Prabhu_MDU;

De acuerdo con su descripción, si usa la tabla para mostrarla, podría crear una medida para calcular la suma del estado y crear una bandera para filtrarla; si utiliza matrix para mostrarlo, solo creará una medida de indicador para filtrar .

mesa:

a)crear una medida para calcular la suma

Populationsum = CALCULATE(SUM([Population]),ALLEXCEPT('Table','Table'[Country ],'Table'[State]))

b)crear una medida de indicador

flag = 
var _ccountry=SUMMARIZE('slicer',[Country ])
return IF(MAX([Country ]) in _ccountry||MAX([State])=MAX('slicer'[State]),1,0)

c)poner la medida de la bandera en el filtro.

vyalanwumsft_0-1624935593223.png

La salida final se muestra a continuación:

vyalanwumsft_1-1624935728011.png

matriz:

a)crear una medida de indicador

flag = var _ccountry=SUMMARIZE('slicer',[Country ])
return IF(MAX([Country ]) in _ccountry||MAX([State])=MAX('slicer'[State]),1,0)

b)ponerlo en filtro.

vyalanwumsft_0-1624935593223.png
La salida final se muestra a continuación:

vyalanwumsft_2-1624935890874.png

Saludos
Team_ de apoyo comunitario Yalan Wu
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hay @v-yalanwu-msft ,

Gracias por su valiosa respuesta y gran esfuerzo. la solución es exactamente lo que estoy buscando, pero en su ejemplo (según mis datos de muestra) es estático, pero en mi escenario real será dinámico.

Usted tiene el requisito exactamente. pero cómo se puede lograr lo mismo de forma dinámica. ese es el reto al que me enfrento.

No puedo definir directamente como

CALCULATE(SUM([Payment]) , ALLEXCEPT([Company],[External],[Process Center],[State Name]))

porque las columnas "ALLEXCEPT" serán seleccionadas por el usuario mediante la segmentación de datos. Por lo tanto, tengo que decir que definirlo así

CALCULAT(SUM([Payment]) , ALLEXCEPT(
SELECTEDVALUE(Slicer1[Group1_Column])="Company",[Company],
SELECTEDVALUE(Slicer2[Group2_Column])="External",[External],
SELECTEDVALUE(Slicer3[Group3_Column])="Process Center",[Process Center],
SELECTEDVALUE(Slicer4[Group4_Column])="State Name",[State Name]))

(esta no es la medida correcta, pero la idea es la misma), aquí se vuelve dinámica en función del valor seleccionado de cada segmentación de datos. Creo que mi descripción es aún más elaborada para usted.

Prabhu_MDU_0-1625071554120.png

En el screenshort anterior, hay totalmente 9 columnas, de las 9, 8 se darán como una lista desplegable en las segmentaciones de datos como se muestra en la imagen, cada valor de segmentación de datos es de cada tabla diferente y son tablas independientes (no se creó ninguna relación), las segmentaciones de datos se establecen en el modo "Selección única" "Activado", según la elección del usuario de la lista desplegable en cada segmentación de datos , obtendremos 4 columnas, basadas en estas 4 columnas aleatorias, necesito calcular la suma de "Pago" la última columna. complacer ayudarme para fijar esto.

Nota: Lo siento, no se puede conectar la muestra de power Bi,

Allí, @Prabhu_MDU;

Puede intentar cambiar la medida de la siguiente manera:

Payment =
CALCULATE (
    SUM ( [Payment] ),
    FILTER (
        'Table',
        [Company] = MAX ( Slicer1[Group1_Column] )
            && [External] = MAX ( Slicer2[Group2_Column] )
            && [Process Center] = MAX ( Slicer3[Group3_Column] )
            && [State Name] = MAX ( Slicer4[Group4_Column] )))

Saludos
Team_ de apoyo comunitario Yalan Wu
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

@Prabhu_MDU , si está utilizando la segmentación de datos en el país y el estado que a continuación a la misma tbale que está poniendo filtro, que son automáticamente filtro con y (&&) sin que usted hace que

'Tabla'[País]=MIN('Tabla'[País]) ||
'Tabla'[Estado]=MIN('Tabla'[Estado])

Esto solo hace la comparación de contexto de fila

con tablas independientes estado y país o puede funcionar

Measeure =
CALCULAR(
SUM('Tabla'[Población]),
FILTER(('Tabla'),
'Tabla'[País]=valor seleccionado('País'[País]) ||
'Tabla'[Estado]=selectedvalue('Estado'[Estado])
)
)
)

Necesidad de una tabla independiente en Power BI: https://youtu.be/lOEW-YUrAbE

Hay @amitchandak,

Mi oídigo gracias por su respuesta,

Esto está funcionando igual que cómo funciona mi medida, es decir, no está agrupando los valores de las segmentaciones de datos que se trata como columna aquí. Quiero decir, no está agrupando las columnas como
Sum(Población) GroupBy (País,Estado). Está agrupando todas las columnas, aquí según el ejemplo Country,State,City,Sum(Population).

Por favor, ayúdame a solucionar esto.

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.