0

我一直在尝试执行以下操作:

  • Sheet1,查找值A3Data
  • Data, 检查找到的值是否有1in 列M
    • 是:粘贴列K中的Data列值B3Sheet1
    • 否:继续搜索工作表,0如果没有找到则显示

这是我目前所拥有的,它找到了正确的 K 值,但我需要输入 shift+ctrl+enter 来获取值...

=INDEX('TLN Data'!$B$1:$Z$15000; MATCH(1;(A3='TLN Data'!$B$1:$B$15000)*(1='TLN Data'!$M$1:$M$15000);0); 10)

非常感谢所有帮助!

--

表 1

在此处输入图像描述

TLN 数据

在此处输入图像描述

4

2 回答 2

1

您可以添加一个INDEX函数以获得不需要CSE的版本,即

=INDEX('TLN Data'!$B$1:$Z$15000; MATCH(1;INDEX((A3='TLN Data'!$B$1:$B$15000)*(1='TLN Data'!$M$1:$M$15000);0);0);10)

在某些情况下,这比 SUMPRODUCT 更可取,例如,返回值是文本,或者如果您有多个匹配项并且您只想要第一个。

您也可以像这样使用 LOOKUP:

=LOOKUP(2;1/(A3='TLN Data'!$B$1:$B$15000)/(1='TLN Data'!$M$1:$M$15000);'TLN Data'!$K$1:$K$15000)

如果有多个匹配项返回最后一个,则使用该版本

于 2012-10-22T14:25:08.797 回答
1

尝试使用SUMPRODUCT(您不需要作为数组输入):

=SUMPRODUCT(
    --('TLN Data'!$B$1:$B$15000=A3), 
    --('TLN Data'!$M$1:$M$15000=1),
    'TLN Data'!$K1:$K$15000)

MATCH这使用与您上面的公式类似的逻辑:

  1. 1返回一个's 和's的数组0,其中1表示列中的值B等于的行A3--将数组转换为1's 和0's - 否则它包含TRUE/ FALSE
  2. 将该数组乘以另一个1's 和0's 数组,这次用 a1指示行,其中 columnM包含数字1
  3. 最后,将该数组乘以所有 column K。这会产生一堆0's 的数组,然后是一个(或多个,取决于您的设置)值,这些值表示K满足您的条件的列中的值。

编辑:由于这涉及文本,INDEX@barryhoudini 提供的公式(与您的原始公式略有不同)可以解决问题。

于 2012-10-22T13:59:38.273 回答