Excel如何自动化将多列营业时间合并为指定格式字符串?
门店营业时间自动化合并解决方案
核心公式(Google Sheets)
直接在目标单元格输入以下公式,自动生成格式化的营业时间字符串:
=TEXTJOIN(", ", TRUE, IF(AND(B2=D2=F2=H2=J2, C2=E2=G2=I2=K2), "MON - FRI " & TEXT(B2, "hh:mm") & " - " & TEXT(C2, "hh:mm"), TEXTJOIN(", ", TRUE, IF(B2<>"", "MON " & TEXT(B2, "hh:mm") & " - " & TEXT(C2, "hh:mm"), ""), IF(D2<>"", "TUE " & TEXT(D2, "hh:mm") & " - " & TEXT(E2, "hh:mm"), ""), IF(F2<>"", "WED " & TEXT(F2, "hh:mm") & " - " & TEXT(G2, "hh:mm"), ""), IF(H2<>"", "THU " & TEXT(H2, "hh:mm") & " - " & TEXT(I2, "hh:mm"), ""), IF(J2<>"", "FRI " & TEXT(J2, "hh:mm") & " - " & TEXT(K2, "hh:mm"), "") ) ), IF(L2<>"", "SAT " & TEXT(L2, "hh:mm") & " - " & TEXT(M2, "hh:mm"), "SAT closed"), IF(N2<>"", "SUN " & TEXT(N2, "hh:mm") & " - " & TEXT(O2, "hh:mm"), "SUN closed") )
关键问题解决说明
时间转数字问题:
使用TEXT(时间单元格, "hh:mm")强制将时间格式的数值转为字符串格式,彻底避免自动转换为日期序列号的问题。如果单元格为空(表示当日停业),则输出closed。工作日合并判断:
通过AND(B2=D2=F2=H2=J2, C2=E2=G2=I2=K2)同时验证周一至周五的开门、关门时间是否完全一致:- 一致则直接合并为
MON - FRI 时间区间; - 不一致则逐个列出工作日的营业时间。
- 一致则直接合并为
原公式错误修正:
你之前的公式=IF(AND(A2=C2; A2=E2; A2=G2; A2=I2); "A2"; "NO")存在两个问题:- 引用单元格时加了引号
"A2",会直接显示文本而非单元格内容,应改为A2; - 仅判断了开门时间,未同步验证关门时间,导致合并逻辑不准确。
- 引用单元格时加了引号
内容的提问来源于stack exchange,提问作者Andrew K
相关产品推荐
相关产品推荐

