【发布时间】:2021-06-13 00:24:06
【问题描述】:
我正在尝试与 B 列(日期)中查找的索引进行索引匹配,匹配是从单独的工作表中查找工作订单号(例如示例 1、示例 2)并匹配显示的选项卡屏幕下面。
Here is a copy of the table range I am trying to gather a match from
在我看来,它看起来像 =INDEX(B:B,MATCH("A1",E2:BP200,0)),但它不会遍历所有范围来找到匹配项。
我有一个在技术上有效的公式,它是 "=@IFNA(IFS(ISNUMBER(MATCH([@Batch],'Production Plan'!E:E,0)),INDEX('Production Plan'!B: B,MATCH([@Batch],'Production Plan'!E:E,0))"...对每一列重复。但是这使得计算速度非常慢。
任何帮助将不胜感激。
【问题讨论】:
-
一种解决方案是使用“range.find”在 VBA 中创建一个函数,其中“range”是您的 E:BP 区域。
-
我在玩具示例中尝试过的另一件奇怪的事情是:=MIN(IF(MMULT(IF($B$2:$N$14=5,1,0),{1;1 ;1;1;1;1;1;1;1;1;1;1;1})>0,ROW($B$2:$B$14),999999999)),然后使用 ctrl+enter 来制作一个数组公式。我不确定它是否总是有效或速度有多快。您必须将“$B$2:$N$14”替换为 E:BP,将“=5”替换为“=(您正在寻找的东西)”,将 {1;...1} 替换为n 个向量,其中 n 是 E:BP 中的列数。