我有以下代码。我已经阅读了许多有关如何解决查询返回空值的线程,但是在我的情况下,它们都不起作用。我还分享了一种解决方法Google电子表格。我要做的是按查询搜索第一个选项卡,如果匹配,则显示一个绿色的勾号,否则显示一个红色的叉号。下面的代码适用于绿色勾号,但如果出现红色叉号,则会显示错误。
预期以下代码的工作方式:它在tab1上进行查询,并且如果学生编号在C列中(具有某些已定义的条件)或在D列中(没有任何条件),则显示绿色对勾,否则,必须插入一个红叉。
if(OR(QUERY(LiveAttendanceForm!$A:$C,
"select C
where A >= timestamp '"&TEXT(D$1, "yyyy-MM-dd HH:mm:ss")&"'
and A <= timestamp '"&TEXT(D$2, "yyyy-MM-dd HH:mm:ss")&"'
and C = "&$C5, 0)=$C5,Query(LiveAttendanceForm!$A:$D,"select D where D = "&$C5,0)=$C5),"✅","❌")
我还尝试iferror
在查询之前使用函数,但是它将所有字段显示为true,并使所有单元格都变为绿色。如果有人可以帮助我解决这个令人讨厌的问题,我将不胜感激!共享Google工作表的链接如下:
https://docs.google.com/spreadsheets/d/1KfkA48OyOnZAPQAbtdEIs9AYaAPRFRFOpvQRM5QyPss/edit?usp=sharing
您将需要将查询包装到IFERROR
:
=IF(OR(IFERROR(QUERY(LiveAttendanceForm!$A:$C,
"select C
where A >= timestamp '"&TEXT(D$1, "yyyy-MM-dd HH:mm:ss")&"'
and A <= timestamp '"&TEXT(D$2, "yyyy-MM-dd HH:mm:ss")&"'
and C = "&$C4, 0))=$C4,
IFERROR(QUERY(LiveAttendanceForm!$A:$D,
"select D
where D = "&$C4, 0))=$C4), "✅", "❌")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句