Google 表格获取单元格不等于上面单元格的行号

问题描述 投票:0回答:1

我正在制定时间表,并尝试在他们生病或休假的情况下进行条件格式设置,如果下面的单元格为空,则继续进行。

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-sheets google-sheets-formula conditional-formatting
1个回答
0
投票

您可以在 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.

这可确保动态处理您的日程安排,同时保持其针对多次事件的灵活性。

© www.soinside.com 2019 - 2024. All rights reserved.