我有一个经过过滤的值列表。假设我有从0
到 的数字5
,并且2
被过滤掉:
A (with auto-filter against "2")
0
1
3
4
5
现在我想查明另一张工作表中的某个值是否属于该过滤列表的一部分。然而,即使该行不在过滤范围内,MATCH(2;A;0)
我仍然得到输出。3
3
该MATCH()
函数不知道过滤器,这就是为什么我得到的匹配结果不在过滤范围内。
如何仅将某种MATCH()
函数应用于过滤范围?或者还有其他什么可以导致所需的输出吗?
从答案中可以看出,这个问题对于 Microsoft Excel 来说几乎是相同的(在较新的 Excel 版本中只有很小的变化,您可能不再需要矩阵触发器Ctrl
+ Shift
+ Enter
,而只是需要Enter
)。这就是为什么它也有一个 Excel 标签。
如果您正在使用,那么您可以使用和
MS365
缩短上述公式LET()SEQUENCE()对于旧版本的 Excel -->
• 单元格中使用的公式G5
或者,在
MS365
• 单元格中使用的公式G6
3
whileCOUNTA()有助于OFFSET()创建动态范围。下面的截图和公式会让你一目了然。另外,由于我在,MS365
因此不需要点击CTRL+ SHIFT+ ENTER,但旧版本需要点击。上面是一样的
α
范围在哪里Sheet1!A2:A7
2
显示为0
,因为找到的是1
s,这部分公式求值时显示为all,FALSE
因为这里找不到匹配的值2
TRUE
ie时,因为它找不到它。1
#N/A但是,如果我们尝试查找其他值,它将通过显示行位置为我们提供所需的输出。应用的逻辑对于其他版本也是相同的
LibreOffice
。现在,提问者对德国自由办公室的检查(有效):
G5
.VERGLEICH(1;WENN(TEILERGEBNIS(3;VERSCHIEBUNG($A$2:$A$7;ZEILE($A$2:$A$7)-ZEILE($A$2);0;1))>0;WENN($A$2:$A$7=F5;1));0)
。Ctrl
+Shift
+Enter
。{}
)函数{=VERGLEICH(1;WENN(TEILERGEBNIS(3;VERSCHIEBUNG($A$2:$A$7;ZEILE($A$2:$A$7)-ZEILE($A$2);0;1))>0;WENN($A$2:$A$7=F5;1));0)}
:为了理解主要技巧,以下是矩阵中小计的工作原理:
G7
为G12
(或任何其他相邻的 5 个空单元格)。F2
标记 5 个单元格时按。TEILERGEBNIS(3;VERSCHIEBUNG($A$2:$A$7;ZEILE($A$2:$A$7)-ZEILE($A$2);0;1))
。Ctrl
+Shift
+Enter
。0
in填充的 5 个单元格的矩阵:G9
2