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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Adición de un indicador de temporada a los productos con la columna calculada

Dispongo de ficha diaria de ventas con fechas, productos e importe de las ventas.

Quiero crear un diagrama de Gantt para capturar visualmente qué productos estuvieron disponibles desde qué fecha hasta qué fecha.

En los datos, tengo un producto de temporada que solo se vende en una temporada específica con el mismo nombre de producto.

Por lo tanto, quiero marcar el ID de temporada de los productos utilizando las columnas calculadas a continuación.

Primero creé esta columna calculada para capturar la brecha entre las últimas ventas y las próximas ventas para marcar la brecha entre la fecha de ventas.

Indicador de brecha de ventas =
VAR AntDate =
CALCULAR(
MÁXIMO('Ventas diarias'[Fecha]),
FILTRO(
'Ventas diarias',
'Ventas diarias'[Nombre del producto] = ANTERIOR('Ventas diarias'[Nombre del producto]) &&
'Ventas diarias'[Fecha] < ANTERIOR('Ventas diarias'[Fecha])
)
)
VAR Días Gap = DATEDIFF(AntDate,'Ventas diarias'[Fecha],DÍA)
VAR SalesGapFlag = SI(ISBLANK(AntDate) || Días Gap > 10,1,0)
DEVOLUCIÓN SalesGapFlag
A continuación, quiero crear otra columna calculada para proporcionar el ID de temporada a los productos.
Es decir, desde la primera marca de brecha de ventas = 1 hasta la siguiente 1, ID de temporada a la marca 0 en ID de temporada y desde el segundo "1" a la tercera "1", ID de temporada a bandera 1 en ID de temporada y así sucesivamente.
Por lo tanto, la identificación de temporada da un número de temporadas en las que se venden los productos.
Sin embargo, la siguiente columna calculada NO funciona.
ID de temporada =
VAR Fecha de ventas = 'Ventas diarias'[Fecha]
VAR SKU = 'Ventas diarias'[Descripción del material]

VAR SeasonID (Identificación de temporada) =
RANKX(
FILTRO(
'Ventas diarias',
'Ventas diarias'[Descripción del material] = SKU &&
'Ventas diarias'[Bandera de brecha de ventas] = 1
),
'Ventas diarias'[Fecha],
,
ASC,
Denso
)

DEVOLUCIÓN SeasonID (Identificación de temporada)
En la primera captura de pantalla, el 16/11/2024 es cuando comienza una nueva temporada, pero el ID de temporada muestra 3, no 4.
En la segunda captura de pantalla, el 15/03/2024 es cuando comienza una nueva temporada, pero el ID de temporada muestra 2, no 3.
Además, cuando hay una brecha en la fecha de venta, se asigna un nuevo ID de temporada, lo cual es incorrecto.
¿Cómo puedo solucionar este problema?
スクリーンショット 2025-06-05 104928.png
スクリーンショット 2025-06-05 105057.png
15 REPLIES 15
Syndicate_Admin
Administrator
Administrator

Hola @hidenseek9

Por favor, pruebe este

Season ID =
VAR CurrentProduct = 'Daily Sales'[Product Name]
VAR CurrentDate = 'Daily Sales'[Date]
VAR GapFlagDates = 
    FILTER(
        'Daily Sales',
        'Daily Sales'[Product Name] = CurrentProduct &&
        'Daily Sales'[Sales Gap Flag] = 1 &&
        'Daily Sales'[Date] <= CurrentDate
    )
RETURN
    COUNTROWS(GapFlagDates) - 1  // Subtract 1 to start Season ID at 0

Si esta publicación ayuda, entonces considere Aceptar como solución para ayudar a los otros miembros a encontrarlo más rápidamente, no olvide dar un "Felicitaciones", ¡realmente lo apreciaría!

Gracias.

@Elena_Kalina

¡Gracias por esto! ¡Esto funciona perfectamente!

