0

我有一个查询,它将在 SQL 的数组中生成以下公式并设置到工作表中的一个范围内,但很难阅读:

=SUMIF(INDIRECT(ADDRESS(ROW()-1,5)&":"&ADDRESS(ROW()-6,5)),"+",INDIRECT(ADDRESS(ROW()-1,COLUMN())&":"&ADDRESS(ROW()-6,COLUMN())))-SUMIF(INDIRECT(ADDRESS(ROW()-1,5)&":"&ADDRESS(ROW()-6,5)),"-",INDIRECT(ADDRESS(ROW()-1,COLUMN())&":"&ADDRESS(ROW()-6,COLUMN())))

那么excel是否包含任何方法来仅更改地址部分INDIRECT(ADDRESS(ROW()-1,5)&":"&ADDRESS(ROW()-6,5))以便E10:E5于跟踪?

由于公式需要在设置到工作表之前动态生成(即动态列和行),所以在设置数组到单元格之后需要简化。

任何方法都可以做类似的事情,比如Evaluateexcel 中的函数,但只适用于INDIRECTADDRESS允许用户阅读简单的公式,如=SUMIF(E10:E5,"+",J10:J5)-SUMIF(E10:E5,"-",J10:J5)

4

1 回答 1

1

为了简化公式,您可以通过将引用样式更改为R1C1或使用来输入 RC 表示法.FormulaR1C1。RC 表示法的优点是公式文本在整个列中是一致的。对于上面的公式,您可以输入:

=SUMIF(R[-6]C5:R[-1]C5,"+",R[-6]C:R[-1]C)-SUMIF(R[-6]C5:R[-1]C5,"-",R[-6]C:R[-1]C)

或者=SUM(SUMIF(R[-6]C5:R[-1]C5,{"+","-"},R[-6]C:R[-1]C)*{1,-1})

A1并且公式应该在符号中易于阅读。

于 2012-08-14T08:18:50.653 回答