Anónimo
Hola,
Tengo una medida en la que quiero hacer uso de la fecha que se seleccionó en una tabla de calendario no relacionada, pero la medida debería devolver valores relacionados con dos meses más.
L3.2 =
VAR _SelDate = FORMAT(DATEADD(SELECTEDVALUE('DIM Kalender'[Datum]), 2, MONTH), "YYYYMM")
RETURN
CALCULATE(
COUNT('FACT ACM'[EAN]),
'FACT ACM'[Subonderwerp] = "L3.2",
FORMAT('FACT ACM'[InvoiceDate],"YYYYMM") = _SelDate
)
EDITAR: eliminó _SelDate directamente después de RETURN
Sin embargo, esto genera un error: «Se ha utilizado una función ‘VALOR SELECCIONADO’ en una expresión Verdadero/Falso que se usa como una expresión de filtro de tabla. Esto no está permitido».
Así que traté de ser creativo e intenté lo siguiente:
So I selected August 2020, And this is the result:
VAR _SelDate = FORMAT(SELECTEDVALUE('DIM Kalender'[Datum]), "YYYYMM")+2
RETURN _SelDate --Shows 202010, Which is 2020 October, exactly what I want, however an INT.
So then I tried to change it back to a date:
VAR _SelDate = FORMAT(FORMAT(SELECTEDVALUE('DIM Kalender'[Datum]), "YYYYMM")+2, "YYYYMM")
RETURN _SelDate --Shows 245301, Which is abracadabra to me why that happened.
Ahora parece que puede agregar meses a SELECTEDVALUE, pero todavía estoy atascado en formatear el INT al período correcto.
¿O hay alguna otra función como DATEADD para agregar meses a un SELECTEDVALUE?
Atentamente,
Igor
Anónimo
En respuesta a Anónimo
Parece que encontré la solución, pero no entiendo por qué funciona en absoluto.
Ahora uso la siguiente medida:
L3.2 =
VAR _SelDate =
FORMAT(DATEADD('DIM Kalender'[Datum],2,MONTH), "YYYYMM")
RETURN
CALCULATE(
COUNT('FACT ACM'[EAN]),
'FACT ACM'[Subonderwerp] = "L3.2",
FORMAT('FACT ACM'[InvoiceDate],"YYYYMM") = _SelDate
)
Cuando hago una selección en la segmentación de datos anterior y selecciono agosto, devuelve los valores de octubre. Sin embargo, esta tabla Calendario NO TIENE RELACIÓN con la tabla ‘FACT ACM’. ¿Cuál es la razón por la que esto funciona sin SELECTEDVALUE?
Atentamente,
Igor
tex628
En respuesta a Anónimo
Lo siento, me acabo de dar cuenta, cuando realiza un SELECTEDVALUE() en una columna, ya no está trabajando con una columna, sino con un solo valor. Dateadd() requiere una declaración de columna para funcionar, por lo que la combinación de selectedvalue() y dateadd() ¡nunca funcionará!
Puede solucionar esto simplemente agregando meses manualmente, en las líneas si esto:
VAR NuevoMes = IF( MES( Calendario[Date] ) = 11 , 1 , SI( MES( Calendario[Date] ) = 12 , 2 , MES( Calendario[Date]) +2 ))
VAR NewYear = IF( MES( Calendario[Date] ) > 10 , AÑO( Calendario[Date] ) +1 , AÑO( Calendario[Date] ))
Esto significaría que puede omitir por completo la adición de fecha, lo que significa que puede usar el valor seleccionado ()
¡Pero si te entendí correctamente, ya lo hiciste funcionar! 🙂
/J
tex628
¿Por qué hay un _SelDate donde destaqué a continuación?
L3.2 =
VAR _SelDate = FORMAT(DATEADD(SELECTEDVALUE(‘DIM Kalender'[Datum]), 2, MES), «AAAAMM»)
REGRESO _SelDate
CALCULAR(
CUENTA(‘HECHO ACM'[EAN]),
‘HECHO ACM'[Subonderwerp] = «L3.2»,
FORMATO(‘HECHO ACM'[InvoiceDate],»AAAAMM») = _SelDate
)
Anónimo
En respuesta a tex628
Gracias por la notificación. Es un error, edité la medida. que _SelDate directamente después de RETURN se usó para verificar cuál es realmente el valor de _SelDate, porque no obtuve resultados.
tex628
En respuesta a Anónimo
Sinceramente, creo que su medida debería funcionar tal como está, quiero decir que la variable debe declararse antes de la declaración de devolución para que en realidad no haya ningún valor seleccionado () dentro del cálculo. Pero intentemos algunas cosas.
Intentemos mover el valor seleccionado (),
L3.2 =
VAR SelDate = SELECTEDVALUE('DIM Kalender'[Datum])
VAR _SelDate = FORMAT(DATEADD( SelDate , 2, MONTH), "YYYYMM")
RETURN
CALCULATE(
COUNT('FACT ACM'[EAN]),
'FACT ACM'[Subonderwerp] = "L3.2",
FORMAT('FACT ACM'[InvoiceDate],"YYYYMM") = _SelDate
)
Otra cosa que puedes probar es esto:
L3.2 =
VAR _SelYear = YEAR(DATEADD( SELECTEDVALUE('DIM Kalender'[Datum]) , 2, MONTH))
VAR _SelMonth = MONTH(DATEADD( SELECTEDVALUE('DIM Kalender'[Datum]) , 2, MONTH))
RETURN
CALCULATE(
COUNT('FACT ACM'[EAN]),
'FACT ACM'[Subonderwerp] = "L3.2",
YEAR('FACT ACM'[InvoiceDate]) = _SelYear,
MONTH('FACT ACM'[InvoiceDate]) = _SelMonth
)
Hermano,
j
Anónimo
En respuesta a tex628
Por extraño que parezca, la primera sugerencia dice «El primer argumento de ‘DATEADD’ debe especificar una columna».
Y la segunda sugerencia dice «Se ha usado una función ‘VALOR SELECCIONADO’ en una expresión Verdadero/Falso que se usa como una expresión de filtro de tabla. Esto no está permitido».
Atentamente,
Igor
tex628
En respuesta a Anónimo
Lo siento, me acabo de dar cuenta, cuando realiza un SELECTEDVALUE() en una columna, ya no está trabajando con una columna, sino con un solo valor. Dateadd() requiere una declaración de columna para funcionar, por lo que la combinación de selectedvalue() y dateadd() ¡nunca funcionará!
Puede solucionar esto simplemente agregando meses manualmente, en las líneas si esto:
VAR NuevoMes = IF( MES( Calendario[Date] ) = 11 , 1 , SI( MES( Calendario[Date] ) = 12 , 2 , MES( Calendario[Date]) +2 ))
VAR NewYear = IF( MES( Calendario[Date] ) > 10 , AÑO( Calendario[Date] ) +1 , AÑO( Calendario[Date] ))
Esto significaría que puede omitir por completo la adición de fecha, lo que significa que puede usar el valor seleccionado ()
¡Pero si te entendí correctamente, ya lo hiciste funcionar! 🙂
/J
Anónimo
En respuesta a tex628
Muchas gracias, esta es una explicación muy útil de hecho.
Lo hice funcionar, pero usar su solución también funciona.
Atentamente,
Igor
tex628
En respuesta a Anónimo
¡Es genial escucharlo, buena suerte con los cálculos futuros!
Hermano,
j
Anónimo
En respuesta a Anónimo
Parece que encontré la solución, pero no entiendo por qué funciona en absoluto.
Ahora uso la siguiente medida:
L3.2 =
VAR _SelDate =
FORMAT(DATEADD('DIM Kalender'[Datum],2,MONTH), "YYYYMM")
RETURN
CALCULATE(
COUNT('FACT ACM'[EAN]),
'FACT ACM'[Subonderwerp] = "L3.2",
FORMAT('FACT ACM'[InvoiceDate],"YYYYMM") = _SelDate
)
Cuando hago una selección en la segmentación de datos anterior y selecciono agosto, devuelve los valores de octubre. Sin embargo, esta tabla Calendario NO TIENE RELACIÓN con la tabla ‘FACT ACM’. ¿Cuál es la razón por la que esto funciona sin SELECTEDVALUE?
Atentamente,
Igor