在SUMPRODUCT中反转数组的顺序之一
我正在试图计算一些值我正在试图计算的第一个值是这个math公式:
RL =(P 5 * a 1 + P 4 * a 2 + P 3 * a 3 + P 2 * a 4 + P 1 * a 5 )/ L
第二个公式有RL,但也有同样的问题。
(xa 1 )-P 4 (xa 2 )-P 3 (xa 3 )-P 2 (xa 4 )-P 1 *(xa 5 )
当我看到这些,我看到一个SUMPRODUCT。
我的P 1 … P 5值按照$ C $ 12:$ G $ 12或命名范围Axle_P的顺序排列 。
我的a 1 … a 5个值在数组偏移量($ X $ 12,$ AL $ 13,0,1,5)中以相同的顺序排列,其中X12高于值的第一行,并且在第一列的价值观。 AL13保存感兴趣的行的行号。
L是单元$ D $ 8
x是单元$ M41
所以我想用公式
For calculating RL in say cell AA1 =SUMPRODUCT(Axle_P,offset($X$12,$AL$13,0,1,5))/$D$8 OR =SUMPRODUCT($C$12:$G$12,offset($X$12,$AL$13,0,1,5))/$D$8 For calculating M =$AA$1*$M41 - SUMPRODUCT($M41-offset($X$12,$AL$13,0,1,5),Axle_P) OR =$AA$1*$M41 - SUMPRODUCT($M41-offset($X$12,$AL$13,0,1,5),$C$12:$G$12)
问题是这导致错误的序列:
(P 1 * a 1 + P 2 * a 2 + P 3 * a 3 + P 4 * a 4 + P 5 * a 5 )
我怎样才能颠倒P数组或A数组的顺序?
现在我打算把这些最终结合到一个单元格中。 当我完成的时候,我打算把公式复制下来,通过5行。 所以基本上5个不同的x值与5个单元的输出。
VBA不是一个有效的select,我宁愿避免使用CSE,但如果这是唯一的方法,那么我会受到影响。
现在如果你想知道为什么我不改变M来
M = RL * x – (RL * L)
是否还有一些其他的警告,我会得到这个计算出来后,将设置P n-i + 1为0,如果一个我是小于0或大于L ,我有计划了这一部分。 至less我这样做是否可以在SUMPRODCUT中完成。
借助OFFSET
和一组列偏移量,可以反转一个范围。
例:
诀窍是从结尾开始,偏移量为{0,-1,-2,-3,-4}
每个单元格。 N
函数是必需的,因为与偏移数组一起使用的OFFSET
导致{ref,ref,..., ref}
,其中ref
是单元格引用。 这{ref,ref,..., ref}
将不会被正确评估。 N
从ref
号获得数字。
所以你的公式将是:
=SUMPRODUCT($C$12:$G$12,N(OFFSET($AB$12,$AL$13,-(COLUMN($C:$G)-COLUMN($C:$C)))))
要么
=SUMPRODUCT(N(OFFSET($G$12,0,-COLUMN($C:$G)+COLUMN($C:$C))),OFFSET($X$12,$AL$13,0,1,5))