The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hola a todos
¿Cómo puedo filtrar para mostrar solo la fila con la fecha más reciente para cada externalid a continuación?
Así que solo la fila con 07/05/2022 para 3929 se mostraría ya que es la última fecha.
Solved! Go to Solution.
Datos base:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjazNFDSUXLNLcjJr0wtUvDJTEzKzMksqVTwzCsuLUrMS04FShsZGBnpm+obGivF6gD1WBpZAgUDivLTUouLM/PzEnOAqlNSc/Nw6DNH1obXBuJUGkJUxgIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [externalid = _t, doctype = _t, Expiry = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"externalid", Int64.Type}, {"doctype", type text}, {"Expiry", type date}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"externalid"}, {{"allrows",each Table.AddIndexColumn(
Table.Sort(_,{{"Expiry",
Order.Ascending}}), "Row Rank",1,1), each _, type table [externalid=nullable number, doctype=nullable text, Expiry=nullable date]}}),
#"Expanded allrows" = Table.ExpandTableColumn(#"Grouped Rows", "allrows", {"externalid", "doctype", "Expiry", "Row Rank"}, {"allrows.externalid", "allrows.doctype", "allrows.Expiry", "allrows.Row Rank"}),
#"Filtered Rows" = Table.SelectRows(#"Expanded allrows", each ([allrows.Row Rank] = 1))
in
#"Filtered Rows"
Resultado final:
recomienda:
https://data-witches.com/2020/10/21/adding-a-row-rank-based-on-a-different-column-with-power-query/
Saludos
Lucien
La solución aceptada actualmente depende de modificar el código M en el editor avanzado. Esto no es necesario. La forma de hacerlo es agrupar en doctype y agregar en el Máximo de caducidad, agregar un nivel agregado llamado expansión y seleccionar todas las filas. El siguiente paso es expandir y agregar una columna condicional con el nombre "Latest?". Compare la columna Expiry con la columna Max of Expiry, y si es igual, ingrese "latest", de lo contrario "null". Filtrar la columna "¿Más reciente?" en "más reciente". Si es necesario, puede eliminar las columnas "Max of Expiry" y "¿Último?", y listo.
Datos base:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjazNFDSUXLNLcjJr0wtUvDJTEzKzMksqVTwzCsuLUrMS04FShsZGBnpm+obGivF6gD1WBpZAgUDivLTUouLM/PzEnOAqlNSc/Nw6DNH1obXBuJUGkJUxgIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [externalid = _t, doctype = _t, Expiry = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"externalid", Int64.Type}, {"doctype", type text}, {"Expiry", type date}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"externalid"}, {{"allrows",each Table.AddIndexColumn(
Table.Sort(_,{{"Expiry",
Order.Ascending}}), "Row Rank",1,1), each _, type table [externalid=nullable number, doctype=nullable text, Expiry=nullable date]}}),
#"Expanded allrows" = Table.ExpandTableColumn(#"Grouped Rows", "allrows", {"externalid", "doctype", "Expiry", "Row Rank"}, {"allrows.externalid", "allrows.doctype", "allrows.Expiry", "allrows.Row Rank"}),
#"Filtered Rows" = Table.SelectRows(#"Expanded allrows", each ([allrows.Row Rank] = 1))
in
#"Filtered Rows"
Resultado final:
recomienda:
https://data-witches.com/2020/10/21/adding-a-row-rank-based-on-a-different-column-with-power-query/
Saludos
Lucien
en la tabla del documento, cree un nuevo colum.
donde escribe la línea pr True/false si esta es la fecha más reciente para este ID externo.
Nuevo colum:
Max_date_by_esternal_ID =
SI(
calculate(Max(Document[Date], filter(document, Document[ExternalID], Earlier([Document[ExternalID])))=Document[Date] ,
Verdadero(),
Falso()
)
El EARLIER tomará el ID externo de la línea en la que se encuentra actualmente y lo usará como filtro para obtener la fecha máxima
AHORA tienes una columna TRUE / False que puedes usar como filtro
Los míos se ven así y funcionan
así que obtendrías 3 líneas verdaderas
Dado que el identificador externo 3929 tiene 2 fechas de caducidad que son la fecha más reciente disponible para ese identificador
Hola
si desea filtrar en power query:
y ya está.
Si esta publicación es útil para ayudarlo a resolver su problema, considere darle a la publicación un pulgar hacia arriba y aceptarla como una solución.
Arrepentido
No entendí tu pregunta.
Si eres capaz de publicar algunos datos de muestra (para ello puedes seleccionar los colums y con el botón derecho seleccionar copiar y luego pegar aquí) creo que es posible
@serpiva64 esto sólo devuelve la fecha más reciente para la columna DocType
No devuelve el documento más reciente para cada ExternalID
¿Cómo puedo hacer esto en Power Query?
Prueba algo similar
CALCULATE (
MAX ( calendertable[Date] ),
FILTER (
ALL ( calendertable[Date] ),
salestable[TotalSales]>0
)
))