我正在使用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这样工作?
答案 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)),"")