tsoeste
Hola,
Tengo una tabla que se ve así (Table1):
Etiqueta | ID de versión | Valor |
A | 1 | 1,5 |
B | 1 | 2,1 |
C | 1 | 4,5 |
A | 2 | 1,1 |
B | 2 | 1,4 |
C | 2 | 2,3 |
A | 3 | 3,1 |
Y otra tabla que también contiene de la columna Versión (Tabla2):
Fecha | ID de versión |
1.1.2019 | 1 |
1.1.2020 | 2 |
1.1.2021 | 3 |
Como quiero usar dos segmentaciones para seleccionar los ID de versión, creé dos copias de Table2: son Table21 y Table22 y, por supuesto, existe una relación entre las columnas de ID de versión.
Lo que me gustaría hacer es obtener para cada etiqueta el delta entre los valores en la columna «Valor», según el ID de versión (el usuario siempre debe seleccionar dos versiones a través de dos segmentaciones en mi informe para obtener los deltas), por lo que tener seleccioné VersionID 1 y VersionID 2 Quiero mostrar en mi informe una tabla como esta:
Etiqueta | prop_delta |
A | 0,4 |
B | 0,7 |
C | 2,2 |
Pensé que este sería un problema bastante trivial, sin embargo, simplemente no puedo hacerlo funcionar.
Lo que tengo hasta ahora es el siguiente DAX para mi medida:
prop_delta =
var selected_verID1 = SUMMARIZE(FILTER(Table21,Table21[VersionID] IN ALLSELECTED(Table21[VersionID])),Table21[VersionID])
var selected_verID2 = SUMMARIZE(FILTER(Table22,Table22[VersionID] IN ALLSELECTED(Table22[VersionID])),Table22[VersionID])
RETURN
Esto me da correctamente los ID de versión que se seleccionaron. Entonces, para el resto de mi cálculo, esperaba que algo así hiciera el trabajo:
CALCULATE(SUMX(FILTER(Table1, Table1[VersionID] =selected_verID1), Table1[Value])-SUMX(FILTER(Table1, Table1[VersionID] =selected_verID2), Table1[Value]))
Sin embargo, esto no funciona en absoluto y solo crea un error «Se suministró una tabla de valores múltiples donde se esperaba un valor único».
¡Gracias por cualquier ayuda!
tsoeste
En respuesta a tsoeste
Ok, finalmente lo arreglé simplemente creando una nueva medida y copiando mi código en esta nueva medida. Ahora funciona, así que supongo que el error fue solo un error.
pabloolding
Suponiendo que su modelo se parece a esto
entonces una medida prop_delta como esta
Da un resultado como este
tsoeste
En respuesta a pabloolding
Hola Pablo,
gracias por tu consejo – sin embargo esto todavía me da la Error «Se proporcionó una tabla de valores múltiples donde se esperaba un solo valor».
tsoeste
Ok, mientras tanto, encontré una solución relativamente simple que funciona siempre que solo use una var en ella (por lo tanto, seleccionó_verID1 o seleccionó_verID2 debe reemplazarse por un número estático). Esto funciona:
prop_delta =
var selected_verID1 = SUMMARIZE(FILTER(Table21,Table21[VersionID] IN ALLSELECTED(Table21[VersionID])),Table21[VersionID])
var selected_verID2 = SUMMARIZE(FILTER(Table22,Table22[VersionID] IN ALLSELECTED(Table22[VersionID])),Table22[VersionID])
RETURN
CALCULATE(CALCULATE(SUMX(FILTER(Table1, Table1[VersionID] =selected_verID1), Table1[Value]))-CALCULATE(SUMX(FILTER(Table1, Table1[VersionID] = 3), Table1[Value])))
….. pero si reemplazo el «3» en el segundo FILTRO por selected_verID2 obtengo nuevamente el mismo error. ¿Alguien puede decirme cuál es el problema aquí?
tsoeste
En respuesta a tsoeste
Ok, finalmente lo arreglé simplemente creando una nueva medida y copiando mi código en esta nueva medida. Ahora funciona, así que supongo que el error fue solo un error.
daxer