在Excel公式中忽略隐藏的表格行
晚上好。
我想让我的公式忽略过滤表中的隐藏行。 我已经尝试了一些这里显示的技巧,但是我还没有成功。
我从BigFix(networkingpipe理工具)获得的CSV如下所示:
应用程序列列出了同一单元中的应用程序。 因此,当我做一个计数函数来识别问题时,我必须使用通配符(我正在search不同的选项卡中的结果)。
=COUNTIF('Input Data'!C:C,"*"&Results!A2&"*")
我希望能够过滤第一个选项卡上的表格,并在第二个选项卡上准确显示公式结果。
有任何想法吗?
更新:我觉得更多的信息将有所帮助。 我希望“结果”选项卡自动更新的原因是我计划从该选项卡上的信息构build图表。 我希望能够在“input数据”中过滤表格,只包含部门A,并将graphics自动更新到部门A的信息。
我正在使用的excel文件有多达一千个条目,并且我正在试图获得我可以复制/粘贴到尽可能有效的演示文稿的图表。
=SUMPRODUCT(SUBTOTAL(3,OFFSET('Input Data'!C:C,ROW('Input Data'!C:C)-MIN(ROW('Input Data'!C:C)),,1))*(ISNUMBER(SEARCH(A2,'Input Data'!C:C))))
在上面的公式中将C:C限制为实际数据范围,或使用命名范围来标识实际数据范围。
编辑
上面的配方应该用吉普指出的103代替3代替
=SUMPRODUCT(SUBTOTAL(103,OFFSET('Input Data'!C:C,ROW('Input Data'!C:C)-MIN(ROW('Input Data'!C:C)),,1))*(ISNUMBER(SEARCH(A2,'Input Data'!C:C))))
在上面的公式中将C:C限制为实际数据范围,或使用命名范围来标识实际数据范围。
根据OP的请求添加说明。
在上面的公式中使用Sumproduct()小计()Offset()Min()Row()IsNumber()Search()函数组合来达到预期的结果。
Row() – 将得到给定范围的行号
Min() – 将获得给定数字的最小值
Offset() – 用于将引用redirect到给定范围的每个单元格。
小计() – 用于查找redirect引用的(未)隐藏状态。
search() – 用于查找给定范围内的特定文本(不区分大小写)将导致数字或错误。
IsNumber()用于检查search是否返回Number或者错误。 所以Isnumber将返回布尔值True / False。
列-C 列-D
过滤数据
一个1
b 1
一个1
a2
a2
以上数据从第一行开始,第一行包含标题。 假设我用D过滤了D列。使用下面的公式将导致2。
= SUMPRODUCT(SUBTOTAL(103,OFFSET('Input Data'!C2:C6,ROW('Input Data'!C2:C6)-MIN(ROW('Input Data'!C2:C6)),, 1))* (ISNUMBER(SEARCH(“a”,“Input Data”!C2:C6))))
ROW('Input Data'!C2:C6)= {2; 3; 4; 5; 6}
MIN(ROW('Input Data'!C2:C6))= 2
ROW('Input Data'!C2:C6)-MIN(ROW('Input Data'!C2:C6)) 应该被读为 {2; 3; 4; 5; 6} -2 = {0; 1; 2 ; 3; 4}
(input数据)!C2:C6,ROW('Input Data'!C2:C6)-MIN(ROW('Input Data'!C2:C6)),1)='Input Data'!C2'input数据'!C3,'input数据'!C4,'input数据'!C5,'input数据'!C6
SUBTOTAL(103,OFFSET('Input Data'!C2:C6,ROW('Input Data'!C2:C6)-MIN(ROW('Input Data'!C2:C6)),, 1)) 应被读为
小数(103,“input数据”!C2,“input数据”!C3,“input数据”!C4,“input数据”!C5,“input数据”!C6)= {1; 1; 1; 0; 0 }小计()到达每个(单元格)引用的可见状态。
SEARCH(“a”,“input数据”!C2:C6)= {1; #VALUE!; 1; 1; 1}
ISNUMBER(SEARCH(“a”,“Input Data”!C2:C6)) 应该被读为 ISNUMBER({1; #VALUE!; 1; 1; 1})= {TRUE; FALSE; TRUE; TRUE; TRUE}
(103,OFFSET('Input Data'!C2:C6,ROW('Input Data'!C2:C6)-MIN(ROW('Input Data'!C2:C6)),1))= {1; 1; 1; 0; 0}
(ISNUMBER(SEARCH(“a”,'Input Data'!C2:C6)))= {TRUE; FALSE; TRUE; TRUE; TRUE}
{1; 1; 1; 0; 0} * {TRUE; FALSE; TRUE; TRUE; TRUE} = {1; 0; 1; 0; 0}
SUMPRODUCT({1; 0; 1; 0; 0})= 2
使用Sumproduct()来避免数组入口,也做数组公式的任务(循环遍历单元格范围)和Sumproduct()将导致传递值的总和。
不是过滤源数据,而是使用Countifs函数并将过滤条件添加到Countifs。