用Power Query解,供参考...
1、首列中的每个日期如果是标准的日期格式,那"变形"这一步最后的
(x,y)=>Number.From(not (try Date.From(y))[HasError])
可以改为
(x,y)=>Number.From(y is datetime)
2、最后一步“输出”的作用是把3列日期转换为日期格式,避免加载到表的时候日期变成数字。
这一步可以省略,等加载到表后,把那3列日期设置单元格格式为日期格式。
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
变形 = Table.Combine(
Table.Group( 源,
"商品编号",
{ "a", each #table( {"录入日期","录入单号","门店","仓位"}
&
Table.ColumnNames(源),
List.Transform( List.Skip(Table.ToRows(_),4),
(z)=>List.FirstN([商品编号],4)&z) ) },
0,
(x,y)=>Number.From(not (try Date.From(y))[HasError]) ) [a]
),
输出 = Table.TransformColumns( 变形,
List.Transform( {"录入日期","生产日期","到期日期"},
each {_,Date.From} )
)
in
输出