2014-01-07 58 views
5

我不能发布一个链接,由于敏感信息,但我可以提供结构:谷歌电子表格:数组公式,如果/并返回“否”,如果前3个单元格为空

|Id |PT/DOT |Primary Employee |From |To |Per x Days |Frequency Data Complete? | 
------ --------- ----------------- ------- ----- ------------ ------------------------- 

这些都是列标题。在列A,B和C中有文本值。在D,E,& F中有数字值或空白值,取决于最小频率(From),最大频率(To)和周期(每x天)是否已由主要员工完成。如果所有3个与频率相关的列都不为空白,G列应提供“是”或“否”值。

简单版本将是=if(and(D1<>"",E1<>"",F1<>""),"Yes","No")。这在简单版本中起作用,但是,我需要它自动填充数据行数,因为它们是基于脚本动态更改的。

我试过的下一步是=arrayformula(if(and(D2<>"",E2<>"",F2<>""),"Yes","No")),它不会自动填充(继续),因为它不是一个真正的数组。

我它修饰以=arrayformula(if($D2:$F="","No","Yes")),其填充下到数据的结束,但它不返回一个YesNo到G列,而是YesNo用于每个3列至G,H的,和I.我可以隐藏这些列并在J上做一个=countif("Yes"),但我仍然在自动填充的同一条船上。

我可以通过在G列中设置公式的脚本来完成此操作,但是当我想要在运行选项卡上保存D,E时是否添加了另一个脚本和另一个触发器的运行,F完成。

我不太确定这里最简单的方法是什么。我真的需要这个自动填充,而不需要用户额外的努力。 onEdit脚本可能是唯一的选择,但我宁愿不必这样做。

我试过了所有我能想到的,并且已经搜索了这个话题,直到任何远程相关的链接都是紫色的。我找不到任何我甚至可以为了达到相同目的而修改的东西。

回答

10

最简单的方法是使用*运算符,它模拟了一个逻辑与一个数组:

=ARRAYFORMULA(IF((D2:D<>"")*(E2:E<>"")*(F2:F<>""),"Yes","No"))

+0

啊!我尝试过,但是我没有将范围本身包含在圆括号中。我做了这样= Arrayformula(if(D2:D <>“”* E2:E <>“”* F2:F <>“”),“Yes”,“No”))我太亲密了! – thoughtcrime

+0

你刚刚救了我一天,非常感谢! – mTorres

0

使用ISBLANK功能与IF

=IF(ISBLANK(F1)=FALSE;"YES";IF(ISBLANK(E1)=FALSE;"YES";IF(ISBLANK(D1)=FALSE;"YES";"NO"))) 
相关问题