Excel - 具有条件的查找值

时间:2012-10-22 13:46:25

标签: excel excel-2007

我一直在努力做到以下几点:

  • Sheet1A3
  • 中的查找值Data
  • Data,检查找到的值是否在1列中有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)

非常感谢所有帮助!

-

Sheet 1中

enter image description here

TLN数据

enter image description here

2 个答案:

答案 0 :(得分:1)

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

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

这会使用与上述MATCH公式类似的逻辑:

  1. 返回10的数组,其中1表示B列中的值等于A3的行( --将数组转换为10 - 否则它包含TRUE / FALSE
  2. 将该数组乘以10的另一个数组,这次使用1表示列M包含数字{{{ 1}}
  3. 最后,将该数组乘以列1的所有内容。这会产生一系列K的数组,然后是一个(或更多,取决于您的设置)值,这些值表示符合条件的列0中的值。
  4. 编辑:由于这涉及文字,@ barryhoudini提供的K公式(与原版略有不同)将有所帮助。

答案 1 :(得分: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)

如果有多个匹配项返回最后一个

,则使用该版本