我在excel中有这个公式,返回一个行号:
=MATCH(INDIRECT(ADDRESS(ROW(),4)),DayOffRequests!$A$1:$A$100,0)
它运作得很好。
我想创建一个新名称(DAYS_OFF_ROW
)并将其分配给此公式。
以下是我在名称管理员中所做的事情:
但是当我把它写进一个单元格时:=DAYS_OFF_ROW
它说#VALUE!
而当我把相同的公式写入单元格时,它会给我一个我正在寻找的行号。
为什么它会说#VALUE!
而不是像公式那样的行号?
答案 0 :(得分:0)
首先关闭Row()返回单元格所在的行。如果将Row()置于间接状态,则会出现错误,因为没有Excel可以找到Row()的单元格。因此,对于命名范围,你的公式是无意义的。
其次,即使有一些神奇的方式让Excel知道你在这里关注哪个Row()
,Match
也不会返回一个范围。只是一个阵列中的位置,如" 5"或" 50"。使用公式定义命名范围时,公式的结果必须是范围。因此,您可以执行Indirect
之类的=Indirect("A" & Match(foo,bar))
或其他事情,以便公式中的结果实际上指的是工作表中的范围。
答案 1 :(得分:0)
如果我将名称设置为此公式,则此方法有效:=MATCH(!$D1,DayOffRequests!$A$1:$A$100,0)
当然,在设置名称时我必须在字段A1中。现在它引用第四列和我所在的行。