arrays - 如何在 Google 电子表格中使用数组作为 FILTER 函数的输入?
问题描述
所以这可能是微不足道的,但很难问。我想要FILTER
一个基于其他FILTER
结果的范围。
我将尝试从内到外解释(与下图相关):
- 我使用过滤器查找
name
给定的所有 sid
(结果加入 B 列)。这工作正常并返回一个值数组。这是内在FILTER
的。 - 我想使用这个 s 数组使用另一个外部
name
s 为它们查找所有s 。value
FILTER
换句话说:为给定的所有s找到最大值。value
name
id
这是我的想法:
=MAX(FILTER(J:J, CONTAINS???(FILTER(G:G, F:F = A2), I:I)))
^--- imaginary function returning TRUE for every value in I
that is contained in the array
=MAX(FILTER(J:J, I:I = FILTER(G:G, F:F = A2)))
^--- equal does not work here when filter returns more than 1 value
=MAX(FILTER(J:J, REGEXMATCH(JOIN(",", FILTER(G:G, F:F = A2)), I:I)))
^--- this approach WORKS but is ineffective and slow on 10k+ cells
https://docs.google.com/spreadsheets/d/1k5lOUYMLebkmU7X2SLmzWGiDAVR3u3CSAF3dYZ_VnKE
我希望找到比/组合更好CONTAINS
的功能,或者使用其他方法来完成任务。REGEXMATCH
JOIN