我正在制定时间表,并尝试在他们生病或休假的情况下进行条件格式设置,如果下面的单元格为空,则继续进行。
https://docs.google.com/spreadsheets/d/1qYITz2bVGFzRffsnKnvtyiiGOwcwPW6eC0j9bVb-kYA/edit?usp=sharing
在工作表上,所有内容都是动态的,因此名称可以是 3-12 行之间的任何位置,并且可以出现多次,具体取决于它们是否被安排到多个部门(但它们总是至少以 3 为一组)。
所以我想做的是获取列中的最后一个值,如果该行为空则重复它,我通过使用以下方法来做到这一点:
=index(filter($B$2:$B2,$A$2:$A2=$A2),counta(filter($B$2:$B2,$A$2:$A2=$A2)))
它会一直工作,直到找到该名称的另一个出现(如鲍勃所见)。
所以,我现在尝试仅搜索该行不等于其上方的行的位置:
=if(A2<>A1,row(),)
但是我如何让它重复这个数字直到它发生变化,如 K 列所示。
有更简单的方法吗?
您可以在 Google 表格中实现此目的,方法是使用 ARRAYFORMULA、IF 和 LOOKUP 的组合来重复列中的最后一个非空白值(如果单元格为空白)。这是处理您的情况的优化公式:
=数组公式(IF(A2:A="",LOOKUP(行(A2:A),ROW(A2:A)*(A2:A<>""),A2:A),A2:A))
说明:
• ARRAYFORMULA 允许将公式应用于整个范围,而不仅仅是一个单元格。 • IF(A2:A="", ...) 检查单元格是否为空白。 • LOOKUP(ROW(A2:A), ROW(A2:A)*(A2:A<>""), A2:A) 查找当前单元格上方的最后一个非空白值并重复它。
即使名字(如“Bob”)在不同的区块中多次出现,这种方法也有效。它将继续传播最后一个值,直到找到新值。
您还可以对“生病”或“休假”等状态应用条件格式:
1. Select the range where you want the formatting.
2. Use Custom Formula with:
=$B2="生病了"
或
=$B2=“请假”
3. Set the desired formatting style.
这可确保动态处理您的日程安排,同时保持其针对多次事件的灵活性。