具有命名范围的条件格式
Conditional formatting with named ranges
我试图在第一行值和 header 列与 Google Sheet 中命名范围内的值匹配时格式化 table 单元格。我已经用 TRUE 和 FALSE 的公式解决了它,但我不能将它用于条件格式。
示例Sheet:
https://docs.google.com/spreadsheets/d/1MpViBGIOYoeMpB2zpb81hwlNOJcShP86OHYlI92mKGA/edit?usp=sharing
我的来源table:
--> 命名范围 "mapping_name" 和 "mapping"
+-------+--------+---------+-----------+
| | | | |
+-------+--------+---------+-----------+
| name1 | Monday | Tuesday | |
| name2 | Monday | | Wednesday |
| name3 | | | |
+-------+--------+---------+-----------+
我的table待格式化:
+-------+--------+---------+-----------+--+--+
| | Monday | Tuesday | Wednesday | | |
+-------+--------+---------+-----------+--+--+
| name1 | True | True | True | | |
| name2 | True | True | False | | |
| name3 | False | False | False | | |
+-------+--------+---------+-----------+--+--+
我的公式是这样的
=OR(ARRAYFORMULA((B = index(mapping;match($A35;mapping_name;0))) * ($A35 = index(mapping_name;match($A35;mapping_name;0)))))
B34 是带工作日的 header
A35为名称栏
公式有效,但我无法将其转换为适用于条件格式的格式。如有任何帮助,我们将不胜感激!
在你的 'expected result' table 中,我使用了这个公式来进行条件格式化
=ISNUMBER(MATCH($A18&"_"&B, ArrayFormula(TRANSPOSE(SPLIT(TEXTJOIN("@", 1, $A:$A&"_"&$B:$D), "@"))), 0))
或者,如果您想使用命名范围,请尝试
=ISNUMBER(MATCH($A18&"_"&B, ArrayFormula(TRANSPOSE(SPLIT(TEXTJOIN("@", 1, INDIRECT("mapping_name")&"_"&INDIRECT("mapping")), "@"))), 0))
(注意在命名范围两边使用引号。)
看看这对你有用吗?
尝试:
=MATCH(B4, $B:$D, 0)=COLUMN(A1)
我试图在第一行值和 header 列与 Google Sheet 中命名范围内的值匹配时格式化 table 单元格。我已经用 TRUE 和 FALSE 的公式解决了它,但我不能将它用于条件格式。
示例Sheet: https://docs.google.com/spreadsheets/d/1MpViBGIOYoeMpB2zpb81hwlNOJcShP86OHYlI92mKGA/edit?usp=sharing
我的来源table: --> 命名范围 "mapping_name" 和 "mapping"
+-------+--------+---------+-----------+
| | | | |
+-------+--------+---------+-----------+
| name1 | Monday | Tuesday | |
| name2 | Monday | | Wednesday |
| name3 | | | |
+-------+--------+---------+-----------+
我的table待格式化:
+-------+--------+---------+-----------+--+--+
| | Monday | Tuesday | Wednesday | | |
+-------+--------+---------+-----------+--+--+
| name1 | True | True | True | | |
| name2 | True | True | False | | |
| name3 | False | False | False | | |
+-------+--------+---------+-----------+--+--+
我的公式是这样的
=OR(ARRAYFORMULA((B = index(mapping;match($A35;mapping_name;0))) * ($A35 = index(mapping_name;match($A35;mapping_name;0)))))
B34 是带工作日的 header A35为名称栏
公式有效,但我无法将其转换为适用于条件格式的格式。如有任何帮助,我们将不胜感激!
在你的 'expected result' table 中,我使用了这个公式来进行条件格式化
=ISNUMBER(MATCH($A18&"_"&B, ArrayFormula(TRANSPOSE(SPLIT(TEXTJOIN("@", 1, $A:$A&"_"&$B:$D), "@"))), 0))
或者,如果您想使用命名范围,请尝试
=ISNUMBER(MATCH($A18&"_"&B, ArrayFormula(TRANSPOSE(SPLIT(TEXTJOIN("@", 1, INDIRECT("mapping_name")&"_"&INDIRECT("mapping")), "@"))), 0))
(注意在命名范围两边使用引号。)
看看这对你有用吗?
尝试:
=MATCH(B4, $B:$D, 0)=COLUMN(A1)