计算项目的加权使用

Calculate weighted usage of an item

我有一个 Google Sheets 工作簿,其中有 2 个作业sheets。

Sheet 1 列出大约 1000 个项目(组件)。该列表可能会增加。 (忽略上例中的 E 到 K 列)

Sheet 2 列出了一些产品(目前大约有 200 种,但该列表可能会增加)。每个产品最多可包含 12 个组件。这些列在 C 列到 N 列中(所有这些列都有数据验证,因此需要从 Sheet 1 的 1000 个组件列表中选择)。 R 列包含产品的单位数。

在 sheet 1,在每个组件旁边,我想计算所有产品中使用的组件的单位数。当然 countif 只会计算 Sheet 1!C2:N200 中特定组件的实例。同样,sumproduct 也不符合要求,因为 1. C 到 N 不是数字,2. C 到 N 不是固定的。

有没有一种简单的方法可以计算每个组件的单元数? (不使用 VBScript/Javascript,也没有将组件的转置列表复制粘贴到 Sheet 2)

我在想一些使用 sumifsumifs 的古怪方法可能是这里的答案,但还没有想出。

在 Sheet1 单元格 B2 中。输入这个公式:

=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A,QUERY(SPLIT(FLATTEN(Sheet2!C2:N&"|"&Sheet2!R2:R),"|",0,0),"select Col1,SUM(Col2) group by Col1"),2,0)))

如果你想 return 0s 而不是未使用组件的空白,这个轻微的修改应该可以做到。

=ARRAYFORMULA(IF(A2:A="",,IFERROR(VLOOKUP(A2:A,QUERY(SPLIT(FLATTEN(Sheet2!C2:N&"|"&Sheet2!R2:R),"|",0,0),"select Col1,SUM(Col2) group by Col1"),2,0),0)))

Demo Sheet

一种补充方式是建立数据库

=ARRAYFORMULA(SPLIT(FLATTEN(Sheet2!A2:A&"|"&Sheet2!C2:N&"|"&Sheet2!R2:R),"|",,false))

然后通过枢轴计算 table,添加到 https://docs.google.com/spreadsheets/d/1Lokoms22tuqU53TlhAcdqaldQe_H7Pq8Jah2kBBYo7c/edit#gid=1233865099