Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
He estado luchando con esto por un tiempo, pero no puedo progresar.
La organización tiene asuntos que se facturan mensualmente, bimensuales o trimestrales, por lo que el 1 de cada mes determinado todos los asuntos que cumplen con los criterios deben ser facturados.
La frecuencia de la factura se establece en una tabla Matters en un campo llamado BillFrq donde los valores aceptables son "Monthly", "B1", "B2", "Q1", "Q2" o "Q3" donde "Mensual" es evidente, "B1" indica asuntos facturados en meses de número impar, "B2" indica asuntos facturados en meses de número par, "Q1" indica asuntos facturados trimestralmente en enero/abril/julio/octubre, "Q2" indica asuntos facturados trimestralmente en feb/mayo/agosto y "Q3" indica asuntos facturados trimestralmente en marzo/julio/s.p., alto.
Estoy tratando de crear una medida que identifique todos los Asuntos adeudados para la facturación en un mes dado, por ejemplo, todos los asuntos adeudados para la facturación en enero, o, alternativamente, o todos los asuntos adeudados para la facturación en el mes actual.
He intentado esto, pero obtengo un error que switch no se puede utilizar para comparar True/False y funciones de texto.
BillFrq =
SWITCH (
CONTAINS ( Matters, Matters[BillFreq], "Monthly" ),
"Due for billing this month", CONTAINS ( Matters, Matters[BillFreq], "B1" )
&& MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "1"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "3"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "5"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "7"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "9"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "11",
"Due for billing this month", CONTAINS ( Matters, Matters[BillFreq], "B2" )
&& MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "2"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "4"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "6"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "8"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "10"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "12",
"Due for billing this month", CONTAINS ( Matters, Matters[BillFreq], "Q1" )
&& MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "1"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "4"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "7"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "10",
"Due for billing this month", CONTAINS ( Matters, Matters[BillFreq], "Q2" )
&& MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "2"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "5"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "8"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "11",
"Due for billing this month", CONTAINS ( Matters, Matters[BillFreq], "Q3" )
&& MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "3"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "5"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "8"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "12",
"Due for billing this month", "Not due for billing"
)
Cualquier ayuda apreciada.
Solved! Go to Solution.
La fórmula FECHA pide:
Año, MES y DIA que siempre estás poniendo hoy no te neeed que.
Reemplace todo el MES ( FECHA (HOY(), HOY(), HOY())) simplemente
MES (HOY())
También para simplemente medir probar el siguiente código:
BillFrq =
VAR Month_Selection =
MONTH ( TODAY () )
RETURN
SWITCH (
TRUE (),
CONTAINS ( Matters, Matters[BillFreq], "Monthly" ), "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "B1" )
&& Month_Selection IN { 1, 3, 5, 7, 9, 11 }, "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "B2" )
&& Month_Selection IN { 2, 4, 6, 8, 10, 12 }, "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "Q1" )
&& Month_Selection IN { 1, 4, 7, 10 }, "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "Q2" )
&& Month_Selection IN { 2, 5, 8, 11 }, "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "Q3" )
&& Month_Selection IN { 3, 5, 8, 12 }, "Due for billing this month",
"Not due for billing"
)
Compruebe también los meses dentro de cada uno de los
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsHola @MojoGene ,
El primer parámetro de un switch funcion es la expresión por lo que el valor que desea comparar alonside con el resto de los valores en su caso lo está haciendo :
CONTAINS ( Matters, Matters[BillFreq], "Monthly" )
Y luego usted está colocando el
"Due for billing this month"
En este caso, usted está haciendo creer a la comparación que la segunda parte es lo que desea devolver no comparar por lo que necesita rehacer su medida a algo similar a esto.
BillFrq =
SWITCH (
TRUE (),
CONTAINS ( Matters, Matters[BillFreq], "Monthly" ), "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "B1" )
&& MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "1"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "3"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "5"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "7"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "9"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "11", "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "B2" )
&& MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "2"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "4"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "6"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "8"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "10"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "12", "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "Q1" )
&& MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "1"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "4"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "7"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "10", "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "Q2" )
&& MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "2"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "5"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "8"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "11", "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "Q3" )
&& MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "3"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "5"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "8"
|| MONTH ( DATE ( TODAY (), TODAY (), TODAY () ) ) = "12", "Due for billing this month",
"Not due for billing"
)
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsMiguel:
Gracias por la ayuda, pero aquí está el error que estoy recibiendo con su sugerencia:
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsMiguel:
Solucioné ese problema, pero aún así tengo esto:
La fórmula FECHA pide:
Año, MES y DIA que siempre estás poniendo hoy no te neeed que.
Reemplace todo el MES ( FECHA (HOY(), HOY(), HOY())) simplemente
MES (HOY())
También para simplemente medir probar el siguiente código:
BillFrq =
VAR Month_Selection =
MONTH ( TODAY () )
RETURN
SWITCH (
TRUE (),
CONTAINS ( Matters, Matters[BillFreq], "Monthly" ), "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "B1" )
&& Month_Selection IN { 1, 3, 5, 7, 9, 11 }, "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "B2" )
&& Month_Selection IN { 2, 4, 6, 8, 10, 12 }, "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "Q1" )
&& Month_Selection IN { 1, 4, 7, 10 }, "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "Q2" )
&& Month_Selection IN { 2, 5, 8, 11 }, "Due for billing this month",
CONTAINS ( Matters, Matters[BillFreq], "Q3" )
&& Month_Selection IN { 3, 5, 8, 12 }, "Due for billing this month",
"Not due for billing"
)
Compruebe también los meses dentro de cada uno de los
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsMiguel:
Probé tu código y funcionó perfectamente.
Gracias, lo he aceptado como solución.
Estar bien, amigo.
g
Miguel
He reemplazado esos valores MONTH, pero aún así obtención del error de comparación TRUE/FALSE frente a texto: