Google 表格 - 将名称/日期/时间列表转置并格式化为日程表样式格式

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

我有来自以这种格式导出到表格的应用程序的数据,并尝试获取一个公式来重新格式化它:

员工姓名 轮班日期 存储 轮班开始 轮班结束 人 人 22/04/24 我们店
人 人 23/04/24 我们店
人 人 24/04/24 我们店
人 人 25/04/24 我们店
人 人 26/04/24 我们店
人 人 27/04/24 我们的商店 2024-04-27 16:00:00 2024-04-28 0:00:00 人 人 28/04/24 我们店
人 PersonB 22/04/24 我们的商店
人 PersonB 23/04/24 我们的商店
人 PersonB 24/04/24 我们的商店
人 PersonB 25/04/24 我们的商店
人 PersonB 26/04/24 我们的商店
人 PersonB 27/04/24 我们的商店
人 PersonB 28/04/24 我们的商店 2024-04-28 16:00:00 2024-04-29 0:00:00 人 PersonC 22/04/24 我们的商店
人 PersonC 23/04/24 我们的商店
人 PersonC 24/04/24 我们的商店 2024-04-24 16:15:00 2024-04-25 0:00:00 人 PersonC 25/04/24 我们的商店 2024-04-25 16:15:00 2024-04-26 0:00:00 人 PersonC 26/04/24 我们的商店
人 PersonC 27/04/24 我们的商店 2024-04-27 15:15:00 2024-04-28 0:00:00 人 PersonC 28/04/24 我们的商店 2024-04-28 15:15:00 2024-04-29 0:00:00 ...

这是我希望的样子(注意,轮班日期列显示日/月/年,但轮班开始和结束显示格式为年-月-日的日期。此外,在原始版本中单词“EmployeeName”组合在一起,我想在格式化版本中将它们分开):

员工姓名 2024年4月22日星期一 2024年4月23日星期二 2024年4月24日星期三 2024年4月25日星期四 2024年4月26日星期五 2024年4月27日星期六 2024年4月27日星期六 2024年4月28日星期日 人 人 4:00 PM 中午 12:00

人人B 4:00 PM 12:00 AM 人 PersonC 4:15 PM 4:15 PM 3:15 PM 3:15 PM 上午 12:00 上午 12:00 上午 12:00 上午 12:00
人 PersonD 4:15 PM 6:45 AM 上午 12:00 下午 3:15

尝试了查询和转置命令的组合,但我还不够熟练,无法让它在任何接近我需要的地方进行格式化。

google-sheets format google-sheets-formula formula transpose
1个回答
0
投票

你可以试试:

=let(Σ,tocol(,1), Λ,unique(torow(Data!B2:B,1),1), reduce(Σ,unique(tocol(Data!C2:C,1)),lambda(a,c,ifna(vstack(if(iserror(a&""),Σ,a),c,hstack("Employee Name",Λ), reduce(Σ,unique(filter(Data!A:A,Data!C:C=c)),lambda(f,q,vstack(f,hstack(q,map(Λ,lambda(y,index(let(z,tocol(xlookup(q&y,Data!A:A&Data!B:B,Data!D:E)),if(z="",,text(z,"HH:MM AM/PM")))))))))),)))))

enter image description here

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