excel - Filter() 就地不重复公式
问题描述
考虑一个非常基本的表格:
List 1 | List 2
a|a
b|c
c|
现在我想生成这些列表的交集的数组,即 {a,c}。
如果我这样做:
=INDEX(Table1[List2],XMATCH(Table1[List1],Table1[List2]))
我得到:
a
#N/A
c
现在,为了摆脱#N/A,我发现这样做的唯一方法是基本上重复等式,如下所示:
=FILTER(INDEX(Table1[List2],XMATCH(Table1[List1],Table1[List2])),NOT(ISNA(INDEX(Table1[List2],XMATCH(Table1[List1],Table1[List2])))))
这可行,但非常不理想,因为保持方程的两个版本同步的概率非常低。
有一个更好的方法吗?
解决方案
一个可以LET
用来避免重复:
=LET(x,INDEX(Table1[List2],XMATCH(Table1[List1],Table1[List2])),FILTER(x,NOT(ISNA(x))))
然而,这可能更简单:
=FILTER(Table1[List1],ISNUMBER(XMATCH(Table1[List1],Table1[List2])))
推荐阅读
- r - 如何在使用 rvest 进行网络抓取时修复 R 'Error in UseMethod("xml_find_all")' 中的以下错误?
- android - USB 摄像头连接到安卓手机
- scala - 如何在 Scala 中进行 Monadic 日志记录
- android - Firebase 和 Socket.io 兼容性问题使我的应用程序崩溃
- javascript - JSON Parse 错误:React Native Expo 中出现意外的 EOF
- matlab - 是否可以检查重载 eq 的类的句柄相等性?
- python - 操作数据框结构的有效方法?
- python - 具有相同输入的递归函数给出不同的输出
- python - for 循环内的图例
- python - Python 和 SQL Anywhere 17 出现“无法加载 dbcapi”问题