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
felipekrebs
Helper I
Helper I

Categorizar según fechas

Tengo 2 tablas y quiero obtener de una tabla una categoría según las fechas, el problema es que los parametros de busqueda se repiten, porque para el mismo parametro existen distintas categorias en distintas fechas, por ejemplo, para unit 101 desde 1 de enero hasta 20 de enero es una categoria y desde el 21 de enero hasta el 21 de febrero es otra categoria. Les dejo una muestra de lo que tengo y de lo que quiero obtener.

 

Estaría agradecido de obtener alguna formula que en la columna batch me coloque lo que necesito.

Saludos

 

UnitDateBatch
FWPF-AL-1.012020-01-29 00:00:00Batch1
FWPF-AL-1.012020-01-30 00:00:00Batch1
FWPF-AL-1.012020-01-31 00:00:00Batch1
FWPF-AL-1.012020-02-01 00:00:00Batch1
FWPF-AL-1.012020-02-02 00:00:00Batch1
FWPF-AL-1.012020-02-03 00:00:00Batch1
FWPF-AL-1.012020-02-07 00:00:00Batch1
FWPF-AL-1.012020-02-08 00:00:00Batch1
FWPF-AL-1.012020-02-09 00:00:00Batch1
FWPF-AL-1.012020-02-10 00:00:00Batch2
FWPF-AL-1.012020-02-11 00:00:00Batch2
FWPF-AL-1.012020-02-12 00:00:00Batch2
FWPF-AL-1.012020-02-13 00:00:00Batch2
FWPF-AL-1.012020-02-14 00:00:00Batch2
FWPF-AL-1.012020-02-15 00:00:00Batch2
FWPF-AL-1.012020-02-16 00:00:00Batch2
FWPF-AL-1.012020-02-17 00:00:00Batch2
FWPF-AL-1.012020-02-18 00:00:00Batch2
FWPF-AL-1.012020-02-19 00:00:00Batch2
FWPF-AL-1.012020-02-20 00:00:00Batch2
FWPF-AL-1.022020-02-03 00:00:00Batch1
FWPF-AL-1.022020-02-04 00:00:00Batch1
FWPF-AL-1.022020-02-05 00:00:00Batch1
FWPF-AL-1.022020-02-06 00:00:00Batch1
FWPF-AL-1.022020-02-07 00:00:00Batch1
FWPF-AL-1.022020-02-08 00:00:00Batch1
FWPF-AL-1.022020-02-09 00:00:00Batch1
FWPF-AL-1.022020-02-10 00:00:00Batch1
FWPF-AL-1.022020-02-11 00:00:00Batch1
FWPF-AL-1.022020-02-12 00:00:00Batch1
FWPF-AL-1.022020-02-13 00:00:00Batch1
FWPF-AL-1.022020-02-14 00:00:00Batch1
FWPF-AL-1.022020-02-15 00:00:00Batch1
FWPF-AL-1.022020-02-16 00:00:00Batch1
FWPF-AL-1.022020-02-17 00:00:00Batch1
FWPF-AL-1.022020-02-18 00:00:00Batch1
FWPF-AL-1.022020-02-19 00:00:00Batch1
FWPF-AL-1.022020-02-20 00:00:00Batch1
FWPF-AL-1.032019-10-29 00:00:00Batch3
FWPF-AL-1.032019-10-30 00:00:00Batch3
FWPF-AL-1.032019-10-31 00:00:00Batch3
FWPF-AL-1.032019-11-01 00:00:00Batch3
FWPF-AL-1.032019-11-02 00:00:00Batch3
FWPF-AL-1.032019-11-03 00:00:00Batch3
FWPF-AL-1.032019-11-04 00:00:00Batch3
FWPF-AL-1.032019-11-05 00:00:00Batch3
FWPF-AL-1.032019-11-06 00:00:00Batch3
FWPF-AL-1.032019-11-07 00:00:00Batch3
FWPF-AL-1.032019-11-08 00:00:00Batch3
FWPF-AL-1.032019-11-09 00:00:00Batch3
FWPF-AL-1.032019-11-10 00:00:00Batch3
FWPF-AL-1.032019-11-11 00:00:00Batch3
FWPF-AL-1.032019-11-12 00:00:00Batch3
FWPF-AL-1.032019-11-13 00:00:00Batch3
FWPF-AL-1.032019-11-14 00:00:00Batch3
FWPF-AL-1.032019-11-15 00:00:00Batch3
FWPF-AL-1.032019-11-16 00:00:00Batch3
FWPF-AL-1.032019-11-17 00:00:00Batch3
FWPF-AL-1.032019-11-18 00:00:00Batch3
FWPF-AL-1.032019-11-19 00:00:00Batch3
FWPF-AL-1.032019-11-20 00:00:00Batch3
FWPF-AL-1.032019-11-21 00:00:00Batch3

 

 

BatchUnitFecha inicio
Batch1FWPF-AL-1.0129-01-2020
Batch2FWPF-AL-1.0110-02-2020
Batch1FWPF-AL-1.0203-02-2020
Batch3FWPF-AL-1.0329-10-2019
9 REPLIES 9
Anonymous
Not applicable

I can read Spanish enough to understand, but I certainly can't write in it. Try this formula calculated column:

Column = 
VAR unit = Table1[Unit]
VAR dates = Table1[Date]
RETURN
CALCULATE( 
    MAX(table2[Batch]),
    FILTER( table2,
    table2[Fecha inicio] <= dates && MAX( table2[Fecha inicio]) > dates && table2[Unit] = unit))

