Google sheets ARRAYFORMULA MMULT转置给出错误的计算结果

Google sheets ARRAYFORMULA MMULT转置给出错误的计算结果,google-sheets,google-sheets-formula,spreadsheet,array-formulas,Google Sheets,Google Sheets Formula,Spreadsheet,Array Formulas,我有下面的公式,我似乎无法找出什么是错误的,因为它产生了错误的结果 =IFERROR(ARRAYFORMULA(MMULT(IFERROR($H$2:$O*1/ISNUMBER($H$2:$O*1),0), TRANSPOSE(IFERROR(($H$2:$O$2 ^ 0)/ISNUMBER($H$2:$O$2 ^ 0),0))) * VLOOKUP($G$2:$G,LookupSheet!$A$2:$B$6,2,FALSE))) 谷歌表单数据示例: 在示例中,ARRAYFORMULA SUM

我有下面的公式,我似乎无法找出什么是错误的,因为它产生了错误的结果

=IFERROR(ARRAYFORMULA(MMULT(IFERROR($H$2:$O*1/ISNUMBER($H$2:$O*1),0), TRANSPOSE(IFERROR(($H$2:$O$2 ^ 0)/ISNUMBER($H$2:$O$2 ^ 0),0))) * VLOOKUP($G$2:$G,LookupSheet!$A$2:$B$6,2,FALSE)))
谷歌表单数据示例:

在示例中,
ARRAYFORMULA SUMIF
给出了正确的结果,但
ARRAYFORMULA MMULT TRANSPOSE
没有给出正确的结果。由于30000行(不断增长的)x22列电子表格的性能不佳,我无法使用
ARRAYFORMULA SUMIF
,并且它影响了使用
IMPORTRANGE
数据的所有其他电子表格

如果有人能调查此事,我将不胜感激

提前感谢。

使用:

=ARRAYFORMULA(MMULT(IFERROR(INDIRECT("H2:O"&MAX((G2:G<>"")*(ROW(G2:G))))*1, 0), 
 TRANSPOSE(COLUMN(H:O))^0)*
 VLOOKUP(INDIRECT("G2:G"&MAX((G2:G<>"")*(ROW(G2:G)))), LookupSheet!A2:B, 2, 0))
=ARRAYFORMULA(MMULT(IFERROR(间接的)(H2:O)和MAX(G2:G))*(ROW(G2:G)))*1,0),
转置(列(H:O))^0)*
VLOOKUP(间接(“G2:G”和最大值((G2:G“”)*(行(G2:G))),查找表!A2:B,2,0)

您的公式应该怎么做?@player0每当有新的数据输入时,对于每一行,将H列到O列的所有百分比相加(应忽略文本“N/A”),然后根据类型查找并乘以容量即可!非常感谢你!对不起,如果这是一个愚蠢的问题,但我的公式出了什么问题?无论如何,我会从你的公式中学习。:-)@Shyuan这个部分让你失败了--它应该看起来像在S列中,但是你得到了零,这会弄乱最终的输出