VK
Hola,
Soy nuevo en Power BI y en un gráfico me gustaría mostrar los datos de esta semana. Por ejemplo, si la semana comienza el lunes y hoy es lunes, mostrará los datos del lunes. Si hoy es martes, mostrará datos de lunes y martes, si es miércoles, mostrará lunes, martes y miércoles de esta semana, etc.
También estoy tratando de lograr datos similares para «este mes», por lo que no muestra los últimos 30 días, sino que comienza desde el comienzo del mes hasta la fecha de hoy.
¿Podría por favor ayudar a encontrar la dirección correcta? Gracias.
elliotdixon
En respuesta a VK
Hola @VK
Esto es bastante fácil: una de las principales razones por las que me gusta Power BI.
Lo primero es que necesita tener otra tabla que solo tenga Fechas.
Cree un enlace entre los datos de fecha en su tabla de Oportunidades y luego puede crear columnas calculadas en la tabla de fechas que le proporcionarán las respuestas.
1. Tabla de fechas
Una buena tabla para comenzar es http://blog.crossjoin.co.uk/2013/11/19/generating-a-date-dimension-table-in-power-query/
esto le dará fecha, día del mes, año, día de la semana, etc.
Luego crea lo siguiente
Medidas DAX
Hoy:=FECHA(año(ahora()),MES(AHORA()), DIA(AHORA()))
Columnas calculadas DAX
EstáEnElAñoActual
=si(AÑO(AHORA())= [Year],1,0)
WeekOfYearNumber
=NÚMERO DE SEMANA([Date],2)
EstáEnLaSemanaActual
=si([isInCurrentYear] && NUMERO DE SEMANA(AHORA())=[WeekOfYearNumber],1,0)
EsEnElAñoActual = if(AÑO(AHORA())= [Year],1,0)
// Columna para ver si es el año actual
EstáEnLaÚltimaSemana
=si([isInCurrentYear] && (NÚMERO DE SEMANA(AHORA())-1)=[WeekOfYearNumber],1,0)
Son los últimos 30 días
=si(Y([Date]>=[Today]-30,[Date]<=[Today] ),1,0)
YearWeekNum = Concatenar(Fechas[Year],Fechas[WeekOfYearNumber])
DPM = SI(CALCULAR(VALORES(Fechas[YearWeekNum]),Fechas[Date]=HOY()-1,TODAS(Fechas))=Fechas[YearWeekNum]
&& Fechas[Date]<=HOY()-1,"DIM",EN BLANCO())
// muestra si está en la semana actual hasta la fecha – se puede usar como filtro
Fecha relativa = [Date]-Hoy dia()
//muestra la diferencia en días entre hoy y una fecha
// bueno para mirar hacia el futuro o tantos días atrás en el pasado.
EOM = EOMES(Fechas[Date],0)
//Agregue una columna que devuelva verdadero si la fecha en las filas es la fecha actual
SonLosÚltimos7Días = si(Y([Date]>=[Today]-7,[Date]<=[Today]),1,0)
// 1 si es en los últimos 7 días
EsHoy = Tabla.AddColumn(NombreDía, «EsHoy», cada Fecha.EsEnDíaActual([Date]))
//Columna para ver si es el día de hoy.
Uso estas columnas adicionales todo el tiempo.
para su problema, puede simplemente agregar filtros en la página o el informe para lo que desee.
Esperemos que esto funcione.
Rgds
disfunción eréctil
cristiano
Soy nuevo en el uso de Power BI, pero para mí es un poco extraño que sea tan «complicado» para mostrar los valores del mes actual. Llámenme estúpido, pero en mi opinión, esto debería ser posible con solo un clic en las propiedades del gráfico o algo así.
Para mí, la solución con la columna adicional y los valores 0 o 1 encajaron mejor, pero tengo una pregunta adicional que se refiere al problema anterior. ¿Es posible mostrar un Texto con el mes actual en el Dashboard como un titular?
elliotdixon
En respuesta a cristiano
Hola @Christian Tengo el mismo problema.
Para evitar esto, creé una columna llamada Mes año y luego colóquelo en el informe como un objeto visual Multi-Row-Card.
Cuando los filtros aplicados a la página cambien, el valor en esa columna cambiará. La parte superior de enero de 2016 se basa en lo que se selecciona en los filtros. p.ej
Esto funciona a medida que se aplican los filtros.
Otra opción podría ser aplicar isinlastmonth = 1 como filtro en toda la página. Esto eliminará la necesidad de que esos dos filtros manuales se cambien constantemente y siempre deberían mostrar el mes anterior.
Rgds, ED
fureysmyth
En respuesta a elliotdixon
@elliotdixon¿Podría ayudar con algunas columnas calculadas para la tabla datedimm, por favor?
Necesitaría ayuda con las siguientes dimensiones:
Última semana hasta la fecha (es decir, es la fecha entre la semana 1 y la última semana)
Última semana año anterior a la fecha
Trimestre actual (he agregado una nueva columna QtrofYear que muestra el número del trimestre).
Trimestre actual año anterior
Trimestre X
Trimestre X año anterior
Gracias.
greg_deckler
Estas preguntas son imposibles de responder sin algún concepto de sus datos. Por ejemplo, si tiene un campo de fecha, podría usar la función WEEKNUM para obtener la semana actual para esa fecha. Podría tener otra columna que usara WEEKNUM(TODAY()) para obtener el número de la semana actual y una tercera columna que devuelva 1 si son iguales. Luego, solo tiene que configurar su filtro para que solo muestre filas con un 1 en esa tercera columna. Se podría utilizar una técnica similar para el mes hasta la fecha.
O bien, es posible que pueda usar algunas de las funciones de Time Intelligence para llegar allí:
https://support.office.com/en-US/article/Time-Intelligence-Functions-DAX-0571dcda-e4e8-42a8-b205-e1f…
Imposible de decir sin algunos de sus datos reales.
VK
En respuesta a greg_deckler
Gracias por el consejo. Me refería a una de las tablas de objetos de Salesforce llamada «Oportunidad», donde quería especificar diferentes períodos de tiempo en la columna CloseDate para diferentes gráficos.
amysmith
En respuesta a VK
Hola, si lo deseas, podrás obtener más información aquí:
https://www.udemy.com/power-bi-business-intelligence-with-query-onedrive-and-flow/?couponCode=PB7773…
elliotdixon
En respuesta a VK
Hola @VK
Esto es bastante fácil: una de las principales razones por las que me gusta Power BI.
Lo primero es que necesita tener otra tabla que solo tenga Fechas.
Cree un enlace entre los datos de fecha en su tabla de Oportunidades y luego puede crear columnas calculadas en la tabla de fechas que le proporcionarán las respuestas.
1. Tabla de fechas
Una buena tabla para comenzar es http://blog.crossjoin.co.uk/2013/11/19/generating-a-date-dimension-table-in-power-query/
esto le dará fecha, día del mes, año, día de la semana, etc.
Luego crea lo siguiente
Medidas DAX
Hoy:=FECHA(año(ahora()),MES(AHORA()), DIA(AHORA()))
Columnas calculadas DAX
EstáEnElAñoActual
=si(AÑO(AHORA())= [Year],1,0)
WeekOfYearNumber
=NÚMERO DE SEMANA([Date],2)
EstáEnLaSemanaActual
=si([isInCurrentYear] && NUMERO DE SEMANA(AHORA())=[WeekOfYearNumber],1,0)
EsEnElAñoActual = if(AÑO(AHORA())= [Year],1,0)
// Columna para ver si es el año actual
EstáEnLaÚltimaSemana
=si([isInCurrentYear] && (NÚMERO DE SEMANA(AHORA())-1)=[WeekOfYearNumber],1,0)
Son los últimos 30 días
=si(Y([Date]>=[Today]-30,[Date]<=[Today] ),1,0)
YearWeekNum = Concatenar(Fechas[Year],Fechas[WeekOfYearNumber])
DPM = SI(CALCULAR(VALORES(Fechas[YearWeekNum]),Fechas[Date]=HOY()-1,TODAS(Fechas))=Fechas[YearWeekNum]
&& Fechas[Date]<=HOY()-1,"DIM",EN BLANCO())
// muestra si está en la semana actual hasta la fecha – se puede usar como filtro
Fecha relativa = [Date]-Hoy dia()
//muestra la diferencia en días entre hoy y una fecha
// bueno para mirar hacia el futuro o tantos días atrás en el pasado.
MOE = EOMES(Fechas[Date],0)
//Agregue una columna que devuelva verdadero si la fecha en las filas es la fecha actual
SonLosÚltimos7Días = si(Y([Date]>=[Today]-7,[Date]<=[Today]),1,0)
// 1 si es en los últimos 7 días
EsHoy = Tabla.AddColumn(NombreDía, «EsHoy», cada Fecha.EsEnDíaActual([Date]))
//Columna para ver si es el día de hoy.
Uso estas columnas adicionales todo el tiempo.
para su problema, puede simplemente agregar filtros en la página o el informe para lo que desea.
Esperemos que esto funcione.
Rgds
disfunción eréctil
Anónimo
En respuesta a elliotdixon
¡Muchas gracias!
Dhilip
En respuesta a elliotdixon
SonLosÚltimos7Días = si(Y([Date]>=[Today]-7,[Date]<=[Today]),1,0) // 1 si es en los últimos 7 días
¿Podemos hacer que la fórmula anterior muestre un total acumulativo de los últimos 7 días…?
B_Real
En respuesta a elliotdixon
Gran publicación de @elliotdixon! Así que tienes un montón de filtros para determinar si algo cae en los últimos 7 días, en los últimos 30 días o en este año. Esto está bien si queremos aplicar solo uno de los filtros al tablero. Pero, ¿y si queremos que el usuario seleccione qué filtro mostrar? Por ejemplo, digamos que tenemos estos tres filtros:
EstáEnLaSemanaActual
EstáEnLaÚltimaSemana
Son los últimos 30 días
¿Podemos mostrar un solo filtro en el tablero para que el usuario pueda seleccionar cuál de esos tres filtros (semana actual, semana pasada o últimos 30 días)?
En Tableau, estos selectores de tipo ‘semana anterior’, ‘mes anterior’, ‘6 meses anteriores’ (etc.) ya están integrados.
adrianhilo
En respuesta a elliotdixon
¡Muchas gracias @elliotdixon!
Estos han sido invaluables en el diseño de mis primeras incursiones en Power BI y me ayudaron a familiarizarme con DAX por primera vez.
En caso de que otras personas estén buscando aquí una columna calculada ‘IsInCurrentFiscalYear’ que devuelva 1 o 0, aquí hay una que funciona para mí:
IsInCurrentFY = CALCULATE(sumx(dates,if( dates[year] = year(today())-1 && dates[month] >= 7, 1, if(dates[Year]=YEAR(TODAY()) && month(today()) < 7 && month(Dates[Date]) < 7, 1, if(dates[year]=year(today()) && month(today()) > 6 && Dates[Month] > 6, 1, 0)))))
Espero que esto se compruebe…
Gracias de nuevo,
Adrián
greggyb
En respuesta a adrianhilo
@AdrianThread, suponiendo que tiene un campo de año fiscal en su dimensión de fecha:
// Boolean flag, true in current fiscal year CurrentFY = VAR CFY = LOOKUPVALUE( DimDate[FiscalYear] ,DimDate[Date] ,TODAY() ) RETURN DimDate[FiscalYear] = CFY // Integer flag, 1 in current fiscal year CurrentFY = VAR CFY = LOOKUPVALUE( DimDate[FiscalYear] ,DimDate[Date] ,TODAY() ) RETURN 1 * (DimDate[FiscalYear] = CFY)
Es mejor evitar duplicar la misma lógica en varios campos. Dado que es probable que tenga la misma lógica en un [FiscalYear] campo como en su definición de [IsInCurrentFiscalYear], tendrá que preocuparse por mantenerlos sincronizados si encuentra un error. Con las construcciones anteriores, solo define la lógica del año fiscal en un lugar y las actualizaciones se propagan automáticamente.
adrianhilo
En respuesta a greggyb
Gracias @greggyb, no tengo un campo de año fiscal en mis datos sin procesar, así que necesitaba hacer una medida. Ciertamente estoy de acuerdo con no duplicar la lógica en múltiples campos y medidas. Gracias de nuevo.
elliotdixon
En respuesta a adrianhilo
Hola, @AdrianThread: es genial saber que los códigos de fecha funcionan para ti.
Probé su código para el año fiscal, pero obtuve un error.
Las operaciones de comparación de DAX no admiten la comparación de valores de tipo Texto con valores de tipo Integer. Considere usar la función VALOR o FORMATO para convertir uno de los valores.
Creo que tiene que ver con el Mes: ¿cuál es el formato de la columna de su mes?
Tengo MonthNumberOfYear y es solo un número entero 1 – 12.
Salud
avelio
En respuesta a elliotdixon
@elliotdixon ¡Hola!
Gracias por sus excelentes sugerencias. ¡También he encontrado valor en ellos!
¿Existe alguna posibilidad de crear una medida que muestre la suma de las ventas de la semana y el mes actuales?
Estoy tratando de hacer esto porque en la misma pantalla necesito mostrar ambos valores en la misma pantalla y usar una segmentación no me funciona porque filtrará todos mis datos.
He estado buscando en la web durante los últimos días para encontrar una fórmula, pero no tuve éxito.
Sería de gran ayuda para mí si pudiera encontrar una solución a esto.
BR,
Andrei
greggyb
En respuesta a elliotdixon
Tanto el año como el mes en su dimensión de fecha deben ser números enteros con el tipo de datos de números enteros en la columna calculada de @AdrianThread.
cwayne758
En respuesta a adrianhilo
Me resulta más fácil de usar:
=Date.IsInCurrentYear
=Fecha.EstáEnLaSemanaActual
=Fecha.EstáEnMesActual
todas estas funciones se pueden utilizar en el Editor de consultas.
Solo otro método para crear la misma salida.
kenthub
En respuesta a cwayne758
@ cwayne758 Hola, ¿puedes mostrarme una captura de pantalla de dónde colocaste esto junto con un ejemplo de uso de la función? ¡Gracias por adelantado!