我有以下简单的Excel电子表格:
A B C D E F G H I J
1 Jan Feb Mar Apr May Jun Jul Aug
2 5.000 4.000 5.000 8.000 9.000 0
3
4 $C$2:$J$2
5
6
在单元格C4 中,我使用以下公式从Row 2
获取单元格引用:
C4 = "$"&LEFT(ADRESS(1,COLUMN(C2),4),1+(COLUMN(C2)>26))&"$"&ROW(C2)&":$"&LEFT(ADRESS(1,COLUMN(J2),4),1+(COLUMN(J2)>26))&"$"&ROW(J2)
到目前为止,所有这些都工作正常。
但是,我现在的目标是使单元格引用更加动态。如您在我的示例中所见,0
有一个no number
或Jun, Jul, Aug
。因此,我也希望单元格引用不会比May(Cell G2
)更远。一旦六月有number > 0
,单元格引用应自动转到Cell H2
,依此类推...
我尝试使用答案here中的公式。但是,由于我只有Office 2007
可用,因此无法使用包含AGGREGAT
函数的公式,如链接中的答案一样。
Office 2007还有其他解决方案吗?
答案 0 :(得分:1)
Excel 2007(美国英语版)不具有LINKS
或ADRESS
函数。但是该公式的英文版将返回第2行中最后一个包含大于0值的地址:
= ADDRESS(2,LOOKUP(2,1/($2:$2>0),COLUMN($2:$2)))
在您的示例中,公式返回$G$2
。
检查“帮助”中的LOOKUP函数以了解其工作原理(lookup_value
大于要测试的数组中的任何项目时。)
我不确定您是要检测还是仅对第一个地址进行硬编码。对于硬编码,仅:
= "$C$2:" & ADDRESS(2,LOOKUP(2,1/($2:$2>0),COLUMN($2:$2)))
或以下内容的某种变体
= ADDRESS(2,3) & ":" & ADDRESS(2,LOOKUP(2,1/($2:$2>0),COLUMN($2:$2)))