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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
jacob2102
Helper II
Helper II

Medida DAX con doble condición anidada

Buenos días

Estoy tratando de crear una medida DAX con varias condiciones anidadas, que hacen referencia al mismo id pero no la condición no se da en la misma fila de datos.

 

Tengo una tabla con datos históricos de tarjetas, donde cada línea me muestra los diferentes estados por los que ha ido pasando. Una de las líneas me identifica si la tarjeta está cerrada, a través de su codificación como "1". Para esto creo una medida básica con CALCULATE que me cuenta las tarjetas distintas que cumplen la condición "cerrada = 1". Tabla de ejemplo:

jacob2102_0-1708091404570.png

 

 

Por otro lado, quiero obtener el total de la variable "segs" cuando la línea cumpla la siguiente: "area = 3" & "entorno = 1" & "tiempo 1 = S" & "tiempo 2 = S" & "tiempo 3 =S".

 

El resultado que quiero obtener es: Sumar toda la variable "segs" si cumple la condición "area = 3" & "entorno = 1" & "tiempo 1 = S" & "tiempo 2 = S" & "tiempo 3 = S" , sólo para los "id" que estén cerrados.

 

Intentó varias opciones de medidas DAX, pero no obtengo el valor correcto:

Opción 1: CALCULAR(Suma de tiempo, FILTRO(tabla, Cerradas)). El resultado es "EN BLANCO" ya que no detecta una fila que cumpla ambas condiciones, así que no suma ningún valor.

Opción 2: medida DAX con variables. VAR 1 Tarjetas cerradas, VAR 2 Total Segs, RETORNO CALCULAR(Total Segs, FILTRO(tabla, Tarjetas Cerradas)). En este caso el resultado me incluye también los "Segs" del "id = 100999". Suma todos los tiempos que cumplen la condición "area = 3" & "entorno = 1" & "tiempo 1 = S" & "tiempo 2 = S" & "tiempo 3 = S".

 

¿Cómo puedo crear una medida en DAX que anide ambas condiciones? Mi objetivo es sumar la variable "segs" sólo si el "id" cumple la condición de que esté cerrado.

 

gracias

jacob

1 ACCEPTED SOLUTION

Buenos días,

 

Ya tengo la solución, para poder crear la medida DAX con el valor correcto.

Por un lado creo la medida "Total Segs = CALCULATE(SUM(Tabla[Segs]),Tabla[area]=3,Tabla[entorno]=1,Tabla[tiempo 1]="S",Tabla[tiempo 2]="S",Tabla[tiempo 3]="S".

 

Por otra parte creo una medida DAX que me devuelva una tabla con sólo las tarjetas cerradas, y posteriormente hago la suma sobre estos valores:
Total Segs Cerradas = 
VAR TablaCerradas = CALCULATETABLE(DISTINCT(Tabla[id]),Tabla[cerrada]=1)
RETURN SUMX(TablaCerradas, [Total Segs]).

 

Con esta solución consigo obtener el tiempo sólo para las tarjetas que cumplen la condición de estar cerradas, sumando las líneas que por otro lado cumplen la condición indicada.

 

Gracias. Un saludo,

Jacob

View solution in original post

9 REPLIES 9
Anonymous
Not applicable

Hi @jacob2102 ,
Based on the information you provided, I created some sample data to solve this problem for you. You can follow the steps below:
1. Add a measure.

Total = 
CALCULATE (
    SUM ( 'Table'[segs] ),
    FILTER (
        ALL ( 'Table' ),
        'Table'[ID] = SELECTEDVALUE ( 'Table'[ID] )
            && 'Table'[area] = 3
            && 'Table'[environment] = 1
            && 'Table'[time 1] = "S"
            && 'Table'[time 2] = "S"
            && 'Table'[time 3] = "S"
    )
)

Final output:

vyifanwmsft_0-1708321404033.png

 

How to Get Your Question Answered Quickly - Microsoft Fabric Community

If it does not help, please provide more details with your desired out put and pbix file without privacy information.

 

Best Regards,

Ada Wang

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Buenas tardes,

Gracias por la respuesta, pero no es lo que necesito.
He incluido un archivo con datos de ejemplo, para así poder entender mejor la situación.

DAX doble condición 

 

Necesito crear una medida en DAX, que recoja los datos sólo de las etiquetas que sean cerradas, pero que sólo sume las líneas que cumplan las condiciones "area = 3" & "entorno = 1" & "tiempo 1 = S" & "tiempo 2 = S" & "tiempo 3 = S".

 

Gracias. Un saludo,
Jacob

lbendlin_0-1708364882453.png

 

Hola,

 

Gracias por la respuesta, pero el resultado obtenido no es la solución correcta, ya que se incluyen datos de tarjetas que no cumplen con la condición de estar cerradas.

 

El dato que busco es el que se refleja en la tabla "Segs sólo cerradas" en color verde, por valor de 10.367.057. Necesito crear una medida que devuelva la suma de tiempo que cumpla la condición deseada, pero sólo para los ID que han sido cerrados.

 

Gracias. Un saludo,

jacob

You can add that filter as needed.

¿Cómo puedo agregar el filtro dentro de la medida DAX?
Necesito crear un indicador de tipo tarjeta, a través de la medida, que me devuelva el resultado directamente, sin crear una tabla para poder incluir el filtro.

 

Gracias. Un saludo,

Jacob

Buenos días,

 

Ya tengo la solución, para poder crear la medida DAX con el valor correcto.

Por un lado creo la medida "Total Segs = CALCULATE(SUM(Tabla[Segs]),Tabla[area]=3,Tabla[entorno]=1,Tabla[tiempo 1]="S",Tabla[tiempo 2]="S",Tabla[tiempo 3]="S".

 

Por otra parte creo una medida DAX que me devuelva una tabla con sólo las tarjetas cerradas, y posteriormente hago la suma sobre estos valores:
Total Segs Cerradas = 
VAR TablaCerradas = CALCULATETABLE(DISTINCT(Tabla[id]),Tabla[cerrada]=1)
RETURN SUMX(TablaCerradas, [Total Segs]).

 

Con esta solución consigo obtener el tiempo sólo para las tarjetas que cumplen la condición de estar cerradas, sumando las líneas que por otro lado cumplen la condición indicada.

 

Gracias. Un saludo,

Jacob

lbendlin
Super User
Super User

Please provide sample data that covers your issue or question completely, in a usable format (not as a screenshot).

Do not include sensitive information or anything not related to the issue or question.

If you are unsure how to upload data please refer to https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...

Please show the expected outcome based on the sample data you provided.

Want faster answers? https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...

Buenos días,

 

Adjunto envío un archivo con datos de ejemplo, para poder obtener los resultados esperados.

DAX doble condicion 

 

En este caso, a parte del total de tarjetas, tarjetas cerradas y tiempo "Segs" que cumple la condición  "area = 3" & "entorno = 1" & "tiempo 1 = S" & "tiempo 2 = S" & "tiempo 3 = S", necesito conocer el la suma de "Segs" sólo para las tarjetas que estén clasificadas como cerradas y que además cumplan esta condición.

 

En resumen, necesito obtener una medida DAX que me devuelva el resultado de la tabla con fondo verde. En este caso sólo se suman los "Segs" de las tarjetas que son cerradas y que cumplen la condición area = 3" & "entorno = 1" & "tiempo 1 = S" & "tiempo 2 = S" & "tiempo 3 = S".

¿Es posible crearlo como una medida directa en vez de tener que crearlo en una tabla o cambiar el modelo?

 

Gracias. Un saludo,

Jacob

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!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

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