[英]Conditional formatting inconsistent using MATCH in a custom formula
我有 2 个包含相同值的单元格A1
和B1
。 我想使用自定义公式=MATCH(A1,B1)
创建条件格式规则,将两个单元格都染成绿色。
这有时适用于其他细胞对,但有时它根本不起作用。
请注意,单元格具有自定义数字格式,在数字前添加一个字母和一个分号。
让我知道我做错了什么。
3 对,2 对起作用, Q3
和R3
没有:
我的条件格式:
规则中的单元格引用是相对的。 这意味着当当前单元格位于不同的行或列时,公式会相应地移动。 当前行的更改不会影响您的规则,但当前列号的更改不是 2 的倍数,这意味着MATCH函数的range
参数使用了错误的列。
您可以通过将=MATCH(Q3,R3,0)
放在Q4
中然后将其复制到R4
来查看行为。 search_key
参数将自动更新为R3
和range
参数为S3
。 新公式将为=MATCH(R3,S3,0)
,但您需要range
参数为Q3
,因为R3
在右列中: =MATCH(R3,Q3,0)
。 同样的事情也发生在您的条件格式规则中。
以下自定义公式将按预期工作。 它根据当前单元格是列对的左列还是右列进行调整。
M3:R55
=MATCH(M3,OFFSET(M3,0,IF(ISODD(COLUMN($M3))=ISODD(COLUMN()),1,-1)),0)
M3:R55
,其中每对由左列和右列组成search_key
参数来自左列单元格,则其range
参数需要是search_key
右侧一列的单元格OFFSET 。
OFFSET(M3,0,1)
search_key
参数来自右列单元格,则其range
参数需要是search_key
左侧一列的单元格OFFSET 。
OFFSET(M3,0,-1)
# First Column is M, current cell is Q3
=ISODD(COLUMN($M3))=ISODD(COLUMN())
=ISODD(13)=ISODD(17)
=TRUE=TRUE
=TRUE // current col is left
# First Column is M, current cell is R3
=ISODD(COLUMN($M3))=ISODD(COLUMN())
=ISODD(13)=ISODD(18)
=TRUE=FALSE
=FALSE // current col is right
# First Column is N, current cell is R3
=ISODD(COLUMN($N3))=ISODD(COLUMN())
=ISODD(14)=ISODD(18)
=FALSE=FALSE
=TRUE // current col is left
=MATCH(M3,OFFSET(M3,0,
IF(ISODD(COLUMN($M3))=ISODD(COLUMN()),
1, // condition_true (current col is left)
-1)) // condition_false (current col is right)
,0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.