如何在Excel列中找到含特定文本的上一个单元格?Schedule列求助
解决Excel Schedule列交替显示A/B的问题
问题根源
原公式仅检查上一行单元格,当遇到周末/特殊日的空白单元格时,无法回溯到最近的有效A/B值,导致#N/A错误。
修正公式(非数组)
=IFS( OR([@WeekDay]="Saturday",[@WeekDay]="Sunday"), "", [@Special]<>"", [@Special], ROW()=2, "A", LOOKUP(2,1/($A$2:A1<>""),$A$2:A1)="A", "B", LOOKUP(2,1/($A$2:A1<>""),$A$2:A1)="B", "A" )
替换$A$2:A1为你的Schedule列实际引用(比如Schedule在C列就改成$C$2:C1)
各部分作用
- 周末空白:优先级最高,周六/周日直接返回空值
- 特殊日优先:Special列有内容时直接显示该内容
- 首行初始化:表头下第一行(ROW=2)固定设为"A"
- 定位最近有效值:
LOOKUP(2,1/($A$2:A1<>""),$A$2:A1)会自动跳过空白,找到上方最近的A/B值 - 交替切换:根据找到的上一个值,自动切换为另一个(A→B,B→A)
关键细节
- 公式里的
$A$2:A1是混合引用,向下填充时会自动扩展范围,确保每次都能回溯到当前行以上的所有单元格 - 无需按
Shift+Enter,直接回车即可生效
内容的提问来源于stack exchange,提问作者zukakog
相关产品推荐
相关产品推荐

