Google sheets 计算google电子表格中项目总数的公式

Google sheets 计算google电子表格中项目总数的公式,google-sheets,sum,google-sheets-formula,array-formulas,gs-vlookup,Google Sheets,Sum,Google Sheets Formula,Array Formulas,Gs Vlookup,我在一行中有项目(项目1、项目2等),在一列中有每个项目的价格,我可以写一个复杂的公式来计算每个人的总数,而不需要手动输入所有交叉点吗 | Name | Total | item 1 | item 2 | item 3 | | | |--------|---------|--------|--------|--------|-----------------|----| | John | 2+9+2=13| 1 | 3 | 2

我在一行中有项目(项目1、项目2等),在一列中有每个项目的价格,我可以写一个复杂的公式来计算每个人的总数,而不需要手动输入所有交叉点吗

| Name   | Total   | item 1 | item 2 | item 3 |                 |    |
|--------|---------|--------|--------|--------|-----------------|----|
| John   | 2+9+2=13| 1      | 3      | 2      | price of item 1 | $2 |
| Daniel | 0+6+1=7 | 0      | 2      | 1      | price of item 2 | $3 |
| Max    | 2+3+0=5 | 1      | 1      | 0      | price of item 3 | $1 |

不幸的是,我不能在这里使用脚本,否则,这将是小菜一碟:(

试试:

=ARRAYFORMULA(IF(A2:A="",,
 MMULT(HLOOKUP(C1:E1, TRANSPOSE(G2:H), 2, 0)*C2:E, 
 ROW(INDIRECT("A1:A"&COLUMNS(C:E)))^0)))



或更短:

=INDEX(IF(A2:A="",,MMULT(1*C2:E, G2:G4)))

如需其他解决方案,请尝试:

=ArrayFormula(if(len(A2:A), mmult(--C2:E, G2:G4),))

共享您的sheet@player0感谢you@Anatoly很抱歉,第二个答案要短得多,也容易理解/reuse@Anatoly请注意,在第2行,F列中的答案项目需要与第1行中的项目顺序相同-否则不会work@Anatoly
--C2:E
相当于
1*C2:E
N(C2:E)
-原因是MMULT只对数字起作用,所以空单元格需要转换为零。索引是数组的类型,用于公式-没有好处,只是比类型短。你能解释一下它是什么意思吗
--C2:E
这是我用谷歌搜索不到的单个部分。双减号,也称为双一元数,是一种转换的操作将布尔值转换为1和0。简单地说,TRUE为1,FALSE为0。由于MMULT需要数值,如果任何单元格为空,它将返回错误。此处使用的双一元数用零填充这些空单元格。