Forum Discussion
Comando If
Hola
Quiero definir que no. de semanas para dos casos en la tabla 'Geschäftskunden', pero obtengo un error:
Número de semanas =
VAR_Fecha de inicio = SELECTEDVALUE('Clientes comerciales'[Fecha de inicio])
VAR_Fecha de finalización = SELECTEDVALUE('Clientes comerciales'[Fecha de finalización])
DEVOLUCIÓN
SI (_FechaFin = ISBLANK,
DATEDIFF(_Fecha de inicio, Hoy(), SEMANA)
)
,
SI (_FechaFin = NO ISBLANK,
DATEDIFF(_Fecha de inicio, _Fecha de finalización, SEMANA)
)
7 Replies
- Syndicate_AdminAdministrator
El error proviene de una sintaxis incorrecta de ISBLANK y un IF adicional. En DAX, debe llamar a ISBLANK() como una función, y IF toma tres argumentos (condición, valor-si-TRUE, valor-si-FALSE). Una sola expresión hace el trabajo:
Anzahl Woche =
VAR _StartDate = SELECTEDVALUE ( 'Geschäftskunden'[Startdatum] )
VAR _EndDate = SELECTEDVALUE ( 'Geschäftskunden'[Enddatum] )
RETURN
IF (
ISBLANK ( _EndDate ),
DATEDIFF ( _StartDate, TODAY(), WEEK ),
DATEDIFF ( _StartDate, _EndDate, WEEK )
)Cosas que hay que comprobar dos veces
Ambas columnas son del tipo de datos Date.
Si _StartDate también puede estar en blanco, envuélvalo en ISBLANK o use COALESCE.
Para una solución de problemas más profunda, es mejor compartir una PBIX de muestra o al menos algunos datos simulados, cargarlos en una unidad pública (OneDrive, Google Drive, etc.) y publicar el enlace.
Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente
- Syndicate_AdminAdministrator
@SAL_69 , Intente usar
DAX
Número de semanas =
VAR _StartDate = SELECTEDVALUE('Clientes comerciales'[Fecha de inicio])
VAR _EndDate = SELECTEDVALUE('Clientes comerciales'[Fecha de finalización])
DEVOLUCIÓN
SI (
ISBLANK(_EndDate),
DATEDIFF(_StartDate, TODAY(), SEMANA),
DATEDIFF(_StartDate, _EndDate, SEMANA)
)- Syndicate_AdminAdministrator
gracias
- Syndicate_AdminAdministrator
Gracias
- Syndicate_AdminAdministrator
Hola @SAL_69,
Gracias por ponerse en contacto con la comunidad de Microsoft Fabric Forum.He reproducido el escenario en Power BI Desktop con datos de ejemplo y puedo confirmar que el cálculo funciona según lo esperado.
Resumen de lo que hice:
- Se ha creado una tabla de ejemplo Geschäftskunden con valores Enddatum rellenados y en blanco.
- Se usó la siguiente fórmula DAX en una columna calculada para controlar ambos casos correctamente:
Anzahl Woche = VAR _StartDate = 'Geschäftskunden'[Startdatum] VAR _EndDate = 'Geschäftskunden'[Enddatum] RETURN IF( ISBLANK(_EndDate), DATEDIFF(_StartDate, TODAY(), WEEK), DATEDIFF(_StartDate, _EndDate, WEEK) )Resultado:
La columna Anzahl Woche muestra ahora el número esperado de semanas:- Cuando Enddatum está en blanco, usa Today().
- Cuando Enddatum está presente, utiliza Enddatum.
Adjunto el archivo .pbix de muestra aquí para su referencia para que pueda revisarlo y adaptarlo a su propio conjunto de datos.
Gracias, @bhanu_gautam y @Ritaf1983 por compartir información valiosa.Si esta información es útil, por favor "Aceptar como solución" y da un "felicito" para ayudar a otros miembros de la comunidad a resolver problemas similares de manera más eficiente.
Gracias.- Syndicate_AdminAdministrator
Muchas gracias, funciona
- Syndicate_AdminAdministrator
gracias