Excel:如何使用一个函数的结果作为公式的参数/范围

Excel:如何使用一个函数的结果作为公式的参数/范围,excel,excel-formula,Excel,Excel Formula,我有两个独立工作的公式,一旦我组合起来,然后我计划将它们粘贴到If公式中,得到我想要的结果。但是,我不知道如何使用第一个公式的结果作为第二个公式的范围参数 第1:=匹配(B3,'Sheet1'!A1:A18,0)返回8 第二个:=COUNTIF('Sheet1'!8:8,V1)>0返回true 与我在第二个公式中输入的8:8不同,我希望我的匹配结果(返回8)可以这样做 =COUNTIF('Sheet1'!MATCH(B3,'Sheet1'!A1:A18,0):MATCH(B3,'PSR培训计划'

我有两个独立工作的公式,一旦我组合起来,然后我计划将它们粘贴到If公式中,得到我想要的结果。但是,我不知道如何使用第一个公式的结果作为第二个公式的范围参数

第1:
=匹配(B3,'Sheet1'!A1:A18,0)
返回8

第二个:
=COUNTIF('Sheet1'!8:8,V1)>0
返回true

与我在第二个公式中输入的
8:8
不同,我希望我的匹配结果(返回8)可以这样做

=COUNTIF('Sheet1'!MATCH(B3,'Sheet1'!A1:A18,0):MATCH(B3,'PSR培训计划'!A1:A18,0),V1)>0
不起作用

我很确定我的格式是错误的,但我不知道我在寻找什么,甚至开始查找它。

使用:

=COUNTIF(INDEX(Sheet1!1:1040000,MATCH(B3,Sheet1!A1:A18,0),0),V1)>0
索引(Sheet1!1:1040000,MATCH(B3,Sheet1!A1:A18,0),0)
返回在列A中找到匹配项的整行

=COUNTIF(INDIRECT("'PSR Training Schedule'!"&MATCH(B3,Sheet1!A1:A18,0)&":"&MATCH(B3,Sheet1!A1:A18,0)),V1)>0
编辑

更有效的错误处理版本可能是:

=ISNUMBER(MATCH(V1,INDIRECT("'PSR Training Schedule'!"&MATCH(B3,Sheet1!A1:A18,0)&":"&MATCH(B3,Sheet1!A1:A18,0)),0))
…因为
COUNTIF
“计数”所有事件,而
MATCH
仅“匹配”一次

逻辑


使用
MATCH
我们得到
B3
值在
Sheet1范围内的位置(行)!A1:A18
。我们将使用此位置作为
PSR培训计划中的行
从哪里可以找到
V1
中的值
B3
&
V1
在同一张工作表中,可能是第三张工作表。

给OP和未来读者的一个注意事项是,INDIRECT是一个不稳定的函数,如果使用过多,将减慢Excel的速度,因为每次应用程序中任何地方发生更改时,每个函数都将重新校准。这不是一个问题。顺便说一句,被否决的不是我。我只是想澄清一下。谢谢。我知道:你为什么要费心评论。你可以注意到我在Excel中缺乏知识,你或其他一些ACE在<代码> Excel公式应该把它看作是一个蓝图来写一个更好的解决方案;当然,如果我的逻辑正确的话。嗯,我们没有问太多问题。我给未来的读者评论,让他们知道使用易失性函数的成本。该网站的目标是创建信息存储库。你的回答不错,就像我说的,我没有投反对票。这是有代价的。我确实写了一个更好的解决方案。它不使用易失性函数,做OP想要做的事情。再说一次,如果你的答案是OP认定的“正确”答案,我也不会难过或受伤。我只是想让那些不知道易失性函数代价的未来观察家去学习。如果你在回答中提出警告,我将删除评论。它说我有太多的论点。我希望匹配是表1的范围,而不是COUNTIF的标准。我有什么误解吗?对不起,我打错了,忘了索引。请参见编辑@Mofongo