Una última pregunta es cuando se usa el gráfico de Gant, y se colocan estas columnas calculadas debajo de la fecha de inicio y la fecha de finalización, solo se toma la temporada de la lista anterior o la última temporada. No se tarda en todas las temporadas que los productos se venden en el gráfico de Gantt.

スクリーンショット 2025-06-13 155102.png

スクリーンショット 2025-06-13 155209.pngスクリーンショット 2025-06-13 155520.png

¿Necesito crear medidas para lograr lo que quiero?

Fecha de lanzamiento =

CALCULAR(

MIN(SalesData[Fecha]),

ALLEXCEPT(SalesData, SalesData[ProductName], SalesData[Season ID])

)

Fecha de descontinuación =

CALCULAR(

MAX(SalesData[Fecha]),

ALLEXCEPT(SalesData, SalesData[ProductName], SalesData[Season ID])

)

Probé estas medidas, pero no funcionaron correctamente.

Estas medidas en realidad devolvieron la fecha más antigua de los datos y la fecha actual y no funcionaron en absoluto.

¡Mucho agradecimiento su apoyo!

Hola @hidenseek9

El problema con el uso de ALLEXCEPT es que, aunque conserva el contexto de filtro para las columnas especificadas, puede entrar en conflicto con otros filtros del informe. SELECTEDVALUE proporciona un control más preciso mediante la captura explícita del contexto del filtro actual.

Estas son las medidas corregidas:

Launch Date = 
VAR CurrentProduct = SELECTEDVALUE('Daily Sales'[Product Name])
VAR CurrentSeason = SELECTEDVALUE('Daily Sales'[Season ID])
RETURN
CALCULATE(
    MIN('Daily Sales'[Date]),
    FILTER(
        ALL('Daily Sales'),
        'Daily Sales'[Product Name] = CurrentProduct &&
        'Daily Sales'[Season ID] = CurrentSeason
    )
)
Discontinued Date = 
VAR CurrentProduct = SELECTEDVALUE('Daily Sales'[Product Name])
VAR CurrentSeason = SELECTEDVALUE('Daily Sales'[Season ID])
RETURN
CALCULATE(
    MAX('Daily Sales'[Date]),
    FILTER(
        ALL('Daily Sales'),
        'Daily Sales'[Product Name] = CurrentProduct &&
        'Daily Sales'[Season ID] = CurrentSeason
    )
)

Además, recomendaría:

  1. Cree una clave compuesta para la identificación única de la temporada agregando esta columna calculada:

Product Season Key = 
'Daily Sales'[Product Name] & "|" & 'Daily Sales'[Season ID]
  1. En visual, agregaría "Clave de temporada del producto" al campo Leyenda, usaría las medidas "Fecha de lanzamiento" y "Fecha de descontinuación" para sus respectivos campos y agregaría "Nombre del producto" al campo Categoría

@Elena_Kalina

Esto es increíble y el gráfico de Gantt está funcionando, pero ¿hay alguna manera de mostrar el mismo producto en la misma fila, en lugar de usar filas adicionales para temporadas adicionales?

El objeto visual se ocupa ahora con demasiadas filas.

スクリーンショット 2025-06-13 171444.png

@hidenseek9

Intentemos el siguiente enfoque:

  1. Eliminar la "clave de temporada del producto" de la leyenda.

  2. Mantenga solo "Nombre del producto" en el campo Filas/Categoría.

  3. Agregue "ID de temporada" al campo Saturación de color o Leyenda.

Esto consolidará todas las temporadas del mismo producto en una sola fila y, al mismo tiempo, las diferenciará visualmente por color.

Si mis sugerencias fueron útiles, no olvide dar un "Felicitaciones", ¡realmente lo agradecería!

¡Gracias!

@Elena_Kalina

Gracias por la sugerencia.

¡Me siento como si ya casi estuviéramos allí!

¿A qué gráfico de Gantt te refieres?

Actualmente estoy usando el diagrama de Gantt del software MAQ y agregué "ID de temporada" al campo Leyenda, pero las filas aún están separadas por ID de temporada como se muestra a continuación.

