The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Suponiendo los datos de la siguiente manera:
COLA COLB COLC
AA 04/01/2018 1
AA 04/02/2018 0
AA 04/03/2019 1
BB 04/01/2019 1
BB 04/02/2018 1
BB 04/03/2019 1
BB 04/04/2019 0
CC 04/01/2019 1
CC 04/02/2019 0
CC 04/02/2019 1
Necesito una medida que cuente las fechas distintas en COLB dentro de COLA donde COLC 1 y el año(COLB) - AÑO(MAX(COLB)).
Usando los datos anteriores, los resultados deben ser 3.
COLA COLB COLC
AA 04/03/2019 1
BB 04/01/2019 1
CC 04/02/2019 1
Gracias.
Solved! Go to Solution.
Hola @Richal ,
Sólo tiene que modificar la medida como se muestra a continuación:
Measure =
CALCULATE(DISTINCTCOUNT('Table'[COLA]),FILTER(ALLEXCEPT('Table','Table'[COLB]),YEAR(SELECTEDVALUE('Table'[COLB]))=MAXX(ALL('Table'),YEAR('Table'[COLB]))&&'Table'[COLC]=1))+0
Y verás:
He modificado el archivo pbix, haga clic aquí.
Hola @Richal ,
Necesita una medida como se indica a continuación:
MesureValue =
var t = ALLSELECTED('Table')
return
SUMX (
'Table',
VAR a = [COLA]
RETURN
IF (
'Table'[COLC] = 1
&& NOT (
[COLB]
IN CALCULATETABLE (
DISTINCT ( 'Table'[COLB] ),
FILTER (
t,
var a2 = 'Table'[COLA]
var maxyear = YEAR (
CALCULATE (
MAX ( 'Table'[COLB] ),
FILTER (t, 'Table'[COLA] = a2 )
)
)
return
'Table'[COLA] < a
&& 'Table'[COLC] = 1
&& YEAR ( 'Table'[COLB] )
= maxyear
)
)
)
&& YEAR ( [COLB] )
= YEAR (
CALCULATE (
MAX ( 'Table'[COLB] ),
FILTER ( t, 'Table'[COLA] = a )
)
),
[COLC],
BLANK ()
)
)
Y verás:
Para el archivo .pbix relacionado, haga clic aquí.
Kelly
Gracias por su respuesta, estoy de acuerdo en que la solución funcionó con los datos de muestra que proporcioné, sin embargo, cuando sustituí los datos en vivo, la solución no funcionó. Además, tal vez no expliqué mis requisitos correctamente. La tabla de la izquierda son los datos sin procesar. Necesito contar el número total de "días de la gente" para el año más antiguo de la tabla. La tabla contiene un registro para cada tarea completada en un día determinado. La medida solo debe contar a la persona una vez en cualquier día.
Así, por ejemplo, DW completó 3 tareas en 3/2/18, CJ completó 2, y DM completó 2. El recuento total de 3/2/18 debe ser 3 ya que solo la tarea notificada con DW, CJ y DM se completó ese día.
La tabla en el centro es la fecha y la medida que proporcionó y la tarjeta a continuación muestra los resultados de la medida.
En general, el cálculo de la medida está cerca, en arrendamiento sólo contando 2019 días.
Intenté ajustar el cálculo, pero me metí en problemas. Si pudiera revisar el cálculo, se lo agradecería.
Gracias
Rick
Lo siento, el total debería ser de 19. 9 cuentan con 3/6/19 y 10 cuentan con 3/7/19.
@v-kelly-msft . Por favor, ignore mi comentario anterior. El caffien no había pateado cuando lo publiqué. Los valores correctos son los indicados anteriormente.
Hola @Richal ,
Vaya al editor de consultas>agregar columna>Columna de índice;
A continuación, cree 3 medidas como se indica a continuación:
Measure =
CALCULATE(COUNTROWS('Table'),FILTER(ALLEXCEPT('Table','Table'[COLB]),YEAR(SELECTEDVALUE('Table'[COLB]))=MAXX(ALL('Table'),YEAR('Table'[COLB]))&&'Table'[COLC]=1))+0
Measure 2 =
var c = CALCULATE(COUNTROWS('Table'),FILTER(ALL('Table'),'Table'[COLB]=MAX('Table'[COLB]) && 'Table'[Index]<=MAX('Table'[Index])),VALUES('Table'[COLB]))
Return
IF(c>1,BLANK(),1)
_total =
SUMX(FILTER('Table','Table'[Measure]>=1&&'Table'[Measure 2]=1),'Table'[Measure])
Finalmente verá:
Para el archivo .pbix relacionado, haga clic aquí.
Espero que esto sea lo que necesitas.
@v-kelly-msft Hola Kelly,
Lo siento, el resultado no es correcto. Creo que el resultado de la "_total" resume colC. El valor que necesito es el número de COLA por COLB distinto donde COLC 1 dentro del año(max(COLB). COLB es la fecha de finalización de la tarea. Un empleado puede tener varias tareas completadas en una fecha determinada.
Por ejemplo, si cj tiene 2 terminaciones (COLC - 1), DM tiene 2 terminaciones, y SS tiene 1 finalización en 3/6/19 el número de "días de personas" en 3/6/19 sería 3. Si CJ tiene 2 terminaciones en 3/7/19 y SS tiene 2 terminaciones el 3/7/19, el número de "días de personas" el 3/7/19 sería 2. En este caso, el número de "días de personas" para 2019 sería de 5.
A continuación, puedo tomar el número total de terminaciones (suma de COLC) y dividir por los "días de la gente" para 2019 y obtener un promedio de (9/5) - 4,5 tareas por día.
Se adjuntan mis datos de prueba.
COLA, COLB, COLC, Index
AA, 4/1/2018, 1, 0
AA, 4/2/2018, 0, 1
AA, 4/3/2019, 1, 2
BB, 4/1/2019, 1, 3
BB, 4/2/2018, 1, 4
BB, 4/3/2019, 1, 5
BB, 4/4/2019, 0, 6
CC, 4/1/2019, 1, 7
CC, 4/2/2019, 0, 8
CC, 4/2/2019, 1, 9
DW, 3/2/2018, 1, 10
DW, 3/2/2018, 1, 11
DW, 3/2/2018, 1, 12
CJ, 3/2/2018, 1, 13
CJ, 3/2/2018, 1, 14
DM, 3/2/2018, 1, 15
DM, 3/2/2018, 1, 16
KB, 3/5/2018, 1, 17
DB, 3/5/2018, 1, 18
DW, 3/5/2018, 1, 19
DW, 3/5/2018, 1, 20
DW, 3/5/2018, 1, 21
CJ, 3/5/2018, 1, 22
CJ, 3/5/2018, 1, 23
KB, 3/6/2019, 1, 24
KB, 3/6/2019, 1, 25
DW, 3/6/2019, 1, 26
DW, 3/6/2019, 1, 27
CJ, 3/6/2019, 1, 28
CJ, 3/6/2019, 1, 29
DM, 3/6/2019, 1, 30
DM, 3/6/2019, 1, 31
SS, 3/6/2019, 1, 32
KB, 3/7/2019, 1, 33
KB, 3/7/2019, 1, 34
DB, 3/7/2019, 1, 35
CC, 3/7/2019, 1, 36
DW, 3/7/2019, 1, 37
EH, 3/7/2019, 1, 38
CJ, 3/7/2019, 1, 39
CJ, 3/7/2019, 1, 40
DM, 3/7/2019, 1, 41
DM, 3/7/2019, 1, 42
Aquí están los resultados de las 3 medidas.
Perdón por la confusión.
Hola @Richal ,
Sólo tiene que modificar la medida como se muestra a continuación:
Measure =
CALCULATE(DISTINCTCOUNT('Table'[COLA]),FILTER(ALLEXCEPT('Table','Table'[COLB]),YEAR(SELECTEDVALUE('Table'[COLB]))=MAXX(ALL('Table'),YEAR('Table'[COLB]))&&'Table'[COLC]=1))+0
Y verás:
He modificado el archivo pbix, haga clic aquí.
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.