# VALUE在Excel中使用FILTER函数

b1uwtaje  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(628)

我听说过很多关于Excel中FILTER函数的好消息,但我似乎无法继续使用它。大多数情况下,我最终都会遇到#VALUE错误。我通常会找到它的根源,但这一个却难倒了我。
这个公式是:

=FILTER(Sheet1[#All],IFERROR((Sheet1[[#All],[Account]]=$D$1)*(Table2[[#All],[Duplicate 21711000]]=0),0))

我之所以添加IFERROR,是因为我认为结果中的一串#N/A可能会导致问题。
我已经计算了公式,在Include端的数组上,一切似乎都运行得很好。布尔逻辑工作正常,1和0在正确的位置,理论上可以将列表过滤到我想查看的几条记录。但是当我最后一次单击evaluate时,它将这些1和0应用到数组中的行,结果导致#VALUE错误。显然我在牢房里只能看到这些。
你知道我哪里做错了吗?
顺便说一下,这样做的目的是为了帮助一位客户,她经常从会计系统中提取报表,然后手动过滤、复制和粘贴新交易行到电子表格的单独选项卡上,大约有30个账户。我的计划是使用Power Query将报表放入电子表格的选项卡中。然后使用Filter函数将Power Query表中的相应行带到每个选项卡中。这是这里的第一个条件。
我在PowerQuery表旁边创建了另一个表,它使用Count If来计算该行是否已经导入,因此条件的第二部分将过滤CountIf是否注册了重复项的列表。
我不能在任何地方都使用PowerQuery,因为她需要能够添加更多的列,并在导入数据后操作数据。因此,工作的最后一部分是创建一个宏来复制〉粘贴值,显然,首先将筛选函数复制到下面的行中,为下个月做好准备。
因此,Power Query导入所有数据,Filter函数将特定数据提取到每个选项卡中,Macro锁定这些数据,以便在需要时进行编辑。
如果有人能想出更好的办法来达到同样的效果,我洗耳恭听。

oaxa6hgo

oaxa6hgo1#

所以谢谢你@JvdV,简单的答案确实是这两个表的大小不同,而FILTER要求它们的大小相同。
这导致了一个后续问题,尽管为了计算工作表中是否有任何重复项,我不能使用计划A和使用单独的表,因为当Power Query表刷新时,它不会动态地改变它的高度。
我考虑了一下,也许一开始就用一个自定义列将表合并到PowerQuery中,但这将意味着PowerQuery最终会有39个额外的列,这些列都将由每个FILTER函数带来。
所以我做了这个。我知道这是非常利基,所以可能不会帮助任何人,但我很自豪,我想把它张贴在某个地方:

=FILTER(Sheet1[#All],IFERROR((Sheet1[[#All],[Account]]=$D$1)*IF((COUNTIF('21711000 (125006) Int rec'!$C:$C,Sheet1[[#All],[Document Number]]))=0,1,0),0))

(我可能不再需要IFERROR了,但是它可以工作,所以我不打算碰它,而且它可能是安全的,以防出现任何错误)。
这是因为Excel现在可以溢出,而不需要特定的数组函数。之前我将COUNTIF设置为一个单独的列,但现在我将它放在这里,它自然会在后台溢出,本质上是在公式中创建了该列。然后IF将任何0更改为TRUE(1),将任何其他数字(我的重复)更改为FALSE(0),一切正常。
它实际上创建了一个循环引用,因为Filter在C列,但我认为这对我的目的来说是可以的,因为我不希望它包含来自filter的结果,我怀疑可能会发生这种情况,但到目前为止它似乎是有效的。
我希望这能帮助到一些人。

相关问题