在Power BI文件夹源中获取最新的更新文件

时间:2020-07-30 08:37:08

标签: excel powerbi dax powerquery m

我有一个包含3个不同子文件夹的文件夹,其中存储一些日常导出。我只想从每个文件夹路径中获取最新的更新文件。正如我在图片中所示。

Current problem

我需要为每个相同的路径保留最新的“日期已修改”文件的二进制和属性列。每个子文件夹的最新修改日期都不同。我的子文件夹指的是一年中的每个月(他们的名字是5月,6月,7月,很快它将合并为8月)。

通过这种方式,由于我在“文件夹路径”列中有3个不同的文件夹路径值,因此我只能扩展3个csv。

我尝试按文件夹路径和修改的最大日期进行分组,但是我丢失了其他字段。如果我添加属性或所有行的最大值,也不能解决我的问题。

我也尝试了以下解决方案:https://community.powerbi.com/t5/Desktop/Keep-only-the-latest-date-for-duplicate-entries/td-p/638447

但是我陷入了一个错误:函数类型值不能转换为表类型。详细信息:值= [功能],类型= [类型]。

M查询代码:

 let
    Source = AzureStorage.DataLake(".../usersDailyData"),
    #"Filtered Hidden Files1" = Table.SelectRows(#"Sorted Rows", each [Attributes]?[Hidden]? <> true),
    #"Invoke Custom Function1" = Table.AddColumn(#"Filtered Hidden Files1", "Transformar archivo", each #"Transformar archivo"([Content])),
    #"Renamed Columns1" = Table.RenameColumns(#"Invoke Custom Function1", {"Name", "Source.Name"}),
    #"Removed Other Columns1" = Table.SelectColumns(#"Renamed Columns1", {"Source.Name", "Transformar archivo"}),
    #"Expanded Table Column1" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transformar archivo", Table.ColumnNames(#"Transformar archivo"(#"Archivo de ejemplo"))),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded Table Column1",{ Columns name here })
in
    #"Changed Type"
    

有什么办法解决吗?

非常感谢您。

1 个答案:

答案 0 :(得分:2)

我建议添加一个列,该列具有每个文件夹路径的最大日期时间,然后将每个行的日期时间与该最大时间进行比较,并过滤掉不匹配项。遵循以下内容。我认为它是在 Invoke Custom Function1 步骤之后执行的,但是您可以将其移动到需要的地方

...    
#"Added Custom" = Table.AddColumn(#"Invoke Custom Function1","MaxDate",(i)=>List.Max(Table.SelectRows( #"Invoke Custom Function1", each [Folder Path]=i[Folder Path]) [Date modified]), type datetime ),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom", each if [Date modified]=[MaxDate] then "keep" else null),
#"Filtered Rows" = Table.SelectRows(#"Added Custom1", each ([Custom] = "keep")),
...