- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Resta valores de la misma columna en función de varios filtros
Hola a todos
Estoy tratando de encontrar una manera de restar valores de la misma columna ('Salida') en función de los filtros.
Por ejemplo, para el número de serie del dispositivo 'A123BX90', me gustaría encontrar la diferencia de 'Comprobación desalida'de la columna [TestStep] entre'Process-Pre' y'Process-Post'[TestProcess]. Del mismo modo para 'Valor medido' & 'Salida final' de la columna TestStep.
¿Podría guiarme cómo lograr lo siguiente a través de DAX (el nombre de TestProcess es dinámico y cambiará en todo el conjunto de datos y no puedo codificarlo en función de los nombres actuales) ?
Diferencia de 'Comprobación de salida' = Salida [Process-Pre] - Salida [Process-Post] (124.88-120.52)
DeviceSerialNo | TestStep | Proceso de prueba | Salida |
A123BX90 | Inicialización | Proceso-Pre | Null |
A123BX90 | Comprobación de condiciones | Proceso-Pre | Pasar |
A123BX90 | Comprobación de coincidencias | Proceso-Pre | Pasar |
A123BX90 | Prueba de entrada | Proceso-Pre | Null |
A123BX90 | Inicialización rutinaria | Proceso-Pre | Pasar |
A123BX90 | Comprobación de salida | Proceso-Pre | 124.88 |
A123BX90 | Valor medido | Proceso-Pre | -35 |
A123BX90 | Salida final | Proceso-Pre | 24.34 |
A123BX90 | Prueba final | Proceso-Pre | No establecido |
A123BX90 | Inicialización | Proceso-Post | Null |
A123BX90 | Comprobación de condiciones | Proceso-Post | Pasar |
A123BX90 | Comprobación de coincidencias | Proceso-Post | Fallar |
A123BX90 | Prueba de entrada | Proceso-Post | - |
A123BX90 | Inicialización rutinaria | Proceso-Post | Pasar |
A123BX90 | Comprobación de salida | Proceso-Post | 120.52 |
A123BX90 | Valor medido | Proceso-Post | -60 |
A123BX90 | Salida final | Proceso-Post | 25.86 |
A123BX90 | Prueba final | Proceso-Post | No establecido |
¡Gracias de antemano!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hola, @DreamToGet
En función de su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.
Mesa:
En Power Query, puede crear una nueva consulta con los siguientes códigos m en 'Advanced Editor'.
let
Source = Table.Group(Table, {"DeviceSerialNo", "TestStep"}, {{"Data", each
let
x=try Number.From([Output]{0}) otherwise null,
y=try Number.From([Output]{1}) otherwise null
in x-y , type number}})
in
Source
Resultado:
Si desea usar DAX, debe crear una columna de índice en Power Query.
Puede crear una medida como se indica a continuación.
Result Measure =
SUMX(
SUMMARIZE(
'Table',
[DeviceSerialNo],
[TestStep],
"Result",
var minindex = MIN('Table'[Index])
var maxindex = MAX('Table'[Index])
var val1 =
IFERROR(
VALUE(
MAXX(
FILTER(
'Table',
[Index]=minindex
),
[Output]
)
),
BLANK()
)
var val2 =
IFERROR(
VALUE(
MAXX(
FILTER(
'Table',
[Index]=maxindex
),
[Output]
)
),
BLANK()
)
return
val1-val2
),
[Result]
)
Resultado:
Saludos
Allan
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hola, @DreamToGet
En Power Query, puede agregar un nuevo paso con los siguientes códigos m. El archivo pbix se adjunta al final.
= Table.Group(#"Changed Type", {"DeviceSerialNo", "TestStep"}, {{"Data", each
let
x= Table.Max( Table.SelectRows(_,each [TestProcess]="Process-Pre"),"StartDate")[Output],
y= Table.Max( Table.SelectRows(_,each [TestProcess]="Process-Post"),"StartDate")[Output],
m= try Number.From(x) otherwise null,
n= try Number.From(y) otherwise null
in m-n
}})
Resultado:
Saludos
Allan
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hola, @DreamToGet
En función de su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.
Mesa:
En Power Query, puede crear una nueva consulta con los siguientes códigos m en 'Advanced Editor'.
let
Source = Table.Group(Table, {"DeviceSerialNo", "TestStep"}, {{"Data", each
let
x=try Number.From([Output]{0}) otherwise null,
y=try Number.From([Output]{1}) otherwise null
in x-y , type number}})
in
Source
Resultado:
Si desea usar DAX, debe crear una columna de índice en Power Query.
Puede crear una medida como se indica a continuación.
Result Measure =
SUMX(
SUMMARIZE(
'Table',
[DeviceSerialNo],
[TestStep],
"Result",
var minindex = MIN('Table'[Index])
var maxindex = MAX('Table'[Index])
var val1 =
IFERROR(
VALUE(
MAXX(
FILTER(
'Table',
[Index]=minindex
),
[Output]
)
),
BLANK()
)
var val2 =
IFERROR(
VALUE(
MAXX(
FILTER(
'Table',
[Index]=maxindex
),
[Output]
)
),
BLANK()
)
return
val1-val2
),
[Result]
)
Resultado:
Saludos
Allan
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hola @v-alq-msft ,
Esto es exactamente lo que estaba buscando. Muchas gracias por esto.
Sin embargo, tengo otro problema ahora. Hay casos en los que el mismo 'TestProcess' se ha repetido varias veces y me gustaría utilizar los resultados más recientes (basado en la columna StartDate) para calcular la diferencia, pero no puedo hacerlo. ¿Podría ayudar en esto, por favor?
He adjuntado mi último archivo pbix junto con DAX actualizado para su referencia.
Resta valores de la misma columna en función de varios filters.pbix
¡Gracias!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hola, @DreamToGet
En Power Query, puede agregar un nuevo paso con los siguientes códigos m. El archivo pbix se adjunta al final.
= Table.Group(#"Changed Type", {"DeviceSerialNo", "TestStep"}, {{"Data", each
let
x= Table.Max( Table.SelectRows(_,each [TestProcess]="Process-Pre"),"StartDate")[Output],
y= Table.Max( Table.SelectRows(_,each [TestProcess]="Process-Post"),"StartDate")[Output],
m= try Number.From(x) otherwise null,
n= try Number.From(y) otherwise null
in m-n
}})
Resultado:
Saludos
Allan
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Helpful resources
Join us at the Microsoft Fabric Community Conference
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Power BI Monthly Update - February 2025
Check out the February 2025 Power BI update to learn about new features.

Subject | Author | Posted | |
---|---|---|---|
01-23-2023 02:21 AM | |||
07-31-2021 04:25 AM | |||
06-28-2024 06:56 AM | |||
07-18-2024 12:35 AM | |||
12-08-2023 03:14 PM |