Excel函数返回范围中的第一行或第一列?(用于更好地在数据表中进行双向查找)
因此,我尝试从数据表中执行经典的双向查找,即:Excel函数返回范围中的第一行或第一列?(用于更好地在数据表中进行双向查找),excel,worksheet-function,Excel,Worksheet Function,因此,我尝试从数据表中执行经典的双向查找,即: Jan-00 Feb-00 Mar-00 Joe Bill Steve 所以,我想查找“Joe”和“Mar-00”的值 这种类型的查找通常使用索引和匹配函数的组合来完成。这种方法的缺点是MATCH只能作用于一维范围,因此在包含大量表格的大型电子表格中,您最终必须为每个表格定义3个范围,而不是一个(一个用于数据,一个用于标题行,一个用于左列) 我希望能够做到这样: index(data1,match("Mar-00",getrow
Jan-00 Feb-00 Mar-00
Joe
Bill
Steve
所以,我想查找“Joe”和“Mar-00”的值
这种类型的查找通常使用索引和匹配函数的组合来完成。这种方法的缺点是MATCH只能作用于一维范围,因此在包含大量表格的大型电子表格中,您最终必须为每个表格定义3个范围,而不是一个(一个用于数据,一个用于标题行,一个用于左列)
我希望能够做到这样:
index(data1,match("Mar-00",getrow(mydata,1)),match("Joe",getcolumn(mydata,1)))
excel中是否有类似的功能(或者,一种完全不同的方式,可能是excel中的一些新功能)?虽然这可能不是最有效的方法,但您可以使用SUMPRODUCT来完成此请求。不过,您需要做的是创建一个包含这些值的工作表,然后在显示表中引用它们
=SUMPRODUCT(--('RawData'!$A$1:$A$4="Joe"),--('RawData'!$B$1:$B$4="Mar-00"),'RawData'!$C$1:$C$4)
其中:
- “原始数据”$A$1:$A$4是包含名称的列
- “原始数据”$B$1:$B$4是包含所需标题的列(在本例中为日期)
- “原始数据”$C$1:$C$4是包含所需值的列
- 这是
VLOOKUP
(或相关的HLOOKUP
)的经典用法:
您还可以使用INDEX
通过将零作为参数之一传递,从范围(或二维数组)中获取整行或整列:
=VLOOKUP("Joe", mydata, MATCH("Mar-00", INDEX(mydata, 1, 0), 0), FALSE)
这是假设“mydata”是整个表,包括行和列标题
(当然,您也可以执行上面的操作,将
getrow
和getcolumn
替换为对INDEX
的调用)使用offset
公式。对于某些命名范围myrange,第一行是:
offset(myrange,0,0,1)
类似地,第一列为:
offset(myrange,0,0,,1)
我意识到这是正确的,但我不一定知道我是在追求第四栏。使用索引需要我重新声明一个范围,因为它只能作用于一维范围。这是我的第二个示例的要点-演示如何使用
INDEX
从范围或数组中获取整行(列)。这不是你的问题吗?对不起,你是对的,我只是读得不够仔细。非常好,谢谢!不要认为我以前遇到过这种语法,或者我遇到过,只是错过了。
offset(myrange,0,0,,1)