Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Resumir la columna de fecha con más de un criterio

Hola

¿Hay alguna manera de resumir una tabla basada en dos informaciones de la misma columna (en este caso, "Fecha/hora de registro")? Por ejemplo, actualizo una hoja de cálculo diariamente y tengo que calcular cuánto tiempo trabajaron algunos empleados el día anterior. Sin embargo, debo calcular este tiempo haciendo una resta del primer y último registro de cada persona, pero una persona puede (y en realidad) tener más de un registro de inicio de sesión y disconect en el mismo día.

WhatsApp Image 2022-05-14 at 11.13.46 PM.jpeg

No puedo publicar mi código DAX porque hasta ahora no tengo nada todavía. He intentado calcularlo usando SUMMARIZE, pero cada fórmula no funcionó correctamente. ¿Puede alguien ayudarme a encontrar una solución, por favor? Imaginé una manera de hacerlo al principio resumiendo la tabla de hechos en una más pequeña y luego haciendo la resta de los valores (Disconect - Log in), pero si uno sabe cómo calcularlo sin este paso intermedio, es decir, simplemente hacer el cálculo sin resumir la tabla de hechos, realmente aprecio la ayuda. Gracias de antemano.

PD: si es más fácil calcular/filtrar en DAX en lugar de Power Query o al revés, no hay problema, porque puedo usar cualquiera de estos.

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

@pedrohp503 puede compartir la tabla de ejemplo (no una captura de pantalla) y le escribiré el código.
(Puede copiar y pegar una tabla en el cuerpo del mensaje)

Oye, @SpartaBI.

Este enlace (o este, en caso de que el primero no funcione) contiene el archivo de ejemplo de archivo que sugirió. Ese archivo es solo un ejemplo reducido, porque no puedo compartir el original debido a la información confidencial de mi trabajo.

Gracias de antemano.

@pedrohp503 estos son los pasos:
1. Cree esta columna calculada en 'Tabla Planilha1':

log Date = DATE(YEAR(Planilha1[Log date/time]), MONTH(Planilha1[Log date/time]), DAY(Planilha1[Log date/time])) 

SpartaBI_0-1652636134007.png

2. No está relacionado con la solución, pero es una nota muy importante: creó una relación entre la tabla de fechas y la columna datetime en 'Planilha1'. Esto no funcionará como piensas. No es un grupo por más bien una coincidencia exacta. Esta es otra razón para crear la columna de fecha desde el punto 1 hasta el modelo. A continuación, cree la relación como 1 a muchos con esta columna:

SpartaBI_1-1652636293753.png


3. Volviendo a la solución: Cree esta tabla calculada:

Summarized table = 
ADDCOLUMNS(
		SUMMARIZE(
			Planilha1,
			Planilha1[Employee],
			Planilha1[log Date],
			Planilha1[Status]
		),
		"Log date/time", 
			IF(
				Planilha1[Status] = "Log in",
				CALCULATE(MIN(Planilha1[Log date/time])),
				CALCULATE(MAX(Planilha1[Log date/time]))
			)
	)

SpartaBI_2-1652636349974.png


4. Luego crea la tabla final (podría haberlo hecho en un solo paso, pero es bueno verlo para aprender porpuses para ti):

Ultimate Table = 
ADDCOLUMNS(
    SUMMARIZE(
        'Summarized table',
        'Summarized table'[Employee],
        'Summarized table'[log Date]
    ),
    "Elapsed time", 
        CALCULATE(MAX('Summarized table'[Log date/time]))
                - CALCULATE(MIN('Summarized table'[Log date/time]))
)

SpartaBI_3-1652636442088.png


5. Formatee esa columna de tiempo transcurrido de esa manera:

SpartaBI_4-1652636525203.png


2022-05-09 22_36_04-Power BI Workspace Datasets License Permissions - Microsoft Power BI Community.png

Informe de presentación – Contoso by SpartaBI


SpartaBI_3-1652115470761.png SpartaBI_1-1652115142093.png SpartaBI_2-1652115154505.png

Full-Logo11.png

Wow, no puedo decir nada más que gracias, amigo. Era exactamente lo que pretendía hacer y funcionó perfectamente.

Solo un punto: dijiste que para aprender porpuses lo divides a través de dos pasos, sin embargo, podrías haberlo hecho en uno solo. ¿Podría explicarme cómo hacerlo en un solo paso? Mi modelo es un gran conjunto de datos y para reducir el tamaño del archivo prefiero hacerlo de una sola vez.

Una vez más, gracias de antemano.

@pedrohp503 seguro,

EVALUATE
ADDCOLUMNS(
    SUMMARIZE(
        'Planilha1',
        'Planilha1'[Employee],
        'Planilha1'[log Date]
    ),
    "Elapsed time", 
        CALCULATE(MAX('Planilha1'[Log date/time]), 'Planilha1'[Status] = "Disconect" )
                - CALCULATE(MIN('Planilha1'[Log date/time]), 'Planilha1'[Status] = "Log in" )
)



Preste atención a que en este caso peter tiene un dato diferente en 01/02/2022. En los datos que le proporcionaste, solo se desconecta ese día, pero no inicia sesión. En caso de que esto sea algo que pueda suceder, debe decidir cómo desea lidiar con eso. Cada verison de la solución puede ser de cualquier manera, por supuesto.
Además, preste atención con respecto a la palabra "disconect". Dejé el error tipográfico allí para que su fórmula no se rompa.


2022-05-09 22_36_04-Power BI Workspace Datasets License Permissions - Microsoft Power BI Community.png

Informe de presentación – Contoso by SpartaBI


SpartaBI_3-1652115470761.png SpartaBI_1-1652115142093.png SpartaBI_2-1652115154505.png

Full-Logo11.png

También funcionó bien, @SpartaBI.

Muchas gracias por la exhaustiva explicación.

@pedrohp503 mi placer :). También puede aceptar el mensaje de solución alternativa como una solución para la visabilty comunitaria.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.