March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.
Register NowGet certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare now
Soy nuevo en Power BI. Estoy trabajando con una tabla de elementos de trabajo y necesito devolver artículos que cumplan cualquiera de las 2 condiciones:
1) o bien el elemento de trabajo está programado para una semana que el usuario selecciona de una segmentación de datos
O
2) el elemento de trabajo llega tarde
He creado una segmentación dedatos de fechas de vencimiento de fin de semana y puedo extraer el valor seleccionado en una medida. Esa segmentación de datos es una tabla dinámica que genera un valor para la semana actual y 2 semanas más (dinámica en función de la fecha actual). Funciona bien.
He creado una columna calculada en la tabla "AssignedTaskStatus" que indica si la tarea es "Tarde". Este valor también se devuelve con precisión.
Ahora el problema: He escrito una fórmula DAX que esperaba que evaluaría para cada fila de la tabla y devolviera "sí" o "no" para la fila que se incluye, y luego podría establecer esa columna como filtro para el objeto visual.
InSelectedWeekOrLate =
VAR WkEndingDate = SELECTEDVALUE(CurrentWkEndingDate[WkEndingDate].[Date])
VAR Result = if(VALUES(TaskResourceAssignment[FinishWkEndingDate])=WkEndingDate, "yes"
,if(VALUES(TaskResourceAssignment[StartWkEndingDate])=WkEndingDate, "yes"
,if(VALUES(TaskResourceAssignment[AssignedTaskStatus])="Late", "yes","no")
))
return(Result)
Recibo un error de cálculo: se proporcionó una tabla de varios valores donde se esperaba un único valor.
El diseño del informe aparece a continuación para el contexto. La segmentación de datos del recurso asignado al trabajo está conectada a la tabla y funciona bien. Me gustaría que solo se mostraran en la tabla las tareas previstas para la semana del 24 de abril y las tareas tardías.
Puede que no esté siguiendo una estrategia que sea factible, así que por favor hágamelo saber si estoy mirando todo esto mal y necesito tomar otro enfoque.
Gracias
HI @Kazoo60,
El bi de potencia actual no admite crear una columna/tabla de cálculo dinámico basada en filtros/cortadoras. Por favor, utilice la fórmula de medida en su lugar. (medir, filtrar/dividir y calcular el trabajo de columna en diferentes niveles de datos, no se puede utilizar el nivel secundario para interactuar con su elemento primario)
saludos
Xiaoxin Sheng
Gracias @v-shex-msft por la respuesta. Sin embargo, todavía estoy un poco perdido. ¿Puede darme un poco más de explicación o un ejemplo de lo que quiere decir con "usar la fórmula de medida en su lugar"? Creo que creé una fórmula de medida (proporcionada en mis notas). ¿O hay diferentes tipos de medidas?
Gracias
Hola @Kazoo60,
Después de comprobar la fórmula DAX, encontré que está utilizando la función values para extraer los valores de contenido de fila actuales del campo de tabla. AFAIK, la función VALUES se puede utilizar para extraer contenido de fila aggerated que puede contener un solo valor o lista de valores. (Power bi no le permite utilizar operadores matemáticos para comparar tipos de lista de valor con un solo valor)
Puede intentar utilizar las siguientes fórmulas de medida si es adecuada para su escenario:
InSelectedWeekOrLate =
VAR WkEndingDate =
MAX ( CurrentWkEndingDate[WkEndingDate] )
VAR currStatus =
SELECTEDVALUE ( TaskResourceAssignment[AssignedTaskStatus] )
VAR FinishWkEndingDate =
VALUES ( TaskResourceAssignment[FinishWkEndingDate] )
VAR StartWkEndingDate =
VALUES ( TaskResourceAssignment[StartWkEndingDate] )
RETURN
IF (
WkEndingDate IN UNION ( FinishWkEndingDate, StartWkEndingDate ),
"yes",
IF ( currStatus = "Late", "yes", "no" )
)
Para las fórmulas de medida, puede usarlas en el filtro de nivel visual para filtrar registros:
Aplicación de un filtro de medida en Power BI
saludos
Xiaoxin Sheng
¡Gracias! He aprendido mucho sobre la sintaxis y la estrategia de DAX de la función que proporcionó. Y sí, sí aborda el problema.
Tim
Lo descubrí. Necesitaba usar una "Columna" y no una medida. Si estás a un día de la página, voy a dejar el puesto en caso de que ayude a alguien más.
La columna calculada se agregó a la tabla donde necesito hacer el filtrado. El código de la columna puede recuperar el valor de la segmentación de datos como antes, pero también puede hacer referencia a los valores de las columnas de la fila directamente que no funcionaban para las medidas (que deben ser operadores SET).
InSelection =
VAR WkEndingDate = SELECTEDVALUE(CurrentWkEndingDate[WkEndingDate].[Date])
VAR InSelection = if(TaskResourceAssignment[FinishWkEndingDate].[Date]=WkEndingDate, "yes"
,if(TaskResourceAssignment[StartWkEndingDate]=WkEndingDate, "yes"
,if(TaskResourceAssignment[AssignedTaskStatus]="Late", "yes", "no")
))
return(InSelection)
Luego agregué la nueva columna "InSelection" al panel de filtro y establecisé su valor requerido en "yes".
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.
Check out the November 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |