这个Excel公式在做什么?

时间:2010-08-26 01:20:18

标签: excel formula

有人可以用英语解释wtf这个公式吗?我正在看别人的工作并且不知道。

=SUM(OFFSET(INDIRECT((ADDRESS(ROW(),21)),0,0,1)CurrentActualPeriod))

4 个答案:

答案 0 :(得分:3)

同意jeffreymb,您还可以使用Excel中的“评估公式”功能逐个浏览嵌套函数(如果您有Excel 2007)。这是文档和截图,说明其工作原理:

http://office.microsoft.com/en-us/excel-help/evaluate-a-nested-formula-one-step-at-a-time-HP010066254.aspx

答案 1 :(得分:1)

对不起,没有数据我不比你好。我建议将每个函数分解到自己的单元格中,以便您可以看到它们返回的内容。这将允许您使自己成为某种调用堆栈,以便您可以看到正在发生的事情。

只是看着这个我很确定它可以大大简化。在我多年的Excel开发中,我不记得曾经诉诸过Address函数。正确使用时,偏移非常强大且令人困惑。 : - )

答案 2 :(得分:0)

我经常使用ADDRESSINDIRECT函数。

公式是否真的有效?如果是,您使用的是哪个版本的Excel?我无法在Excel 2003中使用它。

对我来说,ADDRESS函数的论证太少,而且那些错误......;它应该是(像ADDRESS(ROW(),21,1,1,1)

CurrentActualPeriod可能是指一个命名范围,并且可能在它之前有一个逗号。

我做的不仅仅是那个atm ..

答案 3 :(得分:0)

假设这个公式出现在D4中,那么:

= SUM(
      OFFSET(
             INDIRECT(
                 (
                   ADDRESS(
                      ROW(),21
                   )
                 ),0,0,1
             )
             CurrentActualPeriod
      )
  )

ROW() = 4

ADDRESS(4,21) = $U$4

INDIRECT($U$4) = take contents of $U$4, use as address, and get that cell's value

OFFSET(..., 0, 0, 1) = ?

其余内容似乎是语法错误,除非CurrentActualPeriod之前缺少逗号。

双重间接肯定令人困惑。建立一个地址,从那里获取一个单元格地址,将它用于另一个间接级别......哎呀