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.
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ículo | Fecha1 | Fecha2 | Fecha3 |
1 | 1/1/2020 | 2/5/2020 | 3/6/2020 |
1 | 2/2/2020 | 5/5/2020 | |
2 | 2/24/2020 | 5/31/2020 | 6/6/2020 |
3 | 1/20/2020 | 3/6/2020 | |
3 | 2/14/2020 | 3/12/2020 | 5/5/2020 |
3 | 6/3/2020 | ||
4 | 5/7/2020 | ||
4 | |||
5 |
Me gustaría crear una tabla basada en lo anterior que se ve así:
Artículo | Fecha1 | Fecha2 | Fecha3 |
1 | 2/2/2020 | 5/5/2020 | |
2 | 2/24/2020 | 5/31/2020 | 6/6/2020 |
3 | 6/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'
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!
@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:
@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:
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
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
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
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |