使用 Office 2007 根据最后填充的单元格动态更改单元格引用

Change cell reference dynamically based on last filled cell using Office 2007

我有以下简单的 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:$J
5
6

Cell 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)

到目前为止一切正常。


但是,我现在的目标是使单元格引用更加动态。正如您在我的示例中看到的那样,Jun, Jul, Aug 有一个 0no number。因此,我也希望单元格引用不会比 May (Cell G2) 更进一步。一旦 June 有一个 number > 0,单元格引用应该自动转到 Cell H2 等等......

我尝试使用答案 中的公式。但是,由于我只有 Office 2007 可用,所以我不能像 link.

中的答案那样使用包含 AGGREGAT 函数的公式

Office 2007 是否有任何其他解决方案?

Excel 2007(美国英文版)没有LINKSADRESS功能。但是公式的英文版本将 return 第 2 行中包含大于 0 的值的最后一个地址:

= ADDRESS(2,LOOKUP(2,1/(:>0),COLUMN(:)))

在您的示例中,公式 returns $G.

查看 LOOKUP 函数的帮助,了解其工作原理(当 lookup_value 大于被测试数组中的任何项目时)。

我不确定你是想检测还是只是硬编码第一个地址。要硬编码,只需:

= "$C:" & ADDRESS(2,LOOKUP(2,1/(:>0),COLUMN(:)))

或者可能是以下的一些变体:

= ADDRESS(2,3) & ":" & ADDRESS(2,LOOKUP(2,1/(:>0),COLUMN(:)))