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
jt024
Frequent Visitor

Crear tabla basada en otra tabla según criterios

Hola

Soy nuevo en PBI y espero que alguien aquí pueda ayudarme por favor.

Tengo una tabla entrando en PBI con la siguiente estructura:

ArtículoFecha1Fecha2Fecha3
11/1/20202/5/20203/6/2020
12/2/20205/5/2020
22/24/20205/31/20206/6/2020
31/20/20203/6/2020
32/14/20203/12/20205/5/2020
36/3/2020
45/7/2020
4
5

Me gustaría crear una tabla basada en lo anterior que se ve así:

ArtículoFecha1Fecha2Fecha3
12/2/20205/5/2020
22/24/20205/31/20206/6/2020
36/3/2020
4
5

Así que básicamente en la segunda tabla:

1. El artículo tiene que ser único

2. Las reglas para seleccionar las fechas para las columnas Date1, Date2 y Date3 son:

- Si el artículo tiene varias fechas, seleccione la fecha más reciente y colóquela en la mesa. (por ejemplo, en el punto 1 de la primera tabla, el artículo 1 aparece dos veces y hay fechas para cada en la columna Fecha1 y, a continuación, seleccione la fecha más reciente. Igual que Date2, hay 2 fechas, así que selecciona la fecha más reciente. Pero en la columna Date3, solo uno tiene una fecha, así que ignore este / no muestre ningún valor).

- Si el artículo no tiene fecha, no se muestra ningún valor

- Si el elemento aparece más de una vez y uno de ellos no tiene fecha, entonces no se muestra ningún valor (por ejemplo, en el punto 4 en la primera tabla, el artículo 4 aparece dos veces, pero en la columna date1 sólo hay 1 fecha llenada en lugar de dos, entonces no se debe mostrar ninguna fecha).

¿Cómo obtengo la Tabla 2 en PowerBI? ¿Debo hacer esto en PowerQuery (fórmula M?) o Dax?

¿Puede alguien por favor apuntarme en la dirección correcta?


Gracias de antemano por su ayuda. Es muy apreciado.

'No'

5 REPLIES 5
jt024
Frequent Visitor

Gracias a todos por su ayuda. Estaba pensando en algo complicado como crear cada columna usando una fórmula y todo eso y contar duplicados y luego compararlos, pero me alegro de que la Agrupación en PowerQuery lo hiciera más fácil. Gracias por enseñarme esta función. ¡Agradezco su ayuda!

Christophe
Helper II
Helper II

@jt024 Aquí hay un truco para trabajar alrededor de su regla especial con celdas vacías. btw tenga en cuenta que en Power Query las celdas se marcarán como null en lugar de vacío.

1. En Power Query, seleccione las tres columnas de fecha y reemplace todas las celdas nulas con una fecha en el futuro, por ejemplo 9/9/9000.

2. Seleccione la columna del elemento, Transformar > Agrupar por de la siguiente manera:

MaxDates.png

3. Utilice replace para cambiar 9/9/9000 de nuevo a null.

Aquí está el resultado final:

MaxDatesFinal.png

Christophe
Helper II
Helper II

@jt024 Aquí hay un truco para trabajar alrededor de su regla especial con celdas vacías. btw tenga en cuenta que en Power Query las celdas se marcarán como null en lugar de vacío.

1. En Power Query, seleccione las tres columnas de fecha y reemplace todas las celdas nulas con una fecha en el futuro, por ejemplo 9/9/9000.

2. Seleccione la columna del elemento, Transformar > Agrupar por de la siguiente manera:

3. Utilice replace para cambiar 9/9/9000 de nuevo a null.

Aquí está el resultado final:

MaxDatesFinal.png

mahoneypat
Employee
Employee

Esto es más fácil de hacer en la consulta. A continuación se muestra un ejemplo M sobre cómo hacerlo con sus datos. Para ver cómo funciona, simplemente cree una consulta en blanco, vaya a Editor avanzado y reemplace el texto allí con el código M a continuación. El paso modificado "Filas agrupadas" es el que necesitará para adaptarse a su consulta.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bY1BDsAgCAS/YjybIAvaxxj//402GEqNvW3YYXaMzLlkJiZU1CeCmkehvuIsCwPBuxZYsh6r1wDkdfavSGwP9Vhxk5iJNQA+Zx3sJPHtBjXy+i/Sdmn7Zd4=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Item = _t, Date1 = _t, Date2 = _t, Date3 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Item", Int64.Type}, {"Date1", type date}, {"Date2", type date}, {"Date3", type date}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Item"}, {{"Date1", each if List.Contains([Date1], null) then null else List.Max([Date1]), type nullable date}, {"Date2", each if List.Contains([Date2], null) then null else List.Max([Date2]), type nullable date}, {"Date3", each if List.Contains([Date3], null) then null else List.Max([Date3]), type nullable date}})
in
    #"Grouped Rows"

Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Anonymous
Not applicable

Power Query sería un enfoque más fácil con las siguientes transformaciones
1. Utilice Columnas despvoro -> Seleccionar columna - Elemento y en Columnas despivot seleccione despivot otras columnas

2. Utilice Agrupar por --> En grupo por ventana, seleccione Elemento como columna, Operación - Máximo y valor en la columna

usted debe tener 1 entrada para un artículo con fecha máxima

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.