Replacing Table1 with the first table and table2 with your second table. 

@Anonymous No me sirvió por completo, en el "Calculate" el MAX de Batch es raro, porque como son palabras, obtener el maximo es un poco complicado, y desde ciertas fechas ya no funcionaba, en cambio si a la formula le colocas MAX(table2[fecha inicio], obtiene perfectamente la fecha de inicio, pero no así el correspondiente Batch, hay alguna manera de solucionarlo. 

Adjunto archivo excel https://alumnosuach-my.sharepoint.com/:x:/g/personal/felipe_krebs_alumnos_uach_cl/ERt2aOs6ji1Bgp4dsF496TEBvNpZtMdS8kBQ5bn9YxGjtw?e=lo7fQA donde con otro ejemplo (practicamente igual solo en que para ponerle ejemplo le puse otras palabras (meses de año)).

Si abren power pivot veran que no funciona correctamente la formula, por ejemplo para la Jaula 1, el batch "Diciembre" no lo detecta bien.

 

 



Anonymous
Not applicable

No entendí del todo bien tu problema, estás intentando agregar la mínima fecha según unit y batch?.

Con la fórmula que postean arriba (min) podrías solucionar el problema.

No, si ves el archivo es el "Batch" correspondiente a la máxima fecha, por ejemplo si en la jaula 1 tengo 120 fechas (algo así como 4 meses) y esta jaula los primeros 35 días quiero que se categórize como X categoría, y desde el 36 al 70 como Y categoría, y podría seguir con muchas más, el tema es que siempre voy a tener las fechas de inicio de las Categorías.
Entonces resumiendo, para cada jaula necesito buscar la máxima fecha (en realidad la categoría asociada a esa máxima fecha) comparada con la fecha actual.
Espero se entienda
Anonymous
Not applicable

Intentando replicar tu ejemplo lo que hice fue crear una columna calculada nueva y le agregúe la siguiente fórmula

MaxBatch = if(Hoja4[Unit] & "-" & Hoja4[Batch] & "-" & Hoja4[Date] = Hoja4[Unit] & "-" & Hoja4[Batch] & "-" &
    CALCULATE(min(Hoja4[Date]);FILTER(
        ALL(Hoja4);
        Hoja4[Unit] = EARLIER(Hoja4[Unit]) &&
        Hoja4[Batch] = EARLIER(Hoja4[Batch])
    )
);1;0
)

Luego arrastré los campos que necesito visualizar a una tabla y en los filtros de visualización, seleccionas filtrado básico = 1. Finalmente obtuve el siguiente resultado.

 

image.png

Espero te sirva.

No, lo que yo necesito es crear la columna "batch" de la tabla grande, a partir de la tabla2 (la mas pequeña), en mi post original, la columan batch yo la coloque manualmente, pero lo que necesito es una columan calculada que me lo coloque automaticamente a partir de las fechas de inicio de cada batch y unit correspondiente, ya que una "unit" a lo largo de su tiempo puede ser batch1, batch2, batch3, y para ello solo tengo las fechas de inicio de cada batch. Espero se entienda mejor ahora mi post original, luego en una respuesta puse otro ejemplo muy muy parecido en un excel, para que se entienda mejor lo que quiero hacer con una data un poco mas grande. @Anonymous 

 

Saludos

Anonymous
Not applicable

Creo entender lo que buscas,

primero que todo lo que hice fue crear una columna calculada en la dimension table (la tabla donde se encuentran los batch).

 

Columna = if(ISBLANK(CALCULATE(MIN('dimension'[Fecha inicio]);FILTER(ALL('dimension');'dimension'[Fecha inicio]>EARLIER('dimension'[Fecha inicio]))));MAX(datos[Date]);CALCULATE(MIN('dimension'[Fecha inicio])-1;FILTER(ALL('dimension');'dimension'[Fecha inicio]>EARLIER('dimension'[Fecha inicio]))))

 

La fórmula anterior lo que hace es obtener la fecha siguiente (menos un día) del siguiente batch, con esto lo que haces es obtener un rango de días para cada categoría

 

Luego en la tabla de datos (fact table), vas a obtener la información del batch que necesitas de la siguiente manera (creando una columna calculada).

 

Columna = CALCULATE(max('dimension'[Batch]);FILTER('dimension';datos[Date]>='dimension'[Fecha inicio] && datos[Date] < 'dimension'[Columna]))

 La fórmula anterior obtiene el batch según el rango de fechas de la tabla de dimensión.

Espero te pueda servir.

Me comentas cualquier cosa.

Saludos!!

No me funciona del todo, creo que hace una confusión entre los distintos batch de cada "unit" (estoy tomando como ejemplo el excel que subi en uno de los comentarios, en un onedrive) , ya que en la tabla de hechos, para la unit 2 hay datos de 4 meses por ejemplo, y en la tabla batch aparece que hay una denominación de batch desde el 3er mes en adelante, y para los datos anteriores debería aparecer nada pero si aparece algo que pertenece a otra unit, después agregué a esa unit un batch entre esas fechas que no había nada y se confundió más entre las unit.

 

Aparte, no habrá alguna forma de hacerlo de manera parecida como lo mencionaba @Anonymous ?, me gustó porque solo necesita una columna calculada en la tabla de hechos y no 2 y se veía mas simple.

 

Saludos

I think the original poster wants to make Table2 from Table1.

So creating a simple measure like:

Fecha inicio = MIN(TableUnit[Date])

and adding it to a table visual with Batch and Unit will do it.

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 Solution Authors