Excel从sumif语句中获取当前行

时间:2015-03-23 14:56:02

标签: excel if-statement excel-formula vlookup sumifs

我正在使用Excel 2010并拥有一个包含多个标签的数据表,这是我正在使用的当前sumif函数

 =IF(SUMIF('Master Data'!$J$2:$J$200,'Resource View (2)'!B22,'Master Data'!$W$2:$W$200)>0,Current_row_different column, "")

基本上我发现另一个工作表中的某些行的值为1 i然后想要使用值为1的这些行,但在该行中使用不同的列来填充真实条件。

所以说例如第4行在A列包含1然后我想留在第4行但是得到B列的值作为真实条件。

这可能吗?

任何建议非常感谢

提前致谢。

编辑:

我现在已经设法让这个功能正常工作,但它有点像一个excel hack,因为我不得不在主数据中移动列并且它有点乱,现在无论如何继承人我已经得到了

 =IF(SUMIF('Master Data'!$C$2:$C$200,'Resource View (2)'!B22,'Master Data'!$W$2:$W$200)>0,VLOOKUP(B22,'Master Data'!$C$2:$F$90,3,FALSE),"")

现在我知道这是因为VLookup搜索了指定的第一列,如果我试图将范围向后调整,它似乎根本无法工作,即$ F $ 90:$ C $ 2而不是$ C $ 2:$ F $ 90 。无论如何操纵VLOOKUP这样工作?

1 个答案:

答案 0 :(得分:1)

是的,实际上有一种方法 - VLOOKUP的兄弟 - 它是INDEX(MATCH())。它是一个非常有用的工具,因为您可以查看任何列并返回任何其他列,而不仅仅是查看第一个列以返回右侧的列。此外,INDEX(MATCH())可用于形成数组公式,如果需要,VLOOKUP则不能。

基本上,这部分公式:

VLOOKUP(B22,'Master Data'!$C$2:$F$90,3,FALSE)

会随着这个改变:

INDEX('Master Data'!$E$2:$E$90,MATCH(B22,'Master Data'!$C$2:$C$90,FALSE))

毕竟,相当于

=IF(SUMIF('Master Data'!$C$2:$C$200,'Resource View (2)'!B22,'Master Data'!$W$2:$W$200)>0,VLOOKUP(B22,'Master Data'!$C$2:$F$90,3,FALSE),"")

将是

=IF(SUMIF('Master Data'!$C$2:$C$200,'Resource View (2)'!B22,'Master Data'!$W$2:$W$200)>0,INDEX('Master Data'!$E$2:$E$90,MATCH(B22,'Master Data'!$C$2:$C$90,FALSE)),"")