【问题标题】:Highlight multiple rows based on a single cell with blanks in between conditional formatting triggers?基于单个单元格突出显示多行,条件格式触发器之间有空格?
【发布时间】:2021-11-21 14:35:31
【问题描述】:

https://docs.google.com/spreadsheets/d/17CRAqPp_1FXQJAN7KtWMnLvmp54_jvBbrB1rES-yBbM/edit#gid=1220119768

第一张是我想要的样张,第二张是新鲜的、未上色的。

我正在尝试根据位于第一行的第一个单元格是否包含某些值来突出显示 3 行。

在这种特定情况下,我有一个锻炼例程类型(上半身、下半身等),并且在一行中的例程名称。接下来的两行是休息信息。我希望其余部分用例程名称/例程类型突出显示。

由于例程类型是旋转的,如示例表所示,类型之后的第二个和第三个单元格实际上是空白的。

我认为最接近的解决方案可能是这个stackoverflow link,但这是一个应用程序脚本,我更喜欢条件格式。当我在这里等待答案时,我将尝试使用 OR 语句,例如

OR($A1="Upper",$A1 - 1= "Upper", $A1 - 2 = "Upper").

奖励:如果可能的话,我也希望这条规则仅适用于两行,但这不是必需的。如果您查看示例表,“静态保持”只有两行。

编辑:这接近我想要的。除了,它只突出显示行中的第一个单元格,而不是整行。有谁知道如何重新配置​​它以跨整行工作?

=IFS($A1="Upper",1,INDIRECT(ADDRESS(ROW()-1, COLUMN()))="Upper",1,INDIRECT(ADDRESS(ROW()-2, COLUMN()))="Upper",1)

【问题讨论】:

    标签: excel if-statement google-sheets vlookup conditional-formatting


    【解决方案1】:

    尝试范围 A1:F:

    =(INDEX(IFNA(VLOOKUP(ROW(A1), IF($A:$A<>"", {ROW(A:A), $A:$A}), 2, 1)))="upper")*($B1<>"")
    

    =(INDEX(IFNA(VLOOKUP(ROW(A1), IF($A:$A<>"", {ROW(A:A), $A:$A}), 2, 1)))="lower")*($B1<>"")
    

    =(INDEX(IFNA(VLOOKUP(ROW(A1), IF($A:$A<>"", {ROW(A:A), $A:$A}), 2, 1)))="back")*($B1<>"")
    

    【讨论】:

    • 完美运行,谢谢。当您有时间时,您能否用外行的术语解释该功能的作用?我理解了一半; IF 语句让我失望。尤其是数组“{ROW(A:A), $A:$A}”。
    • @SugarCereal191126 当然。通俗地说,单元格 A2、A3 和 A4 在视觉上合并为一个单元格,但实际上只有顶部单元格包含值,而 A3 和 A4 为空。这个公式的作用是检查每个单元格是否为空,如果为空,它将从上面获取非空值。如果它不为空,它只会复制实际值。见:i.stack.imgur.com/30prT.png
    【解决方案2】:

    你可以用 3 条规则偏移一行来做到这一点:

    【讨论】:

    • 感谢玩家;您知道将三个条件作为一个公式的任何方法吗?因此,将 Upper 的所有红色公式作为一个公式,将所有绿色 Backs 作为一个公式,等等。我计划将其用于更复杂的工作表,并且每个触发器编写/管理 3+ 个公式会很麻烦。跨度>
    猜你喜欢
    • 2018-04-08
    • 1970-01-01
    • 2018-05-02
    • 2016-04-12
    • 2022-07-07
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多