google-apps-script - 谷歌电子表格 : Array formula if/and to return "No" if 3 previous cells are blank

标签 google-apps-script google-sheets

由于敏感信息,我无法发布链接,但我可以提供结构:

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

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

简单版本是 =if(and(D1<>"",E1<>"",F1<>""),"Yes","No") .这在简单版本中有效,但是,我需要它自动填充数据行数,因为它们会根据脚本动态更改。

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

我修改为=arrayformula(if($D2:$F="","No","Yes")) , 填充到数据的末尾,但不返回单个 YesNo到 G 列,而是 YesNo对于 G、H 和 I 的 3 列中的每一列。我可以隐藏这些列并执行 =countif("Yes")在 J 上,但我仍然与自动填充在同一条船上。

我可以使用在 G 列中设置公式的脚本来完成此操作,但是当我只想保留一个关于 D、E 和 F 是否存在的正在运行的选项卡时,这会为流程添加另一次脚本运行和另一个触发器完全的。

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

我已经尝试了所有我能想到的方法,并搜索了这个主题,直到任何远程相关的链接变成紫色。我找不到任何我什至可以修改以达到相同目的的东西。

最佳答案

简单的方法是使用 * 运算符,它模拟数组上的逻辑 AND:
=ARRAYFORMULA(IF((D2:D<>"")*(E2:E<>"")*(F2:F<>""),"Yes","No"))

关于google-apps-script - 谷歌电子表格 : Array formula if/and to return "No" if 3 previous cells are blank,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20975506/

相关文章:

excel - 从 Google Sheets 脚本中解析 Excel 文件中的数据

python - 如何下载带有 Gspread 的 Google Docs excel 表并在本地访问数据(A1 表示法)?

google-apps-script - Google Sheets API v4 : batchGet not working

mysql - 使用 Google 电子表格应用程序脚本中的 MySQL 数据进行数据验证

google-apps-script - 如何使用 OnChange() 触发器

google-apps-script - 如何使用嵌入图表(谷歌表格)中的应用程序脚本更改垂直轴的最小值?

google-apps-script - 服务在短时间内调用了太多次 : exec qps.(谷歌脚本)

javascript - 如何向 Google 表单添加登录信息以供用户填写

javascript - 使用 Google App 脚本替换 Google Sheet 中的文本而不重新格式化值

google-apps-script - 带有工作表插件的 Google Apps 脚本 PERMISSION_DENIED