(Nuevo en DAX desde QlikView) – suma de la cantidad de días hábiles entre la fecha mínima y máxima en la tabla Tx

Un usuario Pregunto ✅

TimMarsh

Hola a todos, perdón por la Q aparentemente simple. Primero revisé la red para calcular, etc.

(No se pueden publicar los datos ya que son datos de salud).

Tengo dos mesas:

Una tabla de datos/transacciones (FACTS) y una tabla de calendario relacionada, vinculadas por un campo de fecha.

Para cada Registro Tx, agrego un Contador de registros de 1.

No recibo una transacción todos los días, puedo tener 7 un día, 0 al siguiente, etc.

Lo que quiero hacer es:

1. Cuente la cantidad de días hábiles y días (dos variables) entre mi fecha mínima y máxima en la tabla de datos. (De nuevo, nuevo en DAX desde QlikView, esto sería fácil en Qlik, y estoy seguro de que también lo será aquí).

2. Quiero sumar el número de contadores de registros y dividirlo por el número de días hábiles para calcular el número de transacciones por día hábil.

Agregué un DAX de IsWorkDay a mi tabla de Calendario:

=IF([Day Of Week Number]>0 && [Day Of Week Number]<6,1,0)

Entonces sé si un día de la semana es un día de trabajo.

Tengo dos medidas en mi tabla Tx para Max y Min Date:

MaxDate:=Max([Date2])

Lo mismo para MinDate.

Lo que debo hacer es sumar la cantidad de días entre MinDate y MaxDate donde el indicador IsWorkDay en la tabla Calendario es 1.

amichandak

@TimMarsh, Idealmente sum(IsWorkDay) debería funcionar ya que la segmentación proviene de esta tabla.

o puedes probar

medida =
var _max = maxx(todas las seleccionadas(Fecha),Fecha[Date])
var _min = minx(todas las seleccionadas(Fecha),Fecha[Date])
volver calcular(sum(IsWorkDay), filter(Allselected(Date),Date[Date]>=_min && Fecha[Date]<=_máx))

nathani

Hola @TimMarsh,

Puedes echar un vistazo a estos vídeos.

Saludos,

Nathani duro

Agradecer con un Kudos!! (Haga clic en el botón Me gusta)

¿Respondí tu pregunta? ¡Marca mi publicación como una solución!

amichandak

@TimMarsh, Idealmente sum(IsWorkDay) debería funcionar ya que la segmentación proviene de esta tabla.

o puedes probar

medida =
var _max = maxx(todas las seleccionadas(Fecha),Fecha[Date])
var _min = minx(todas las seleccionadas(Fecha),Fecha[Date])
volver calcular(sum(IsWorkDay), filter(Allselected(Date),Date[Date]>=_min && Fecha[Date]<=_máx))

TimMarsh

En respuesta a amichandak

Hola @amitchandak, y gracias! (¡Sé amable, soy muy nuevo en esto!)

No puedo usar una cortadora (creo) ya que en realidad quiero calcular para usar como medida.

Esto es lo que usé como medida, pero obtuve un resultado de 1. ¿Hay alguna manera de mostrar las variables para ver qué valor están almacenando?

Me pregunto si es porque Date2 es una marca de tiempo, por ejemplo, 7/06/2020 12:00:00 a.m.

** EDITAR, mi función min fue maxx. ¡ahora trabajando!

NUM WORK DAYS:=
var 
	_max = maxx(ALLSELECTED('Table1 1'),'Table1 1'[Date2])
var 	
	_min = maxx(ALLSELECTED('Table1 1'),'Table1 1'[Date2])
RETURN 
calculate(sum('Calendar'[IsWorkDay]), filter(Allselected('Calendar'),'Calendar'[Date]>=_min && 'Calendar'[Date]<=_max))

Calendar es mi tabla de calendario, Table 1 1 es mi tabla FACTS y Date2 es mi campo de fecha en la tabla 1 y está vinculado a Date in Calendar.

amichandak

En respuesta a TimMarsh

@TimMarsh, ¿cuáles son las fechas seleccionadas en la cortadora? Además, cuando se unió a una fecha con el cortador de fechas de la tabla, debe estar en la tabla de fechas.

¿Puede compartir datos de muestra y resultados de muestra en formato de tabla?

TimMarsh

En respuesta a amichandak

@amitchandak

Sí, datos no identificados adjuntos.

https://www.dropbox.com/s/i18d6pjiy4wq3ob/Excel%20Reports%20-%20share.xlsx?dl=0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *