在动态数组列中使用动态数组公式的问题求助
动态数组公式跨表查找问题
无法在结构化表格中使用动态数组,尝试在动态表格中应用动态数组公式时,核心障碍是跨工作表查找由动态数组生成的列的数据。
现有可运行的标准公式
以下公式可正常运行,但属于标准列公式(需下拉填充,第5行会自动变为AJ5和I5):
=IF(AJ4 = "", "",@XLOOKUP(I4, Listing!$D$4#, Listing!$T$4#, "not found", 0))
期望的动态数组公式形式
希望实现无需下拉的动态数组公式,目标形式如下:
=IF(AJ4# = "", "",@XLOOKUP(I4#, Listing!$D$4#, Listing!$T$4#, "not found", 0))
已尝试的主要变体
主要尝试了以下固定范围的公式变体,但未达到预期效果:
=IF(AJ4 = "", "",@XLOOKUP(I4, Listing!$D$4:$D$1917, Listing!$T$4:$T$1917, "not found", 0))
理想的公式变体方向
真正想要实现的是多列匹配的动态数组公式,形式如下:
=IF(AJ4# = "", "",@XLOOKUP(I4:M4#, Listing!$D$4:$E$4#, Listing!$T$4:$T$4#, "not found", 0))
加入IF(AJ4# = "", "",...)是为了强制生成动态数组,选用XLOOKUP是因为它作为新函数更适配动态数组需求。
可运行但非动态的公式
以下公式均可运行,但Excel将其识别为标准公式(仍需下拉填充):
=IF(INDEX($AJ$4#, ROW(A1)) = "", "",@XLOOKUP(I4, Listing!$D$4#, Listing!$T$4:$T$1917,@XLOOKUP(I4, Listing!$E$4#, Listing!$T$4:$T$1917, "n/a"), 0))
=IF(INDEX($AJ$4#, ROW(A1)) = "", "",@XLOOKUP(I4, Listing!$D$4#, Listing!$U$4:$U$1917,@XLOOKUP(I4, Listing!$E$4#, Listing!$U$4:$U$1917, "n/a"), 0))
=IF(AJ4 = "", "",@XLOOKUP(I4, Listing!$D$4#, Listing!$T$4#, @XLOOKUP(I4, Listing!$E$4#, Listing!$T$4#, "n/a"), 0))
=IF(INDEX($AJ$4#, ROW(A1)) = "", "",@XLOOKUP(I4, Listing!$D$4#, Listing!$T$4#, @XLOOKUP(I4, Listing!$E$4#, Listing!$T$4#, "n/a"), 0))
=IF(INDEX($AJ$4#, ROW(A1)) = "", "",@XLOOKUP(I4, Listing!$D$4#, Listing!$U$4:$U$1917,@XLOOKUP(I4, Listing!$E$4#, Listing!$U$4:$U$1917, "n/a"), 0))
注:上述公式中,T为动态列,U为标准列。
内容的提问来源于stack exchange,提问作者Scott McNay
相关产品推荐
相关产品推荐

