如何从字符串值(以分隔符分隔的单元格中的日期)制成列表

时间:2019-05-27 22:33:21

标签: excel powerbi dax powerquery

我有一个这样的表(只有一列,所有日期都写在一个单元格中,由定界符分隔)。如何从这些值中列出日期,并计算特定行中的MAXMIN值?

values
1. 01. 2019;5. 07. 2016;3. 05. 2014;1. 04. 2019;7. 04. 2016
2. 01. 2019;6. 07. 2016;2. 01. 2019;3. 01. 2019;8. 04. 2016
3. 01. 2019;7. 07. 2016;4. 01. 2019;9. 07. 2016
8. 07. 2016;8. 07. 2016;9. 07. 2016;4. 01. 2019;10. 04. 2016
5. 01. 2019;3. 04. 2019;8. 04. 2016;11. 04. 2016
6. 01. 2019;2. 04. 2019;6. 01. 2019;6. 07. 2016

我尝试做List.Max([values]),但这不起作用。

2 个答案:

答案 0 :(得分:1)

您可以将单个列的每条记录Transform添加到list的日期中,然后为MinMax值添加列:

let
    Source = YourTable
    #"Listed Dates" = Table.TransformColumns(Source, {{"Column1", each List.Transform(Text.Split(_,";"), each Date.FromText(_))}}),
    #"Added Min" = Table.AddColumn(#"Listed Dates", "Min Date", each List.Min([Column1]), type date),
    #"Added Max" = Table.AddColumn(#"Added Min", "Max Date", each List.Max([Column1]), type date)
in
    #"Added Max"

有关工作示例,请参见https://pwrbi.com/so_56333087/

答案 1 :(得分:0)

我首先添加一个Index列(以保留行上下文),然后将 values 列(按定界符)拆分为Rows(高级选项)。这将为每个分隔的子字符串(日期)产生一行。

然后,我将使用“使用区域设置更改类型”将结果 values 列转换为Date数据类型。它可能首先需要一些字符串操作,例如用空字符串替换空格。

最后,我将汇总列的最大值和最小值,并按索引列(在上面添加)进行分组。