晚安。
我试图让我的公式忽略过滤表中的隐藏行。我尝试过这里展示的一些技巧,但我还没有成功。
applications列列出了同一单元格中的应用程序。因此,当我执行计数功能来识别问题时,我必须使用通配符(我在另一个tab中搜索结果)。
=COUNTIF('Input Data'!C:C,"*"&Results!A2&"*")
我希望能够在第一个标签上过滤表格,并在第二个标签页上准确显示公式结果。
有什么想法吗?
更新: 我觉得更多的信息会有所帮助。我之所以想要"结果"要自动更新的标签是我计划从该标签上的信息构建图表。我希望能够在“输入数据”中过滤表格。仅包括部门A,并将图表自动更新为部门A的信息。
我正在使用的excel文件最多有一千个条目,我试图获取可以复制/粘贴的图表,以尽可能高效地投放到演示文稿中。
答案 0 :(得分:1)
使用Countifs功能并将过滤条件添加到Countifs,而不是过滤源数据。
答案 1 :(得分:1)
=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而不是Jeep指出的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()Subtotal()Offset()Min()Row()IsNumber()搜索()函数组合,用于到达预期结果。
行() - 将获取给定范围的行号
Min() - 将获得给定数字的最小值
偏移() - 用于将引用重定向到给定范围的每个单元格。
小计() - 用于查找重定向引用的(非)隐藏状态。
搜索() - 用于查找给定范围内的特定文本(不区分大小写)将导致数字或错误。
IsNumber()用于检查搜索是返回Number还是error。所以Isnumber将返回布尔值True / False作为结果。
Column-C Column-D
过滤数据
1
b 1
1
a 2
a 2
以上数据从第一行开始,第一行包含标题。假设我用1过滤D列。使用下面的公式将得到2。
= SUMPRODUCT(SUBTOTAL(103,OFFSET('输入数据'!C2:C6,行('输入数据'!C2:C6)-MIN(行('输入数据'!C2:C6)),1 ))*(ISNUMBER(搜索(“a”,“输入数据”!C2:C6))))
行('输入数据'!C2:C6)= {2; 3; 4; 5; 6}
MIN(行('输入数据'!C2:C6))= 2
ROW('输入数据'!C2:C6)-MIN(行('输入数据'!C2:C6))应读作 {2; 3; 4; 5; 6} -2 = {0; 1; 2; 3; 4}
OFFSET('输入数据'!C2:C6,行('输入数据'!C2:C6)-MIN(行('输入数据'!C2:C6)),, 1)='输入数据'! C2,'输入数据'!C3,'输入数据'!C4,'输入数据'!C5,'输入数据'!C6
SUBTOTAL(103,OFFSET('输入数据'!C2:C6,行('输入数据'!C2:C6)-MIN(行('输入数据'!C2:C6)),1))< strong>应该被理解为
SUBTOTAL(103,'输入数据'!C2,'输入数据'!C3,'输入数据'!C4,'输入数据'!C5,'输入数据'!C6)= {1; 1; 1; 0; 0} 小计()到达每个(单元格)引用的可见状态。
SEARCH(“a”,“输入数据”!C2:C6)= {1; #VALUE !; 1; 1; 1}
ISNUMBER(搜索(“a”,“输入数据”!C2:C6))应该被理解为 ISNUMBER({1; #VALUE !; 1; 1; 1})= {TRUE; FALSE; TRUE; TRUE; TRUE}
SUBTOTAL(103,OFFSET('输入数据'!C2:C6,行('输入数据'!C2:C6)-MIN(行('输入数据'!C2:C6)),1))= {1; 1; 1; 0; 0}
(ISNUMBER(SEARCH(“a”,“输入数据”!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()将产生传递值的总和。