我有以下代码。我已经阅读了许多关于如何解决查询返回空值的线程,但是在我的情况下,它们都不起作用。 我还分享了一种解决方法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://wiki.jenkins-ci.org/display/JENKINS/vSphere+Cloud+Plugin
答案 0 :(得分:1)
您需要将查询包装到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), "✅", "❌")