使用过滤函数从不连续的单元格中提取列表

使用过滤函数从不连续的单元格中提取列表

我正在尝试制作一个表单,其中包含所有小计(蓝色)的列表(紫色)。

在此列表中,我不想包括值为 0 的小计。

表格概述

鉴于此,包含当前小计的表格应如下所示:

更正小计

我花了很长时间试图弄清楚如何做到这一点,互联网上有如下公式:

{=IFERROR(INDEX($A$2:$A$26,SMALL(IF($B$2:$B$26=$K$1,ROW($A$2:$A$26)),ROW(1:1))-1,1),””)}

这些公式不起作用,因为它们需要连续的单元格范围来形成数组,而由于我的工作表的格式,我没有这样的数组。

即使我妥协并通过省略底部的两个蓝色单元格来提供连续的单元格范围,上述公式也必须进行调整以排除 0 值和“”/空白单元格的值;这是我无法做到的。

经过更多的观察,我得出了自己的公式,我觉得这个公式非常接近有效,但还不完全有效:

{=IFERROR(FILTER(TRANSPOSE(CHOOSE({1,2,3,4,5,6,7,8,9,10,11,12,13}, I24,I26,I30,I31,I32,I33,I37,I38,I44,I47,I50,I54,I55)), TRANSPOSE(CHOOSE({1,2,3,4,5,6,7,8,9,10,11,12,13}, I24,I26,I30,I31,I32,I33,I37,I38,I44,I47,I50,I54,I55))<>0), "")}

对我来说,它读作:选择蓝色单元格 I24、I26 等的前十三个值(只有 13 个蓝色/绿色单元格)并将它们显示为水平数组。转换为垂直数组。过滤上述数组以仅允许不等于 0 的值。如果发生错误,则不显示任何内容。

这将填充如下列表:

包含 n/a 个错误的填充列表

1. 我不明白为什么当我使用iferror函数时会显示N/A。

最后,当只显示一个小计时,它看起来像这样:

填充列表重复值错误

2. 我不明白为什么值会这样重复。

谢谢你的帮助

答案1

您可以在单元格 A7 中使用此公式:

=FILTER(I24:I55,(I24:I55<>0)*(H24:H55<>"Subtotal"))

因此,我们对 H 列不是“小计”的行中的 I 列进行非零金额过滤。

相关内容