Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hola
He tenido algo de ayuda en la creación de una medida para crear un filtro para mostrar los datos del día anterior o los datos del fin de semana un lunes, pero recibo el siguiente error: 'La expresión se refiere a varias columnas. Varias columnas no se pueden convertir en un valor escalar y no estoy seguro de lo que debo hacer para resolver esto, ¡lo siento, no soy tan bueno con las más complejas!
Esta es la tabla que quiero filtrar:
Fecha de recuento | Producto | Contado por | Más/Menos | Diferencia registrada | TotalStockPlusDiff | % del stock total |
29/01/2025 | 623932 | Secretario 1 | Más | -154307 | -151558 | 101.81% |
29/01/2025 | 623932 | Secretario 1 | Menos | 154409 | 151558 | 101.88% |
28/01/2025 | 392-1269 | Oficinista 4 | Menos | 3154 | 3119 | 101.12% |
26/01/2025 | 392-2036 | Oficinista 3 | Menos | 1508 | 7492 | 20.13% |
26/01/2025 | 392-2069 | Oficinista 3 | Más | -9000 | 18000 | -50.00% |
22/01/2025 | 206360 | Secretario 2 | Menos | 34339 | 43181 | 79.52% |
21/01/2025 | 392-1269 | Oficinista 4 | Más | -77 | -13 | 592.31% |
20/01/2025 | 203553 | Oficinista 3 | Más | -30441 | 13394 | -227.27% |
19/01/2025 | 1213-2369 | Secretario 2 | Más | -1485 | -788 | 188.45% |
19/01/2025 | 2273069 | Secretario 2 | Más | -1 | 200 | -0.50% |
19/01/2025 | 392-1036 | Oficinista 4 | Más | -1114 | 3307 | -33.69% |
16/01/2025 | 1213-5536 | Oficinista 4 | Menos | 555 | 101 | 549.50% |
16/01/2025 | 629610 | Oficinista 4 | Menos | 1835 | 13735 | 13.36% |
14/01/2025 | 1213-2369 | Oficinista 4 | Más | -1935 | -1338 | 144.62% |
10/01/2025 | 626129 | Secretario 1 | Menos | 11418 | 394 | 2897.97% |
08/01/2025 | 1213-3636 | Secretario 5 | Menos | 400 | 1041 | 38.42% |
08/01/2025 | 1213-5536 | Oficinista 4 | Más | -3000 | -1949 | 153.93% |
08/01/2025 | 1213-5536 | Oficinista 4 | Más | -385 | -334 | 115.27% |
07/01/2025 | 392-1269 | Oficinista 4 | Más | -53 | -38 | 139.47% |
04/01/2025 | 629069 | Secretario 2 | Menos | 343 | 399 | 85.96% |
¡Gracias por cualquier ayuda
Solved! Go to Solution.
Hola, @Belle2015
En base a su formación, le creo la mesa. Al mismo tiempo, agregué un dato del 6 de enero para probarlo.
A continuación, cree una nueva medida:
PreviousDayOrWeekendData =
VAR TodayIsMonday = WEEKDAY(MAX('Table'[Count Date]), 2) = 1
VAR _PreviousDay = CALCULATE(SUM('Table'[TotalStockPlusDiff]), 'Table'[Count Date] = MAX('Table'[Count Date]) - 1)
VAR WeekendData = CALCULATE(SUM('Table'[TotalStockPlusDiff]), WEEKDAY('Table'[Count Date], 2) IN {6, 7} && 'Table'[Count Date] <= MAX('Table'[Count Date]))
RETURN
IF(TodayIsMonday, WeekendData, _PreviousDay)
Coloque esta medida en el objeto visual de tabla y cree una segmentación. Aquí está mi vista previa:
Al seleccionar una segmentación, las métricas también cambian. Al mismo tiempo, calcula la suma de los fines de semana hasta la fecha seleccionada por el segmentador actual.
Cómo obtener respuestas rápidas a su pregunta
Saludos
Yongkang Hua
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Hola, @Belle2015
En base a su formación, le creo la mesa. Al mismo tiempo, agregué un dato del 6 de enero para probarlo.
A continuación, cree una nueva medida:
PreviousDayOrWeekendData =
VAR TodayIsMonday = WEEKDAY(MAX('Table'[Count Date]), 2) = 1
VAR _PreviousDay = CALCULATE(SUM('Table'[TotalStockPlusDiff]), 'Table'[Count Date] = MAX('Table'[Count Date]) - 1)
VAR WeekendData = CALCULATE(SUM('Table'[TotalStockPlusDiff]), WEEKDAY('Table'[Count Date], 2) IN {6, 7} && 'Table'[Count Date] <= MAX('Table'[Count Date]))
RETURN
IF(TodayIsMonday, WeekendData, _PreviousDay)
Coloque esta medida en el objeto visual de tabla y cree una segmentación. Aquí está mi vista previa:
Al seleccionar una segmentación, las métricas también cambian. Al mismo tiempo, calcula la suma de los fines de semana hasta la fecha seleccionada por el segmentador actual.
Cómo obtener respuestas rápidas a su pregunta
Saludos
Yongkang Hua
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Gracias por su ayuda con esto, creo que realmente no estoy explicando muy bien lo que quería que hiciera, esperaba que funcionara un poco como el filtro de fecha relativa pero sin tener que entrar y seleccionar los días que quería
Hola @Belle2015 ,
Acabo de reestructurar su DAX para devolver el valor escalar deseado, pruebe el código a continuación y avíseme si todo está bien:
FilteredByDate =
VAR TodayDate = TODAY()
VAR DayBefore = TodayDate - 1
VAR IsMonday = WEEKDAY(TodayDate, 2) = 1
RETURN
CALCULATE(
SUM('Table 2'[Difference Recorded]),
FILTER(
'Table 2',
IF(
IsMonday,
'Table 2'[Count Date] = TodayDate - 3 ||
'Table 2'[Count Date] = TodayDate - 2 ||
'Table 2'[Count Date] = TodayDate - 1,
'Table 2'[Count Date] = DayBefore
)
)
)
Muchas gracias por tu ayuda @Bibiano_Geraldo
Tal vez no estoy usando esto correctamente, pero pensé que solo aplicaría esta medida a los filtros para que funcione, ¡pero no está filtrando la tabla! ¡Lo siento, soy muy básico con esto y trato de aprender!
Hola @Belle2015
No se pueden devolver diferentes expresiones de tabla en función de las condiciones. Coloque cada expresión de tabla en su propia variable y, a continuación, cree una condición en la cláusula RETURN en su lugar:
IF(
IsMonday,
CALCULATE(SUM('Table 2'[Difference Recorded]), filter01),
CALCULATE(SUM('Table 2'[Difference Recorded]), filter02)
)