提取具有多个日期的行的最小最大日期

问题描述 投票:0回答:2

如何分割带有多板日期的行中的最小日期和最大日期

这在超级查询中

8/31/2018, 8/29/2018, 4/9/2018, 8/29/2018, 8/29/2018

结果在不同的列中

min            max
29/8/2019      4/9/2019

有人可以帮我弄清楚吗?

powerquery powerpivot
2个回答
0
投票

您的输入数据中没有日期29/8/2019(或与2019年有关的任何日期)。您还提供了一个“结果”为day/month/year。这可能只是几次输入错误,但是使您的“结果”和问题都不清楚,也很难理解。

如果我已正确理解,以下方法之一应该可行。


如果您的初始表如下所示(所有日期均为month/day/year格式,并且是单个逗号分隔的字符串的一部分:]

Input table

然后我得到此输出(注意列minmax):

Output table

使用此代码:

let
    initialTable = Table.FromRows({{"8/31/2018, 8/29/2018, 4/9/2018, 8/29/2018, 8/29/2018"}}),
    split = Table.AddColumn(initialTable, "datesToCheck", each List.Transform(Text.Split([Column1], ","), each Date.FromText(_, "en-US")), type list),
    minAndMax = Table.AddColumn(split, "toExpand", each [min = List.Min([datesToCheck]), max = List.Max([datesToCheck])], type record),
    expanded = Table.ExpandRecordColumn(minAndMax, "toExpand", {"min", "max"})
in
    expanded

但是,如果您的初始表如下所示(日期以其自己的列开头):

Input table

然后我得到此输出(注意列minmax):

Output table

使用下面的代码:

let
    initialTable = Table.FromRows({List.Transform({"8/31/2018", "8/29/2018", "4/9/2018", "8/29/2018", "8/29/2018"}, each Date.FromText(_, "en-US"))}),
    split = Table.AddColumn(initialTable, "datesToCheck", each Record.FieldValues(_), type list),
    minAndMax = Table.AddColumn(split, "toExpand", each [min = List.Min([datesToCheck]), max = List.Max([datesToCheck])], type record),
    expanded = Table.ExpandRecordColumn(minAndMax, "toExpand", {"min", "max"})
in
    expanded

0
投票

@@ Chillin,我无法将代码粘贴到“添加评论”中,因此我将此处粘贴为完整代码:让来源= Etapa_1_Caricam,#“分组的行” = Table.Group(来源,{“数字表单”},{{“ mynewtable”,每个_,类型表[数字表单=文本,DupForm =文本,Creado En =日期,FechaCreac =日期,SLA =编号,发起方名称=文本,业务单位=文本,业务单元描述=文本,Tipo表格=文本,Descripcióndel proyecto =文本,Texto tarea =文本,Field12 =编号,已分配任务=文本,状态=编号]}}) ,#“ Added Custom” = Table.AddColumn(#“分组行”,“ Task_Etapa1”,每个Table.Column([mynewtable],“ Texto tarea”)),#“ Extracted Values” = Table.TransformColumns(#“ Added Custom”,{“ Task_Etapa1”,每个Text.Combine(List.Transform(,Text.From),“,”),键入text}),#“ Added Custom1” = Table.AddColumn(#“提取值”,“ Iniciador”,每个Table.Column([mynewtable],“发起者名称”)),#“ Extracted Values1” = Table.TransformColumns(#“ Added Custom1”,{“ Iniciador”,每个Text.Combine(List.Transform(,Text.From),“,”),键入text}),#“ Extracted Text Before Delimiter” = Table.TransformColumns(#“ Extracted Values1”,{{“ Iniciador”,每个Text.BeforeDelimiter(,“,”),键入text}}),#“ Added Custom2” = Table.AddColumn(#“分隔符之前的提取文本”,“ Custom”,每个Table.Column([mynewtable],“Descripcióndel proyecto”)),#“ Extracted Values2” = Table.TransformColumns(#“ Added Custom2”,{“ Custom”,每个Text.Combine(List.Transform(,Text.From),“,”),键入text}),#“在分隔符之前插入文本” = Table.AddColumn(#“提取值2”,“在分隔符之前文本”,每个Text.BeforeDelimiter([自定义],“,”),键入text),#“已移除列” = Table.RemoveColumns(#“在分隔符之前插入文本”,{“ Custom”}),#“ Renamed Columns” = Table.RenameColumns(#“ Removed Columns”,{{“ Delimiter之前的文本”,“ Descripcion del Proyecto”}}),#“ Added Custom3” = Table.AddColumn(#“重命名列”,“ FechaInicio”,每个Table.Column([mynewtable],“ Creado En”)),#“ Extracted Values3” = Table.TransformColumns(#“ Added Custom3”,{“ FechaInicio”,每个Text.Combine(List.Transform(,Text.From),“,”),输入text}),#“在Delimiter1之前插入文本” = Table.AddColumn(#“提取值3”,“在Delimiter之前文本”,每个Text.BeforeDelimiter([FechaInicio],“,”),键入text),#“分隔符后插入文本” = Table.AddColumn(#“分隔符前插入文本1”,“分隔符后插入文本”,每个Text.AfterDelimiter([FechaInicio],“,”),键入text),#“ Removed Columns1” = Table.RemoveColumns(#“分隔符后插入文本”,{“分隔符后插入文本,”分隔符前插入文本“}),#“ Delimiter1之前的提取文本” = Table.TransformColumns(#“ Removed Columns1”,{{“ FechaInicio”,每个Text.BeforeDelimiter(,“,”),键入text}}),#“ Added Custom4” = Table.AddColumn(#“ Delimiter1之前的提取文本”,“ FechaFinalTarea”,每个Table.Column([mynewtable],“ FechaCreac”)),#“ Extracted Values4” = Table.TransformColumns(#“ Added Custom4”,{“ FechaFinalTarea”,每个Text.Combine(List.Transform(_,Text.From),“,”),键入text})在#“提取值4”

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.