首页 > 解决方案 > 旨在检查另一列的 Google 表格公式不会给出错误但不起作用

问题描述

我正在研究 Google 表格中的一个公式,该公式将根据请求的主管或办公室经理自动填充区域。我有适用于主管列的公式,但我试图修改它以包含带有嵌套 if 语句的办公室经理。这是完整的公式。

=ArrayFormula(IFNA(VLOOKUP(ARRAY_CONSTRAIN(AD4:AD,Max(IF(ISBLANK(AD4:AD), IF(ISBLANK(AC4:AC), 0, ROW(AC4:AC)),ROW(AD4:AD)))-3,1),'Supvr List'!$A$32:$B$76,2,0),))

最初的公式看起来像这样

=ArrayFormula(IFNA(VLOOKUP(ARRAY_CONSTRAIN(AD4:AD,Max(IF(ISBLANK(AD4:AD), 0,ROW(AD4:AD)))-3,1),'Supvr List'!$A$32:$B$76,2,0),))

我的想法是,如果 ISBLANK(AD4:AD) 为真,我可以嵌套另一个对 AC 列执行相同操作的 if 语句。现在它不检查 AC 列,如果您尝试手动设置区域,它会返回一个 !REF 错误。

主管专栏 - AD 办公室经理专栏 - AC 地区专栏 - AB

主管/办公室经理信息来源(“主管列表”选项卡):A32:B76

我很感激这方面的任何帮助。谢谢!

测试表:https ://docs.google.com/spreadsheets/d/1HV3K9-bHZjH1we2855ilRN0tsOYHKAJcYgtfcNI8Nz8/edit?usp=sharing

公式从 AB4 开始

标签: google-sheetsgoogle-sheets-formula

解决方案


它与您的有点不同,但我的解决方案的想法是检查两个值(优先排序AC,然后AD)。如果两者都没有值,则留空。

公式:

  • =ARRAYFORMULA(IFNA(VLOOKUP(IF(ISBLANK(AC4:AC), AD4:AD, AC4:AC), 'Supvr List'!$A$32:$B$76,2,0), ""))

行为:

  • 获取AC是否有价值,否则获取AD
  • VLOOKUP获得该地区。如果它返回 NA(两者AC都是AD空白),则保留为空白。

输出:

输出

笔记:

  • 如果两个值不同,则不考虑区域差异。它总是假设AC持有正确的区域,从而在条件中优先考虑它。AD只有当它AC是空白时才会得到。

推荐阅读