Google Sheets公式需求:拆分姓名与工时并插入分隔符
Google Sheets 公式整合解决方案
最终整合公式
=IFERROR(ARRAYFORMULA(MAP(Data!A1:H99, LAMBDA(x, IF(x="NO SHIFT", x, IF(REGMATCH(x, "^[A-Za-z ]+\d+h\/\d+h$"), TRIM(REGEXEXTRACT(x, "^[A-Za-z ]+")) & " - " & REGEXEXTRACT(x, "\d+h\/\d+h$"), JOIN(" -"&CHAR(10), TEXT(SPLIT(x, "-"), "h:mm AM/PM")) ) ) ))))
公式逻辑说明
- 优先级判断:先识别
NO SHIFT单元格,直接返回原内容 - 姓名+工时格式处理:
- 用
REGMATCH检测单元格是否符合「姓名+数字h/数字h」的模式(如Firstname Lastname24h/3h) REGEXEXTRACT(x, "^[A-Za-z ]+")提取纯姓名部分,用TRIM清理末尾多余空格REGEXEXTRACT(x, "\d+h\/\d+h$")提取工时部分,拼接为「姓名 - 工时」格式
- 用
- 班次时间格式处理:保留原公式的逻辑,将
9:00-17:00这类时间拆分后格式化为带换行的12小时制时间
注意事项
- 如果姓名包含特殊字符(如连字符、点号),可调整正则表达式为
^[A-Za-z .-]+适配 - 若工时格式有变化(如单工时
8h),修改工时匹配正则为\d+h$即可
内容的提问来源于stack exchange,提问作者Getir NYC
相关产品推荐
相关产品推荐

