如何使用 Vlookup 或 Index & small 抵消关闭的工作簿替代方案
How to OFFSET a closed workbook alternative with Vlookup or Index & small
我有两个工作簿,一个我正在做 Vlookup,另一个包含 table 我需要从中检索信息。
我正在尝试基本上 Vlookup table 在其他工作簿 '[Database_IRR 200-2S.xlsm]Changes' 中找到的!在第 3 行下方,因为有时查找会从第二行检索信息,而我不希望 table 中的那些参数。我无法在 table 的第三行启动 Vlookup 的原因是因为我的查找 table 可以将数据输入其中(向下移动行)并且这会移动 table 我的 Vlookup 公式中的数组(参见下面的示例):
例如,如果我输入 =VLOOKUP("TEST 1_SL.1V.L",'[Database_IRR 200-2S.xlsm]Changes'!$A:$FZ000,ROWS($A:$A6),FALSE)
并向工作簿添加一个新的 entry/row(例如,A 列中的另一个测试 1_SL.1V.L)具有查找 table '[Database_IRR 200-2S.xlsm]Changes' 然后我的公式变为 =VLOOKUP("TEST 1_SL.1V.L",OFFSET(('[Database_IRR 200-2S.xlsm]Changes'!$A:$FZ000),2,0),ROWS($A:$A6),FALSE).
注意 $A$3 --> $A $4
为了处理这个问题,我尝试从第 1 行开始进行 Vlookup 并将其向下偏移 2 行,因为在将新行添加到每当绝对引用位于 OFFSET 函数内时的工作簿(因此,当将新数据条目(新行)添加到 [Database_IRR 200-2S.xlsm 时,$A$1 不会更改为 $A$2 ]变化')。现在,下面的公式仅在我打开查找 table 来自的其他工作簿时才有效,即 [Database_IRR 200-2S.xlsm]Changes'! ,如果我关闭它,那么我的 Vlookup 公式是 returning #VALUE 错误,因为我引用的工作簿已关闭,因此 OFFSET 会产生 #VALUE 错误
我的问题: 是否可以对我的代码进行任何调整或建议,以替换我关闭其他工作簿时不起作用的 OFFSET 函数,或者可能采用不同的方法?
这是我使用的公式:
=VLOOKUP('Operation base Q'!$H,OFFSET(('[Database_IRR 200-2S.xlsm]Changes'!$A:$FZ00),2,0),ROWS($A:$A6),FALSE)
这是从文件路径 '[Database_IRR 200-2S.xlsm]Changes' :
中查找数据的屏幕截图
另一种替代解决方案 我正在尝试使用的是带有小数组的索引公式(每当输入数组时按住 Ctrl+Shift+Enter)。该数组使我的 sheet 非常慢并且它不会获取“第一个”查找值(如第三行及以下)如果第二行未填充查找值(请参见下面的屏幕截图工作簿 '[Database_IRR 200-2S.xlsm]Changes'! 当我查找 TEST 1 时第二行不同,所以我的公式是 returning 第四行它到 return 第三行)。
这是我用于此替代方案的公式:
=INDEX(INDEX('[Database_IRR 200-2S.xlsm]Changes'!$A:$FZ001,0,ROWS(:6)),SMALL(IF('Operation base Q'!$H='[Database_IRR 200-2S.xlsm]Changes'!$A:$A,ROW('[Database_IRR 200-2S.xlsm]Changes'!$A:$A),""),1))*
第三种解决方案 我尝试使用的是 Double INDEX & MATCH 组合,但是每当我向另一个工作簿添加新行时,绝对引用也会发生变化,这里是我的意思是:
这是我尝试使用的公式(第三种选择):
=INDEX(INDEX('[Database_IRR 200-2S.xlsm]Changes'!**$A:$FZ000**,0,ROWS(:6)),MATCH('Operation base Q'!$H,'[Database_IRR 200-2S.xlsm]Changes'!**$A:$A00**,0))
但是每当我在 Database_IRR 200-2s 工作簿中插入一个新行时,绝对引用都会像这样改变(见粗体):
=INDEX(INDEX('[Database_IRR 200-2S.xlsm]Changes'!**$A:$FZ001**,0,ROWS(:6)),MATCH('Operation base Q'!$H,'[Database_IRR 200-2S.xlsm]Changes'!**$A:$A01**,0))
交叉引用另一个 post 我在:https://www.mrexcel.com/board/threads/vlookup-offset-value-error.1139372/
在 VLOOKUP
函数中用 OFFSET
替换 SUMPRODUCT
,试试这个:
=SUMPRODUCT(('[Database_IRR 200-2S.xlsm]Changes'!$A:$A00='Operation base Q'!$H)*'[Database_IRR 200-2S.xlsm]Changes'!$A:$FZ000)
我有两个工作簿,一个我正在做 Vlookup,另一个包含 table 我需要从中检索信息。
我正在尝试基本上 Vlookup table 在其他工作簿 '[Database_IRR 200-2S.xlsm]Changes' 中找到的!在第 3 行下方,因为有时查找会从第二行检索信息,而我不希望 table 中的那些参数。我无法在 table 的第三行启动 Vlookup 的原因是因为我的查找 table 可以将数据输入其中(向下移动行)并且这会移动 table 我的 Vlookup 公式中的数组(参见下面的示例):
例如,如果我输入 =VLOOKUP("TEST 1_SL.1V.L",'[Database_IRR 200-2S.xlsm]Changes'!$A:$FZ000,ROWS($A:$A6),FALSE)
并向工作簿添加一个新的 entry/row(例如,A 列中的另一个测试 1_SL.1V.L)具有查找 table '[Database_IRR 200-2S.xlsm]Changes' 然后我的公式变为 =VLOOKUP("TEST 1_SL.1V.L",OFFSET(('[Database_IRR 200-2S.xlsm]Changes'!$A:$FZ000),2,0),ROWS($A:$A6),FALSE).
注意 $A$3 --> $A $4
为了处理这个问题,我尝试从第 1 行开始进行 Vlookup 并将其向下偏移 2 行,因为在将新行添加到每当绝对引用位于 OFFSET 函数内时的工作簿(因此,当将新数据条目(新行)添加到 [Database_IRR 200-2S.xlsm 时,$A$1 不会更改为 $A$2 ]变化')。现在,下面的公式仅在我打开查找 table 来自的其他工作簿时才有效,即 [Database_IRR 200-2S.xlsm]Changes'! ,如果我关闭它,那么我的 Vlookup 公式是 returning #VALUE 错误,因为我引用的工作簿已关闭,因此 OFFSET 会产生 #VALUE 错误
我的问题: 是否可以对我的代码进行任何调整或建议,以替换我关闭其他工作簿时不起作用的 OFFSET 函数,或者可能采用不同的方法?
这是我使用的公式:
=VLOOKUP('Operation base Q'!$H,OFFSET(('[Database_IRR 200-2S.xlsm]Changes'!$A:$FZ00),2,0),ROWS($A:$A6),FALSE)
这是从文件路径 '[Database_IRR 200-2S.xlsm]Changes' :
中查找数据的屏幕截图另一种替代解决方案 我正在尝试使用的是带有小数组的索引公式(每当输入数组时按住 Ctrl+Shift+Enter)。该数组使我的 sheet 非常慢并且它不会获取“第一个”查找值(如第三行及以下)如果第二行未填充查找值(请参见下面的屏幕截图工作簿 '[Database_IRR 200-2S.xlsm]Changes'! 当我查找 TEST 1 时第二行不同,所以我的公式是 returning 第四行它到 return 第三行)。
这是我用于此替代方案的公式:
=INDEX(INDEX('[Database_IRR 200-2S.xlsm]Changes'!$A:$FZ001,0,ROWS(:6)),SMALL(IF('Operation base Q'!$H='[Database_IRR 200-2S.xlsm]Changes'!$A:$A,ROW('[Database_IRR 200-2S.xlsm]Changes'!$A:$A),""),1))*
第三种解决方案 我尝试使用的是 Double INDEX & MATCH 组合,但是每当我向另一个工作簿添加新行时,绝对引用也会发生变化,这里是我的意思是:
这是我尝试使用的公式(第三种选择):
=INDEX(INDEX('[Database_IRR 200-2S.xlsm]Changes'!**$A:$FZ000**,0,ROWS(:6)),MATCH('Operation base Q'!$H,'[Database_IRR 200-2S.xlsm]Changes'!**$A:$A00**,0))
但是每当我在 Database_IRR 200-2s 工作簿中插入一个新行时,绝对引用都会像这样改变(见粗体):
=INDEX(INDEX('[Database_IRR 200-2S.xlsm]Changes'!**$A:$FZ001**,0,ROWS(:6)),MATCH('Operation base Q'!$H,'[Database_IRR 200-2S.xlsm]Changes'!**$A:$A01**,0))
交叉引用另一个 post 我在:https://www.mrexcel.com/board/threads/vlookup-offset-value-error.1139372/
在 VLOOKUP
函数中用 OFFSET
替换 SUMPRODUCT
,试试这个:
=SUMPRODUCT(('[Database_IRR 200-2S.xlsm]Changes'!$A:$A00='Operation base Q'!$H)*'[Database_IRR 200-2S.xlsm]Changes'!$A:$FZ000)