使用公式的条件格式不会跨多行应用样式
Conditional Formatting with formula wont apply styles across multiple rows
我在这里阅读了大量答案,但我认为其中 none 适用于我的问题。
我需要一个基于下拉列表值的彩色列。
如果是Not Paid,A列必须是红色,如果是Paid,则必须是绿色。
当我应用 =K12="Not Paid"
公式时,样式仅适用于一个单元格。如果我选择应用于所有空单元格,它会按预期工作。但是只要我使用任何公式,样式就会到处都是。
有什么想法吗?
这是我正在使用的电子表格示例https://docs.google.com/spreadsheets/d/18Y-2jeKue9aH4gGdKHZjECygo47JFOp2W11C2sy7fJk/edit#gid=553917738
这是因为通过公式进行条件格式化可能有点棘手。您需要的解决方案是:
=K="Not Paid"
这是因为当你使用=K12="Not Paid"时它使用了相对引用。这意味着如果您在 "A12:A2" 等范围内应用此条件公式,对于单元格 "A12",公式将与您编写的完全相同,但对于单元格 "A13",它将具有类似 = 的公式K13="Not Paid",这是不正确的。我希望你能更深入地了解一下 tutorial。
您只需将范围扩展到 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)
我在这里阅读了大量答案,但我认为其中 none 适用于我的问题。
我需要一个基于下拉列表值的彩色列。 如果是Not Paid,A列必须是红色,如果是Paid,则必须是绿色。
当我应用 =K12="Not Paid"
公式时,样式仅适用于一个单元格。如果我选择应用于所有空单元格,它会按预期工作。但是只要我使用任何公式,样式就会到处都是。
有什么想法吗?
这是我正在使用的电子表格示例https://docs.google.com/spreadsheets/d/18Y-2jeKue9aH4gGdKHZjECygo47JFOp2W11C2sy7fJk/edit#gid=553917738
这是因为通过公式进行条件格式化可能有点棘手。您需要的解决方案是:
=K="Not Paid"
这是因为当你使用=K12="Not Paid"时它使用了相对引用。这意味着如果您在 "A12:A2" 等范围内应用此条件公式,对于单元格 "A12",公式将与您编写的完全相同,但对于单元格 "A13",它将具有类似 = 的公式K13="Not Paid",这是不正确的。我希望你能更深入地了解一下 tutorial。
您只需将范围扩展到 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)