所以我试图从数据表中进行经典的2路查找,即:
Jan-00 Feb-00 Mar-00
Joe
Bill
Steve
所以,我想在“Mar-00”中查找“Joe”的值。
这种类型的查找通常使用INDEX和MATCH函数的组合来完成。这种方法的缺点是MATCH只能作用于1维范围,因此在包含大量表格的大型电子表格中,您最终必须为每个表定义3个范围而不是一个(一个用于数据,一个用于标题行,左列一个。)
我希望能够做到这样的事情:
index(data1,match("Mar-00",getrow(mydata,1)),match("Joe",getcolumn(mydata,1)))
excel中有这样的东西吗(或者,这样做的方式完全不同,可能是excel中的一些新功能)?
答案 0 :(得分:11)
这是VLOOKUP
(或相关HLOOKUP
)的经典用法:
=VLOOKUP("Joe", mydata, 4, FALSE)
您还可以使用INDEX
通过将零作为参数之一传递来获取范围(或2-D数组)中的整行或列:
=VLOOKUP("Joe", mydata, MATCH("Mar-00", INDEX(mydata, 1, 0), 0), FALSE)
这假设您的“mydata”是整个表格,包括行和列标题。
(当然,您也可以执行上述操作,将getrow
和getcolumn
替换为INDEX
。
答案 1 :(得分:5)
使用offset
公式。对于某些命名范围 myrange ,第一行是:
offset(myrange,0,0,1)
同样,第一栏是:
offset(myrange,0,0,,1)
答案 2 :(得分:0)
虽然它可能不是最有效的方法,但您可以使用SUMPRODUCT来完成此请求。你想要做的是有一个包含值的工作表,然后在你的显示板上引用它们。
=SUMPRODUCT(--('RawData'!$A$1:$A$4="Joe"),--('RawData'!$B$1:$B$4="Mar-00"),'RawData'!$C$1:$C$4)
其中: