Excel过滤器使用动态数组的另一个过滤器函数



我已经为此挣扎了一段时间,我无法在谷歌上找到解决方案,所以任何帮助都会非常感激!

函数正在尝试列出一个学生正在学习的所有课程,基于所有正在学习"英语"的学生。

我正试图根据另一个过滤函数的输出过滤表。当第二个过滤器函数的输出只有1个值时,下面的函数可以完美地工作,但是一旦它输出一个超过1个值的动态数组,就会发生错误。请让我知道是否有更简单的方法来做到这一点,或者如果我做错了什么。

谢谢。

=过滤器(表1[[#],[肯定]],Table1[[#],[姓氏,名字]]=过滤器(表1[[#],[姓氏,名字]],Table1[[#],[肯定]]="English"))

正如Harun24hr所说,您不能将动态数组中的每个单独元素(given_names)与多个值进行比较。过滤器函数简单地为表中的每一行取一个最终TRUE或FALSE,而您编写的标准为每一行给出一个TRUE或FALSE列表,这就是当您有多个内部过滤器结果时外部过滤器失败的原因。

你可以用这个公式代替:

=LET( table,             Table1[[#All],[Course]], 
criteria_clmn,     Table1[[#All],[Surname - Given Names]], 
filter_list,       FILTER(Table1[[#All],[Surname - Given Names]],Table1[[#All],[Course]]="English"),   
criteria_result,   XLOOKUP(criteria_clmn, filter_list, filter_list = filter_list, FALSE),   
filtered_table,    FILTER(table,  criteria_result,  NA()),
filtered_table
)

您可以更改/播放前三个参数(表、criteria_clmn和过滤器列表)

相关内容

  • 没有找到相关文章

最新更新