条件格式的奇怪行为
Weird behavior with conditional formatting
我已将以下两个等式添加到条件格式中:
绿色:=IF(REGEXMATCH(VLOOKUP(X2, INDIRECT("DEALS!$A:F"),5, FALSE), "Likes"), R2>=VLOOKUP(X2, INDIRECT("DEALS!$A:F"), 4, FALSE), T2>=VLOOKUP(X2, INDIRECT("DEALS!$A:F"), 4, FALSE))
红色:=IF(REGEXMATCH(VLOOKUP(X2, INDIRECT("DEALS!$A:F"),5, FALSE), "Likes"), NOT(R2>=VLOOKUP(X2, INDIRECT("DEALS!$A:F"), 4, FALSE)), NOT(T2>=VLOOKUP(X2, INDIRECT("DEALS!$A:F"), 4, FALSE)))
颜色应根据是否达到目标(在本例中为观看次数)而相应变化。
下面我还将等式添加到单元格中以检查逻辑是否正确,看起来是这样(左 = 绿色逻辑,右 = 红色逻辑)。
无论出于何种原因,尽管未达到目标,但第一行已决定 select 绿色。下面的行完全相反。最重要的是,最后两行根本没有 select 颜色,即使我已将条件格式应用于整个列:
我在这个 P 列中拖动方程时也遇到了奇怪的行为,但在其他也使用条件格式的列中没有看到同样的行为:
https://i.gyazo.com/5e002e3d08e8337591573b81d9fc92e2.mp4
这让我完全不知所措,我不确定发生了什么,因为方程式的逻辑似乎不是问题所在。
感谢我在这个问题上能得到的任何帮助!
作为参考,这是 VLOOKUP() 函数从中获取的另一个 sheet:
不要锁定 INDIRECT
内的 ($
) 引用。如果东西在双引号之间,则它是文本字符串,而不是活动引用,并且文本字符串不受拖动影响。
绿色使用:
=IF(REGEXMATCH(VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 5, 0), "Likes"),
R2>=VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 4, 0),
T2>=VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 4, 0))
红色使用:
=IF(REGEXMATCH(VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 5, 0), "Likes"),
NOT(R2>=VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 4, 0)),
NOT(T2>=VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 4, 0)))
demo sheet
更新:
不要拖任何东西。在 P2 中使用它:
=ARRAYFORMULA(IFNA(TEXT(VLOOKUP(Z2:Z,DEALS!A2:F,4,0),
"#,###,##0")& " " &VLOOKUP(Z2:Z,DEALS!A2:F,5,0)))
我已将以下两个等式添加到条件格式中:
绿色:=IF(REGEXMATCH(VLOOKUP(X2, INDIRECT("DEALS!$A:F"),5, FALSE), "Likes"), R2>=VLOOKUP(X2, INDIRECT("DEALS!$A:F"), 4, FALSE), T2>=VLOOKUP(X2, INDIRECT("DEALS!$A:F"), 4, FALSE))
红色:=IF(REGEXMATCH(VLOOKUP(X2, INDIRECT("DEALS!$A:F"),5, FALSE), "Likes"), NOT(R2>=VLOOKUP(X2, INDIRECT("DEALS!$A:F"), 4, FALSE)), NOT(T2>=VLOOKUP(X2, INDIRECT("DEALS!$A:F"), 4, FALSE)))
颜色应根据是否达到目标(在本例中为观看次数)而相应变化。
下面我还将等式添加到单元格中以检查逻辑是否正确,看起来是这样(左 = 绿色逻辑,右 = 红色逻辑)。
无论出于何种原因,尽管未达到目标,但第一行已决定 select 绿色。下面的行完全相反。最重要的是,最后两行根本没有 select 颜色,即使我已将条件格式应用于整个列:
我在这个 P 列中拖动方程时也遇到了奇怪的行为,但在其他也使用条件格式的列中没有看到同样的行为:
https://i.gyazo.com/5e002e3d08e8337591573b81d9fc92e2.mp4
这让我完全不知所措,我不确定发生了什么,因为方程式的逻辑似乎不是问题所在。
感谢我在这个问题上能得到的任何帮助!
作为参考,这是 VLOOKUP() 函数从中获取的另一个 sheet:
不要锁定 INDIRECT
内的 ($
) 引用。如果东西在双引号之间,则它是文本字符串,而不是活动引用,并且文本字符串不受拖动影响。
绿色使用:
=IF(REGEXMATCH(VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 5, 0), "Likes"),
R2>=VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 4, 0),
T2>=VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 4, 0))
红色使用:
=IF(REGEXMATCH(VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 5, 0), "Likes"),
NOT(R2>=VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 4, 0)),
NOT(T2>=VLOOKUP(Z2, INDIRECT("DEALS!A2:F"), 4, 0)))
demo sheet
更新:
不要拖任何东西。在 P2 中使用它:
=ARRAYFORMULA(IFNA(TEXT(VLOOKUP(Z2:Z,DEALS!A2:F,4,0),
"#,###,##0")& " " &VLOOKUP(Z2:Z,DEALS!A2:F,5,0)))