编辑 2:根据您评论中的文件,我重构了公式以使用空格
基于此单元格布局:
使用这个公式:
=TEXTJOIN("-",TRUE,
IFERROR(INDEX(M$3:M3,MAX((M$3:M3<>"")*(ROW(M$3:M3)))-ROW(M$3)+1),""),
IFERROR(IF(MAX((N$3:N3<>"")*(ROW(N$3:N3)))-ROW(N$3)+1<MAX((M$3:M3<>"")*(ROW(M$3:M3)))-ROW(M$3)+1,"",INDEX(N$3:N3,MAX((N$3:N3<>"")*(ROW(N$3:N3)))-ROW(N$3)+1)),""),
IFERROR(IF(OR(MAX((O$3:O3<>"")*(ROW(O$3:O3)))-ROW(O$3)+1<MAX((M$3:M3<>"")*(ROW(M$3:M3)))-ROW(M$3)+1,MAX((O$3:O3<>"")*(ROW(O$3:O3)))-ROW(O$3)+1<MAX((N$3:N3<>"")*(ROW(N$3:N3)))-ROW(N$3)+1),"",INDEX(O$3:O3,MAX((O$3:O3<>"")*(ROW(O$3:O3)))-ROW(O$3)+1)),""),
IF(P3<>"",IFNA(INDEX(P$3:P3,MAX((P$3:P3<>"")*(ROW(P$3:P3)))-ROW(P$3)+1),""),""))
编辑 3:如果你有它,你可以使用 LET 函数来简化它
=LET(
a,MAX((M$3:M3<>"")*(ROW(M$3:M3)))-ROW(M$3)+1,
b,MAX((N$3:N3<>"")*(ROW(N$3:N3)))-ROW(N$3)+1,
c,MAX((O$3:O3<>"")*(ROW(O$3:O3)))-ROW(O$3)+1,
d,MAX((P$3:P3<>"")*(ROW(P$3:P3)))-ROW(P$3)+1,
TEXTJOIN("-",TRUE,
IFERROR(INDEX(M$3:M3,a),""),
IFERROR(IF(b<a,"",INDEX(N$3:N3,b)),""),
IFERROR(IF(OR(c<a,c<b),"",INDEX(O$3:O3,c)),""),
IF(P3<>"",IFNA(INDEX(P$3:P3,d),""),"")))
让我知道它是否适合你!