No sé dónde está el campo "Saturación de color", así que no pude probar esa parte.

¡Gracias por el apoyo!

スクリーンショット 2025-06-14 061926.png

スクリーンショット 2025-06-14 062057.png

Está usando el objeto visual de Gantt by Microsoft Corporation de Power BI Marketplace. Ha creado una columna calculada para la fecha de lanzamiento en lugar de una medida, pero debe habilitar "Tareas de grupo" para mostrar todas las temporadas en una sola fila por producto.

Launch Date Column = 
VAR CurrentProduct = 'Daily Sales'[Product Name]
VAR CurrentSeason = 'Daily Sales'[Season ID]
RETURN
    CALCULATE(
        MIN('Daily Sales'[Date]),
        FILTER(
            ALL('Daily Sales'),
            'Daily Sales'[Product Name] = CurrentProduct &&
            'Daily Sales'[Season ID] = CurrentSeason
        )
    )

Elena_Kalina_1-1750062827857.png

Elena_Kalina_2-1750062866845.png

@Elena_Kalina

Gracias por la respuesta.

Desafortunadamente, mi objeto visual vuelve en blanco como se muestra a continuación.

スクリーンショット 2025-06-16 175011.png

Estoy siguiendo sus instrucciones y utilizando el diagrama de Gantt de Microsoft

スクリーンショット 2025-06-16 175247.png

Activado "Tarea en grupo"

Leyenda - Id. de temporada (columna calculada)

Tarea - Nombre del producto

Fecha de inicio: fecha de lanzamiento (columna calculada)

Fecha de finalización: fecha de discontinuación (columna calculada)

La diferencia en su ejemplo es que la columna calculada de fecha descontinuada en mi caso toma la fecha más antigua, mientras que aparece en su caso, no la especifica.

¿Sabes por qué mi objeto visual vuelve en blanco?

La columna calculada sobre la fecha de lanzamiento y la fecha de descontinuación funcionan perfectamente bien en los datos.

スクリーンショット 2025-06-16 175132.png

スクリーンショット 2025-06-16 175645.png

Estoy usando Measure para la fecha de descontinuación

También probé la medida para la fecha descontinuada, pero todavía devuelve una imagen en blanco.

Las medidas tanto para la fecha de lanzamiento como para la fecha de descontinuación también funcionan correctamente.

スクリーンショット 2025-06-16 183229.png

En qué orden se añaden los altavoces y en qué momento lo visual se convertirá en blanco, quiero decir que tal vez entendamos cuál es exactamente el problema.

Por el momento, es manejable tener productos mostrados en diferentes filas por temporada.

Muchas gracias por todo el apoyo. @Elena_Kalina

Syndicate_Admin
Administrator
Administrator

Hola
Gracias por ponerse en contacto con el foro de la comunidad de Microsoft Fabric.

Proporcione datos de muestra que cubran su problema o pregunta por completo, en un formato utilizable (no como una captura de pantalla).

No incluyas información confidencial. No incluya nada que no esté relacionado con el problema o la pregunta.

Muestre el resultado esperado en función de los datos de muestra que proporcionó.

Saludos
Menaka.
Equipo de apoyo a la comunidad

Hola @hidenseek9 ,

Como no hemos tenido noticias suyas, simplemente seguimos con nuestro mensaje anterior. Me gustaría confirmar si ha resuelto con éxito este problema o si necesita más ayuda.
En caso afirmativo, puede compartir su solución alternativa y marcarla como una solución para que otros usuarios también puedan beneficiarse. Si encuentra una respuesta particularmente útil para usted, también puede marcarla como una solución.
Si aún tiene alguna pregunta o necesita más ayuda, no dude en hacérnoslo saber. Estamos más que felices de seguir ayudándole.
Gracias por su paciencia y esperamos tener noticias suyas.

Hola @hidenseek9 ,

¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.

Gracias.

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

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

Top Solution Authors