Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more
Hola amigos,
Necesito crear un objeto visual en el que el eje x en el gráfico de barras represente el mes-año, mientras que el eje y muestre la medida de % op (creé el archivo GitHub adjunto).
Además, el modelo se ha cargado con una tabla de objetivos que muestra el porcentaje objetivo al final de cada mes.
Problema: el objeto visual no muestra la imagen correcta al agregar el % objetivo al gráfico de líneas.
El archivo de trabajo con datos de muestra como referencia https://github.com/priyam2790/PBI/blob/main/target.pbix
Hola @ - verifique que la relación entre la tabla de hechos y la tabla de destino esté configurada correctamente.
La relación debe basarse en la columna Mes-Año o en la dimensión de tiempo equivalente, lo que garantiza una relación de uno a varios o de varios a uno en función del modelo.
Compruebe también la granularidad de los datos. Los valores de % objetivo deben alinearse con la granularidad de la columna Mes-año.
Si la tabla de hechos tiene datos diarios, pero la tabla de destino es de nivel mensual, es posible que deba agregar las medidas (por ejemplo, usar AVERAGE o SUM según corresponda). Gestione los valores que faltan en la tabla de destino rellenando los huecos con 0 o BLANK().
Verifique los casos anteriores, si el problema persiste, buscará en el archivo PBIX compartido.
Hola @rajendraongole1 Esas sugerencias me ayudaron a resolver el problema. Se debió a la relación entre la dimensión de fecha y la tabla de destino. Ahora lo he actualizado en función del mes-año.
Como parte del requisito, podría ayudarme a actualizar el archivo pbix compartido anteriormente para resolver los siguientes dos puntos:
Requisitos:
1. En la vista predeterminada, el período de 12 meses se centró en el mes actual
es decir, necesitamos completar los valores del gráfico de barras de los 6 meses anteriores y los valores del gráfico de barras vacíos para los próximos 6 meses, aunque la línea objetivo aún debería aparecer para los valores de barras vacías
2. Codificación de colores: si la línea objetivo está por encima de la barra, entonces rojo, si el objetivo está por debajo de la barra, entonces verde y si el objetivo y la barra en la misma línea, entonces azul.
Muchas gracias por el apoyo.
Hola
No hay ningún archivo allí. Comparte de nuevo el enlace con la relación que has realizado. Si es posible, muestre el resultado esperado (en formato de tabla).
Hola @Ashish_Mathur - Por favor, compruébelo ahora, debería ver el archivo en el enlace. Subí el archivo con la relación corregida allí.
1. En la vista predeterminada, el período de 12 meses se centró en el mes actual
es decir, necesitamos completar los valores del gráfico de barras de los 6 meses anteriores y los valores del gráfico de barras vacíos para los próximos 6 meses, aunque la línea objetivo aún debería aparecer para los valores de barras vacías
Cuando comience enero de 2025, las barras y la línea objetivo deben ser para los meses 2024-07, 2024-08, 2024-09, 2024-10, 2024-11, 2024-12, 2025-01, y los próximos 6 meses sin barras, solo línea objetivo. Esto debería cambiar dinámicamente para todos los meses en adelante.
2. Codificación de colores: si la línea objetivo está por encima de la barra, entonces rojo, si el objetivo está por debajo de la barra, entonces verde y si el objetivo y la barra en la misma línea, entonces azul.
Avíseme si necesito compartir más detalles sobre el requisito.
@Ashish_Mathur @rajendraongole1 Lo sentimos, la solución en el archivo adjunto no es según el requisito.
En la vista predeterminada, el período de 12 meses se centra en el mes actual
es decir, necesitamos completar los valores del gráfico de barras de los 6 meses anteriores y los valores del gráfico de barras vacíos para los próximos 6 meses, aunque la línea objetivo aún debería aparecer para los valores de barras vacías
Cuando comience enero de 2025, las barras y la línea objetivo deben ser para los meses 2024-07, 2024-08, 2024-09, 2024-10, 2024-11, 2024-12 y 2025-01. Durante los próximos seis meses, no habrá barras, solo una línea objetivo. Esto debería cambiar dinámicamente para todos los meses en adelante.
Hola @
¿El método que proporcioné resuelve su problema? Si es así, ¿podría aceptarlo como una solución? Esto ayudará a más usuarios que se enfrentan a dificultades iguales o similares. ¡Gracias!
Por favor, no dude en informarme si todavía hay problemas.
Saludos
Yulia Xu
Hola @
Gracias por la respuesta de rajendraongole1 y Ashish_Mathur.
Si he entendido correctamente, ¿su requisito es mostrar las barras y la línea de destino de los seis meses anteriores y la línea de destino de los próximos seis meses en el objeto de visualización en función del valor de la segmentación? Luego muestra colores en función de diferentes condiciones, pero necesito consultar con usted, ¿necesita cambiar el color de la barra o la línea? Según mis pruebas, me temo que si necesita cambiar el color de la línea en función de diferentes condiciones, ahora no es posible.
Por favor, refiérase a la siguiente prueba.
1. Cree una tabla calculada como segmentación
Slicer = VALUES('Date'[Month-Year])
2. Cree dos medidas de la siguiente manera
Measure = 
VAR _selected = SELECTEDVALUE(Slicer[Month-Year])
VAR _pre6 = EOMONTH(_selected, -7) + 1
VAR _next6 = EOMONTH(_selected, 6)
RETURN
IF(MAX('Date'[Date]) >= _pre6 && MAX('Date'[Date]) <= _next6, 1, 0)
formatting = SWITCH(TRUE(),
[% op] > [fully op %], "green",
[% op] = [fully op %], "blue",
[% op] < [fully op %], "red")
3. Coloque la medida en los filtros de nivel visual, configure mostrar elementos cuando el valor sea 1.
Según tengo entendido, esto tiene que aparecer hasta 2025/7. He mirado sus datos brutos y, dado que los datos brutos solo tienen datos hasta 2025/6, no es posible mostrar datos hasta julio en este lado. Si se agregan nuevos datos en el futuro, deberían aparecer hasta julio.
Lo siguiente es sobre la configuración de color.
Salida:
Saludos
Yulia Xu
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Hola @v-xuxinyi-msft - Muchas gracias. Esto cumple con el requisito. ¿Podría decirme por qué creamos una tabla de segmentación independiente para mes-año y no tomamos la columna mes-año de la tabla de fechas?
Sin embargo, ¿también puedes decirme
1) ¿Cómo configurar la cortadora en el mes actual de forma predeterminada?
2) ¿Cómo ordenar el año de la cortadora en orden alfabético? Estoy usando el formato de fecha "YYYY-MMM" en la segmentación.
Por lo tanto, el requisito es que el filtro debe tener todos los meses-años ordenados en orden alfabético. La selección debe estar en el mes y año actuales cada vez que se abre el informe.
¡Gracias!
Hola @
Según las pruebas, dado que el eje x utiliza la columna mes-año de la tabla Fecha, y dado que existe una relación entre la tabla Fecha y las demás tablas, el filtrado solo filtrará los datos que correspondan a la opción, por lo que necesitamos una tabla independiente. De lo contrario, se vería de la siguiente manera:
Puede crear una columna calculada en la tabla de segmentación.
Column = IF(YEAR('Slicer'[Month-Year]) = YEAR(TODAY()) && MONTH('Slicer'[Month-Year]) = MONTH(TODAY()), "Current", FORMAT('Slicer'[Month-Year], "YYYY-MMM"))
A continuación, la columna se utiliza como campo para la segmentación.
A continuación, modifique la medida de la siguiente manera:
Measure = 
VAR _selected = CALCULATE(MAX('Slicer'[Month-Year]), FILTER('Slicer', [Column] = SELECTEDVALUE('Slicer'[Column])))
VAR _pre6 = EOMONTH(_selected, -7) + 1
VAR _next6 = EOMONTH(_selected, 6)
RETURN
IF(MAX('Date'[Date]) >= _pre6 && MAX('Date'[Date]) <= _next6, 1, 0)
Salida:
Debe marcar la opción del mes actual una vez, y luego, cuando abra el archivo en el futuro, la opción del mes actual se marcará de forma predeterminada.
Saludos
Yulia Xu
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
@v-xuxinyi-msft Gracias por investigar esto rápidamente.
Lo sentimos, pero los valores de la segmentación no están ordenados en orden cronológico.
Por ejemplo, en la segmentación de datos y el eje x, debería:
Opción 1 -> Ene-2024, Feb-2024, Mar-2024,....,Dic-2024, Ene-2025, Feb-2025, etc
Opción 2 -> 2024-Enero, 2024-Febrero, 2024-Marzo,....,2024-Diciembre, 2025-Enero, 2025-Febrero, etc
La prioridad es la opción 1
Le agradezco que haya investigado este tema. ¡Gracias!
Hola @
Puedes probar lo siguiente.
"La prioridad es la opción 1", luego debe cambiar el formato de la columna Mes-Año en cada tabla a 'MMM-AAAAA'.
Primero está la tabla de segmentación, en la vista de tabla, seleccione la columna Columna y ordene por la columna Mes-año.
Para el eje x, actualmente se usa la columna Mes-Año de la tabla Fecha, pero dado que el mismo Mes-Año tiene diferentes valores de Fecha, no se puede ordenar en función de la columna Fecha. Por lo tanto, utilicé la columna Mes-año de la tabla de destino como eje x y la ordené en función de la Month_End_Date de la columna de destino de la tabla.
Salida:
Espero que esto te ayude.
Saludos
Yulia Xu
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
@v-xuxinyi-msft Ok, gracias por esto.
Solo hay una pregunta final del cliente de que, en lugar de completar el mes y el año en el eje x, necesitamos la fecha de fin de mes, por ejemplo, 30/6/2024, 31/7/2024, etc. como base móvil como era antes.
¿Puedo tomar esto de la fecha o de la tabla de destino? ¿Requeriría esto también alguna actualización de la medida?
Hola @
Si he entendido bien, ¿es necesario presentar el eje x al final de cada mes?
Por favor, refiérase a la siguiente prueba.
Cree una columna calculada en la tabla Fecha y, a continuación, use esa columna como eje x.
EndOfMonth = EOMONTH('Date'[Date], 0)
Eliminar la estructura jerárquica
Salida:
Saludos
Yulia Xu
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Hola @v-xuxinyi-msft Según mi análisis, la columna EndOfMonth = EOMONTH('Date'[Date], 0)
no estaba dando los valores correctos para la barra, ya que quiero op % el último día del mes.
Por lo tanto, creé las siguientes dos columnas en la tabla de fechas para cumplir con el requisito.
endofmonth =
VAR maxsalesdate = ENDOFMONTH(ventas[fecha])
VAR lastdateofmonth = ENDOFMONTH(Date_Table[Date])
VAR MaxSalesDateOfMonth = MIN(maxsalesdate, lastdateofmonth)
DEVOLUCIÓN
SI (
Date_Table[Fecha] = MaxSalesDateOfMonth, Date_Table[Fecha], BLANK()
)
Fin de mes = SI
(
Date_Table[endofmonth] <> BLANK(), Date_Table[endofmonth],
si(
Date_Table[Fecha]> máx(ventas[fecha]) && MES(máx(ventas[fecha])) <> MES(Date_Table[Fecha]),
ENDOFMONTH(Date_Table[Fecha]),
BLANK()
)
)
Hola @
Me alegra saber que resolviste tu problema. ¿Podría marcar las respuestas útiles y su solución como "Aceptar como solución"? Esto ayudará a más usuarios que se enfrentan a dificultades iguales o similares. ¡Gracias!
Saludos
Yulia Xu
Hola
Eso es lo que hace mi solución. Vuelva a verificar y señale el defecto exacto.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
Check out the October 2025 Power BI update to learn about new features.