如何在Excel中引用筛选范围

如何在Excel中引用筛选范围,excel,excel-formula,lookup,worksheet-function,Excel,Excel Formula,Lookup,Worksheet Function,我正在使用此函数搜索是否在Domain.List表的Domain列中找到当前表的Domain值,返回TRUE/FALSE: =NOT(ISERROR(VLOOKUP([@Domain],Domain.List[Domain],1,FALSE))) 筛选此域.List时,条目将减少。例如: DOMAIN INCLUDE google.com 0 apple.com 1 amazon.com 0 alibaba.com 0 按“包含”筛选后,将成为: DOMAI

我正在使用此函数搜索是否在Domain.List表的Domain列中找到当前表的Domain值,返回TRUE/FALSE:

=NOT(ISERROR(VLOOKUP([@Domain],Domain.List[Domain],1,FALSE)))
筛选此域.List时,条目将减少。例如:

DOMAIN      INCLUDE
google.com    0
apple.com     1
amazon.com    0
alibaba.com   0
按“包含”筛选后,将成为:

DOMAIN      INCLUDE
apple.com     1
现在回到原始表,我希望上面的函数只在与apple.com匹配的域中返回TRUE

但事实上,不管Domain.List表的筛选器状态如何,函数结果都不会改变


有没有办法告诉Excel我只想对域的可见部分运行公式。列出[Domain]列?

将公式更改为:

=IF(SUMPRODUCT(SUBTOTAL(3,OFFSET(Domain.List[DOMAIN],ROW(Domain.List)-MIN(ROW(Domain.List[DOMAIN])),,1)),ISNUMBER(SEARCH([@Domain],Domain.List[DOMAIN]))+0),TRUE,FALSE)
第页:

这里有一个很好的解释说明了这是如何工作的:

部分引用:

您可以使用SUMPRODUCT应用小计函数(通过偏移量)和条件,例如=
apple.com
(第二部分
ISNUMBER(搜索([@Domain],Domain.List[Domain]))+0
是一种布尔值,与搜索ISNUMBER相对应。您将生成一个真-假列表)

小计可以排除SUMPRODUCT的隐藏行。由于SUBTOTAL返回一个数字,而SUMPRODUCT需要一个数组,所以我们使用OFFSET为每行的SUBTOTAL提供一个引用,这样OFFSET将每行返回一个结果

这是通过给OFFSET一个数组来实现的,该数组每行包含一个数字,从零开始,由以下公式生成:

ROW(Domain.List)-MIN(ROW(Domain.List[DOMAIN]))
基本上是将两个数组相乘,第一个语句是行可见,第二个语句与域名匹配。然后将其包装在If公式中,以生成所需的TRUE和FALSE。我依靠事实1=真来简化公式:

=IF(SUMPRODUCT(SUBTOTAL(3,OFFSET(Domain.List[DOMAIN],ROW(Domain.List)-MIN(ROW(Domain.List[DOMAIN])),,1)),ISNUMBER(SEARCH([@Domain],Domain.List[DOMAIN]))+0)=1,TRUE,FALSE)
它是
IF(result=1,TRUE,FALSE)
IF(result,TRUE,FALSE)
IF(1,TRUE,FALSE)