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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

ISBLANK devuelve otro valor de la tabla con un filtro diferente

Hola

Tengo una tabla que se ve como abajo.

DataType de valor de fecha

01.01.2022 10 A

02/01/2022 15 A

03/01/2022 10 A

01.02.2022 11 A

02/02/2022 23 A

03/02/2022 10 A

01.01.2022 22 B

02/01/2022 55 B

03/01/2022 12 B

01.02.2022 73 B

02/02/2022 23 B

03.02.2022 14 B

01.03.2022 15 B

02/03/2022 23 B

03.03.2022 22 B

Necesito devolver una SUMA MENSUAL de los valores, donde si existe el tipo de datos A, usamos ese número, sin embargo, si A no existe para el mes, usamos el total para el tipo de datos B.

Los resultados esperados del ejemplo anterior son:

Valor MES

ene-22 35

feb-22 44

ene-22 60

Como puede ver, hay datos para el tipo A para los primeros 2 meses, pero para el 3er, solo hay tipo B, por lo que usamos el tipo B.

He creado 2 medidas, 1 para recuperar los datos para el tipo A (MedidaA) y una para recuperar el tipo B (MedidaB).

A los efectos de mi informe, estos están utilizando filtros para que cada uno obtenga su respectivo tipo de datos.

He intentado lo siguiente:

MedidaC =

IF (ISBLANK([MedidaA]),[MedidaB],[MedidaA])
Cuando pongo la medida C en un objeto visual de tabla, todos los valores aparecen por mes correctamente, pero el total en la parte inferior es solo la suma del tipo A.
Ejemplo de la tabla visual:

Valor MES

ene-22 35

feb-22 44

ene-22 60

TOTAL 79

¿Alguien tiene alguna sugerencia sobre otra forma de hacer esto correctamente?

@amitchandak has podido responder a casi todas mis preguntas. ¡Espero que puedas ayudar con este! 🙂

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Hola @Bifinity_75 , @amitchandak , @Mikelytics

He intentado agregar una combinación de sus soluciones propuestas, sin embargo, todavía estoy recibiendo el total incorrecto.

Aquí está mi medida (me encantaría dar un PBIX limpio, pero es un gran proyecto con el que estoy trabajando y tiene algunos datos confidenciales). He intentado esto tanto con datos que están en la misma tabla con diferentes tipos de datos como columnas, como con datos provenientes de 2 tablas de hechos separadas.

Aquí hay algunas capturas de pantalla de mis 2 soluciones de tabla de hechos separadas.

MCassady_6-1668545426350.png

MCassady_4-1668545211370.png

MCassady_5-1668545358235.png

Syndicate_Admin
Administrator
Administrator

@MCassady Gracias por compartir el problema.

Tengo una pregunta sobre sus datos de muestra. ¿Cuál sería la lógica si los datos para el tipo de datos A y B están disponibles para el mismo mes, como en la siguiente instantánea?

ghoshabhijeet_0-1668538070699.png

Si ambos están disponibles, priorizamos el tipo A e ignoramos que B existe.

En sql sería como tener un ISNULL(A,B)

Syndicate_Admin
Administrator
Administrator

@MCASSADY ,

Intente lo siguiente:

Datos base

Mikelytics_0-1668535564016.png

en mi ejemplo, supongo que tienes una tabla de fechas conectada a tu tabla

Mikelytics_1-1668535594253.png

Primero la versión con filas correctas y total incorrecto,. Entonces, si no necesita un total, puede tomar este, pero también apague el total.

AB_SUM = 

    var var_SumA =
        CALCULATE(
            SUM(SampleAB[Value]),
            SampleAB[DataType] = "A"
        )

    var var_SumB =

    CALCULATE(
            SUM(SampleAB[Value]),
            SampleAB[DataType] = "B"
        )

    RETURN

    if(
        NOT ISBLANK(var_SumA)
        ,var_SumA
        ,var_SumB
    )

Mikelytics_2-1668536460744.png

Si también necesita el total, tome esta fórmula

AB_SUM = 

SUMX(
    VALUES(DimDate[Year-Month]),

    var var_SumA =
        CALCULATE(
            SUM(SampleAB[Value]),
            SampleAB[DataType] = "A"
        )

    var var_SumB =

    CALCULATE(
            SUM(SampleAB[Value]),
            SampleAB[DataType] = "B"
        )

    RETURN

    if(
        NOT ISBLANK(var_SumA)
        ,var_SumA
        ,var_SumB
    )
)

Mikelytics_3-1668536518805.png

Saludos

Miguel

-----------------------------------------------------

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente. ¡Aprecio su pulgar hacia arriba!

@me en las respuestas o perderé tu hilo.

@Mikelytics @amitchandak @Bifinity_75

Esta parece ser la solución, tenía el sumx en el lugar equivocado y revisé dos veces esta publicación.

Gracias por las rápidas respuestas, ¡ustedes son los mejores!

Syndicate_Admin
Administrator
Administrator

@MCassady , consulte primero la respuesta de @Bifinity_75 , si eso no funciona, intente

sumx(Valores('Fecha'[Mes Año]), calcular(IF (ISBLANK([MedidaA]),[MedidaB],[MedidaA])) )

Syndicate_Admin
Administrator
Administrator

Hola @MCassady , prueba esta medida:

Value = var A_= CALCULATE(sum('Table'[ Value ]),'Table'[DataType]="A")
var B_=CALCULATE(sum('Table'[ Value ]),'Table'[DataType]="B")
return
if (A_=BLANK(),B_,A_)

Saludos

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors