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
Anonymous
Not applicable

Días de trabajo netos agrupados por mes

Hola

Estoy tratando de crear una matriz vizual que me permita ver una serie de valores por mes, uno de ellos es el número de días de trabajo netos entre una fecha de inicio y finalización de los proyectos, pero con agrupados por meses (ver ejemplo)

MarzoAbrilPuede

Proyecto1

N.o de días de la Red para el proyecto 1 en marzoN.o de los días de la Red para el proyecto 1 en abril• de días de la Red para el proyecto 1 en mayo
Proyecto2N.o de días de la Red para el proyecto 2 en marzoN.o de los días de la Red para el proyecto 2 en abril• de días de la Red para el proyecto 2 en mayo

Actualmente tengo la siguiente medida que utiliza la fecha de inicio y finalización de los proyectos: ¿cómo puedo revisar el código para agrupar el número de días laborables en su mes asociado?

NetWorkDays ?
VAR Calendar1 - CALENDAR(MAX('Project'[StartDate]),MAX('Project'[EndDate]))
VAR Calendar2 - ADDCOLUMNS(Calendar1,"WeekDay",WEEKDAY([Date],2))
RETURN COUNTX(FILTER(Calendar2,[WeekDay]<6),[Fecha])

1 ACCEPTED SOLUTION
Anonymous
Not applicable

De acuerdo. Aquí hay una posible solución. Por favor, lea la descripción en el archivo y juegue con los datos para entender lo que está pasando.

Mejor

D

View solution in original post

34 REPLIES 34
Anonymous
Not applicable

// First, you should have a Calendar
// in your model that covers all the
// years found in any of the date fields
// in any of your tables. This Calendar
// should be disconnected from the Project
// dimension.
// Second, this Calendar should have all
// the date/time entities defined like
// months, years, day names, and each 
// date should have a column indicator
// to say if it's a working day or not.
// Project dimension stores Projects,
// that is, their ID's, names and start
// and end dates.

// Then you can write this measure:

[Net Work Days] =
var __oneProjectVisible = HASONEVALUE( 'Project'[ProjectID] )
var __startDate = SELECTEDVALUE( Project[StartDate] )
var __endDate = SELECTEDVALUE( Project[EndDate] )
var __result =
 CALCULATE(
  COUNTROWS( 'Calendar' ),
  KEEPFILTERS( __startDate <= 'Calendar'[Date] ),
  KEEPFILTERS( 'Calendar'[Date] <= __endDate ),
  KEEPFILTERS( 'Calendar'[Day Type] = "Working Day" )
 )
return
 if( __oneProjectVisible, __result )

Esta medida devuelve el número de días laborables en el período de tiempo seleccionado actualmente para cualquier proyecto que se haya seleccionado. Si hay más de un proyecto visible, devolverá BLANK ya que no ha definido lo que significa "el número de días laborables si se selecciona más de 1 proyecto". Puede ser que desee el número de días laborables que pertenecen a cualquiera de los proyectos (lo que sería razonable), pero si ese es el caso, tendrá que realizar algunos cambios en el código.

Mejor

D

Anonymous
Not applicable

Además, la matriz tendrá varios proyectos (cargados en la píldora 'Filas') - ¿cómo puedo acomodar?

Anonymous
Not applicable

Si solo tienes un proyecto visible en tu matriz/tabla en cada fila... no tienes que hacer nada. Si hay varios proyectos visibles en el contexto actual, se devolverá BLANK.

Mejor
D
Anonymous
Not applicable

2020-04-12 15_58_39-Couldn't load the data for this visual.png

Anonymous
Not applicable

Las fechas deben ser fechas, los números deben ser números. Asegúrese de que tiene configurados los tipos de datos correctos.

Mejor
D
Anonymous
Not applicable

Mi campo 'Tipo de día' para denotar día laborable es actualmente texto (probablemente causando el error) - ¿Debería ser un indicador entero?

Anonymous
Not applicable

[Net Work Days] =
// ProjectID can be anything but must be the identifier
var __oneProjectVisible = HASONEVALUE( 'Project'[ProjectID] )
// StartDate must be date
var __startDate = SELECTEDVALUE( Project[StartDate] )
// EndDate must be date
var __endDate = SELECTEDVALUE( Project[EndDate] )
var __result =
 CALCULATE(
  COUNTROWS( 'Calendar' ),
  // Calendar[Date] must be date
  KEEPFILTERS( __startDate <= 'Calendar'[Date] ),
  KEEPFILTERS( 'Calendar'[Date] <= __endDate ),
  // Day Type must be text since I equate it
  // to a text vaule
  KEEPFILTERS( 'Calendar'[Day Type] = "Working Day" )
 )
return
 if( __oneProjectVisible, __result )

Mejor

D

Anonymous
Not applicable

Gracias - lo tengo para que no produce un error, pero está devolviendo celdas BLANK. ¿Necesito crear una relación desde la tabla DATE a mi tabla de proyecto?

Anonymous
Not applicable

Esto es lo que puse en la medida originalmente en la cabeza:

En primer lugar, debe tener un calendario
en su modelo que cubre todos los
años encontrados en cualquiera de los campos de fecha
en cualquiera de sus mesas. Este calendario
debe ser DESCONECTADO del Proyecto
Dimensión.
En segundo lugar, este Calendario debería tener todos los
las entidades de fecha y hora definidas como
meses, años, nombres de día, y cada
fecha debe tener un indicador de columna
para decir si es un día de trabajo o no.
La dimensión del proyecto almacena Proyectos,
es decir, sus identificaciones, nombres y
y fechas de finalización.

Mejor
D
Anonymous
Not applicable

Sí - lo vi (pensé que puede ser un error tipográfico) - supongo que no estoy entendiendo cómo funciona la medida - debe colocarse en la matriz como un valor? o en otro lugar?

Anonymous
Not applicable

Arrastre el nombre del proyecto a la matriz. Arrastre los meses en la matriz. Y arrastre la medida en la matriz. La medida siempre estará en el campo Valores. No puedes ponerlo en ningún otro lugar.

Mejor
D
Anonymous
Not applicable

Aquí está la solución. Observe que la segmentación de fecha es dinámica y muestra solo las unidades de tiempo que tienen al menos un proyecto ejecutándose dentro de ellas.

Mejor

D

Anonymous
Not applicable

Muchas gracias - está funcionando perfectamente. Sin embargo, tengo otra capa de complejidad. Necesito multiplicar la fecha de vuelta por un porcentaje. Pensé que sólo podría hacer referencia a la medida en el calc (es decir, networkdays * [columna con %]) que funciona, pero no incorpora el aspecto del mes. ¿Hay alguna manera de actualizar la medida para hacer referencia a la columna por la que necesito multiplicar?

Anonymous
Not applicable

No entiendo cómo se puede multiplicar una fecha por un número... No es posible.

Mejor
D
Anonymous
Not applicable

Lo siento, no estaba claro - lo siguiente destaca lo que tengo que hacer (ahora mismo, la salida no está teniendo en cuenta el mes)

[Porcentaje] * [Medida del día de trabajo neto]

ProyectoPorcentajeDía neto del trabajo (marzo)Salida (marzo)Día neto del trabajo (abril)Salida (abril)
Proyecto 150%94.5157.5
Proyecto 220%224.4205
Anonymous
Not applicable

Seguro que es posible, pero crearía una segunda medida para esto y la nombraría apropiadamente. Si la medida debe funcionar solo en el nivel de mes, debe asegurarse de ello comprobando si el contexto actual solo contiene meses completos y, a continuación, multiplicar la medida por el porcentaje que recorre en iteración a través de Proyectos.

Mejor
D
Anonymous
Not applicable

Gracias, ¿sabrías la mejor manera de hacerlo? Lo sentimos por el seguimiento, si hay documentación que recomendaría que sería apreciada.

Crear una nueva medida ->[Medida del día de la red] * [Categoría Porcentaje?]

Anonymous
Not applicable

Archivo adjunto.

Mejor

D

Anonymous
Not applicable

Eres un santo, muchas gracias por la ayuda 😀

Anonymous
Not applicable

Y una última cosa... Los felicitaciones serían muy apreciados. Que el botón con el pulgar hacia arriba...

Mejor
D

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.

Top Kudoed Authors