我正在尝试计算几个值我试图计算的第一个值是这个数学公式:
((ااببلللللللللللللللللللللل
第二个公式中有RL,但遇到同样的问题。
M = RL * x-P5(x-a1)-P4(x-a2)-P3(x-a3)-P2(x-a4)-P1 *(x-a5)
当我看到这些时,我看到了一个SUMPRODUCT。
我的P1 ... P5值按$ C $ 12范围内的相同顺序排列:$ G $ 12或命名范围Axle_P。
我的a1 ... a5值在数组偏移量中以相同的顺序排列($ 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)
问题是这导致错误的顺序:
(B1 * A + A + B + A + B * A + B + 4 A + 4 A + B *兄弟)
如何反转P数组或A数组的顺序?
现在我计划将这些最终合并到一个单元格中。当我完成后,我计划将公式复制到5行。所以基本上有5个不同的x值,输出在5个单元格中。
VBA不是一个有效的选择,我宁愿避免使用CSE,但如果这是唯一的方法,那么我将受苦。
现在,如果你想知道为什么我不改变M
M = RL * x - (RL * L)
在我得到这个问题后,我将会应用其他一些注意事项,如果ai小于0或大于L,我会将Pn-i + 1设置为0,并且我已计划好该部分。至少我这样做,如果这可以在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))
...同时在Google表格中:
=SUMPRODUCT(A2:E2,QUERY(A3:E3,"select E,D,C,B,A"))
=SUMPRODUCT(A2:E2,QUERY({A3:E3},"select Col5,Col4,Col3,Col2,Col1"))
=SUMPRODUCT(A1:A5, TRANSPOSE(SPLIT(JOIN( ,
ARRAYFORMULA(MID(TEXTJOIN("♦", 1, B1:B5),
LEN(TEXTJOIN("♦", 1, B1:B5))-ROW(INDIRECT("1:"&
LEN(TEXTJOIN("♦", 1, B1:B5))))+1, 1))), "♦")))