除了 office365 excel 之外,还有什么 FILTER 函数的替代方案?

What is an alternative of FILTER function for other than office365 excel?

提问人:BlackCat 提问时间:7/17/2021 最后编辑:P.bBlackCat 更新时间:7/17/2021 访问量:4616

问:

我有一个 excel 工作表,比如

SKU系列 ITEM_ID 线
111 1 CCC公司
111 2 NNN的

我需要根据LINE列的值过滤行。在 office365 中,它可以通过 FILTER 功能轻松完成。我必须使用 excel 2007。有什么好的替代方法可以在这里创建函数进行过滤?

Excel 筛选 器 excel-公式

评论


答:

7赞 P.b 7/17/2021 #1

=IFERROR(INDEX($A$1:$C$3,SMALL(IF(--($C$1:$C$3="CCC"),ROW($C$1:$C$3)),ROWS($1:1)),COLUMNS($A:A)),"")要在 Office 365 之前的版本中输入的数组公式。将公式向下复制,并根据需要向右复制。函数的 ROWS 部分将充当条件的 1st、2nd 等匹配项的计数器。ctrl+shift+enter

您可以调整范围,但请确保调整所有三个范围:=IFERROR(INDEX($A$1:$C$[number of end of range],SMALL(IF(--($C$1:$C$[same number as before]="CCC"),ROW($C$1:$C$[same number as before])),ROWS($1:1)),COLUMNS($A:A)),"")

评论

2赞 P.b 7/17/2021
刚刚对索引的列部分进行了第二次思考,以便在 Office 365 之前的版本中工作。更新。
2赞 P.b 7/19/2021
您是否正确调整了范围?它应该 i.stack.imgur.com/UrFAd.jpg 工作
1赞 David Leal 1/27/2023
@P.b 我发现修改您的方法,无需复制公式:.这仅用于按一列过滤,但我想它适用于多个列=IFERROR(INDEX(A1:A3, SMALL(IF($A$1:$A$3="CCC", ROW(A1:A3)), ROW(A1:A3))),"")
3赞 P.b 1/27/2023
@DavidLeal我知道,但这只会在 Office365 中溢出,然后我们通常改用 FILTER。
3赞 P.b 1/28/2023
@DavidLeal 它的计算方式相同,因此您可以例如将数组 INDEX 为 并且它将显示数组的第二个结果(不确定它是否需要 ctrl+shift+enter)。但旧版本从不将结果溢出到单元格上(它只将数组存储在内存中)=INDEX([your-array-version],2)