【问题标题】:Conditional Formatting with formula wont apply styles across multiple rows带有公式的条件格式不会跨多行应用样式
【发布时间】:2020-01-22 04:45:01
【问题描述】:

我在这里阅读了大量答案,但我认为没有一个适用于我的问题。

我需要有一个基于下拉列表值的彩色列。 如果是未付费,A栏必须是红色,如果是付费,它必须是绿色。

当我应用=K12="Not Paid" 公式时,样式仅适用于一个单元格。如果我选择适用于所有空单元格,它会按预期工作。但是一旦我使用任何公式样式,就会到处都是。

有什么想法吗?

这是我正在使用的电子表格的示例https://docs.google.com/spreadsheets/d/18Y-2jeKue9aH4gGdKHZjECygo47JFOp2W11C2sy7fJk/edit#gid=553917738

【问题讨论】:

    标签: google-sheets google-sheets-formula gs-conditional-formatting


    【解决方案1】:

    您只需将范围扩展到 K12:K,例如:


    更新:

    设 R10 为:

    =ARRAYFORMULA({K12; IF(IF(LEN(B11:B&D11:D&K11:K), VLOOKUP(ROW(A11:A), IF({IFERROR(REGEXEXTRACT(K12:K,
     "Undefined|Quote|Accepted|In-progress|Cancelled|On-hold|Not Paid|Paid 50%|Closed"));""}<>"", {row(A11:A), {IFERROR(REGEXEXTRACT(K12:K,
     "Undefined|Quote|Accepted|In-progress|Cancelled|On-hold|Not Paid|Paid 50%|Closed"));""}}), 2, 1), )<>"",   IF(LEN(B11:B&D11:D&K11:K), VLOOKUP(ROW(A11:A), IF({IFERROR(REGEXEXTRACT(K12:K,
     "Undefined|Quote|Accepted|In-progress|Cancelled|On-hold|Not Paid|Paid 50%|Closed"));""}<>"", {ROW(A11:A), {IFERROR(REGEXEXTRACT(K12:K,
     "Undefined|Quote|Accepted|In-progress|Cancelled|On-hold|Not Paid|Paid 50%|Closed"));""}}), 2, 1), ), QUERY(IF(LEN(B11:B&D11:D&K11:K), VLOOKUP(ROW(A11:A), IF({IFERROR(REGEXEXTRACT(K12:K,
     "Undefined|Quote|Accepted|In-progress|Cancelled|On-hold|Not Paid|Paid 50%|Closed"));""}<>"", {ROW(A11:A), {IFERROR(REGEXEXTRACT(K12:K,
     "Undefined|Quote|Accepted|In-progress|Cancelled|On-hold|Not Paid|Paid 50%|Closed"));""}}), 2, 1), ), "offset 1", 0))})
    


    和 S9 是:

    =ARRAYFORMULA({"";IF(INDIRECT("R9:R"&ROWS(A9:A)-1)="", 1, )})
    


    那么红色将是:

    =($R11="Not Paid")*($S11<>1)
    


    绿色将是:

    =($R11="Closed")*($S11<>1)
    

    【讨论】:

    • 感谢您的参与。但是,我认为我没有正确解释自己。我知道如何为状态单元格设置条件格式。我需要根据状态颜色向单元格列(A11 到 A26)添加新的条件格式
    • 如果您不介意辅助列 (?) 也可以
    • 好吧,只要它不复杂,让我的床单变得凌乱或沉重,我不介意。不过我很好奇
    • 但我不知道它是如何工作的......就像 len 做什么?为什么需要 B & D 专栏?
    • LEN 检查字符数,因此结合=IF(LEN(A1), true, false) 表示“如果 A1 包含超过 0 个字符,则为真,否则为假”。和 B & D 列是“需要”的,因为它们中的行(组合)大多是填充的
    【解决方案2】:

    这是由于通过公式进行的条件格式设置可能有点棘手。您需要的解决方案是:

    =K$12="Not Paid"
    

    这是因为当您使用 =K12="Not Paid" 时,它会使用相对引用。这意味着如果您在“A12:A2”之类的范围内应用此条件公式,对于单元格“A12”,公式将与您编写的完全相同,但对于单元格“A13”,它将具有像 =K13="Not 这样的公式付费”,这是不正确的。我希望你能更深入地看看这个tutorial

    【讨论】:

    • 谢谢@Jonas Negri。我认为那是我所缺少的。额外感谢教程链接,它已损坏,但我在另一个资源上找到了有关相对引用和绝对引用的信息..
    • 我想知道是否真的可以添加更多动态条件格式,这样我就不必为每个状态一个一个地重新创建颜色?
    • 像,是否可以做一些事情,例如:如果 K12 有颜色,A11:A26 单元格背景也应该匹配它
    • 据我所知,原生 Google 表格没有这样的东西。使用 Google Scripts 这将是一件简单的事情,但这需要一个“onEdit”脚本。
    • 我想我还是把事情复杂化了哈哈。
    猜你喜欢
    • 1970-01-01
    • 2020-04-14
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多