按一张另一张

时间:2016-03-19 15:16:43

标签: google-sheets

我有一个Google电子表格文档,我用它来维护各种系统上所有业务逻辑的参考。它由2张纸组成:

  • Sheet1是所有逻辑的视图。每行都有一个唯一的code列(B列)以及有关在其他列中完成逻辑的许多详细信息
  • Sheet2是系统到逻辑的映射。每个系统都在一行上。从E列开始,每个单元格恰好是Sheet1的code

code与系统之间的关系是多对多的,因此许多系统可能会使用相同的code,并且每个系统可能会有很多code

我希望能够根据是否为特定系统找到每行中的code列来过滤Sheet1。

示例

  • 系统A和系统B位于Sheet2第50行和第51行
  • 他们的代码来自E列到K
  • code过滤Sheet1,其中{2}中包含code!E50:K51。最终结果应该是Sheet1只显示那些代码(当然还有所有列)

我已经看过并尝试了一些常见的嫌疑人(ARRAY_FORMULA,INDEX,LOOKUP),但我还没有完全理解它们。我认为答案将是“过滤 - >按条件 - >自定义公式”,但我不确定该放在那里。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

简答

  1. 在过滤器的自定义公式中,使用INDIRECT来引用另一张表中的范围。
  2. 要测试某个值是否在2D范围内,请比较该值和范围,将布尔值强制转换为数字并对它们求和。
  3. 解释

    第1部分:过滤器中的自定义公式

    过滤器和条件格式设置规则中的自定义公式只能使用标准表示法(='sheetname'!cell)引用同一张表。要引用公式中的另一个工作表,请使用INDIRECT函数。

    实施例

    假设过滤条件在A2:A3中,名为Sheet1的工作表中的过滤器自定义公式为:

    =ISNUMBER(MATCH(A2,INDIRECT("Sheet2!$A$2:$A$3"),0))
    

    第2部分:测试2D数组中是否包含值

    LOOKUP只能在单个列或单行中查找值,另一方面AND和OR函数不能在数组公式中使用,因此,我们将比较标量值和2D范围,而不是使用它们。这将返回一个TRUE / FALSE值的二维数组,我们将强制转换为数字(1表示TRUE,0表示FALSE)并将它们相加。

    最终的自定义公式如下:

    =ArrayFormula(SUM(N(A2=INDIRECT("Sheet2!E50:K51"))))
    

    参考