所有条目的SUM值'与项目列表匹配的费用列

时间:2017-01-07 19:21:09

标签: google-apps-script google-sheets

这是我的工作表设置:

  • 我有一张表" 库存"保存库存中所有库存商品的行。每个项目都有" 费用"的值/列,以及" 销售价格"。
  • 我有另一张" 摄影",每个行/条目 指定的单元格这是照片中使用的项目列表,由一些广告资源item ref引用。从那里我想vlookup或其他东西,来获取"成本"列表中的所有这些项目,并将它们合并。
  • 这样我可以知道一张特定的照片,照片中使用的所有物品是多少,以及所有这些物品的费用(总结)。
  • 然后我会为#34; Sale Price"做同样的事情,对于我拍的每张照片都是如此,我将能够分辨出该产品的成本"" #34; (包括所有不同的库存商品)和销售价格。

实施例

enter image description here

我只能为1个项目做到这一点,但我希望公式能够在"列表" B9中的项目。

我甚至尝试过这个查询公式,我只是不知道怎么说"匹配列表中的任何项目",这将是另一个单元格中的字符串:

=SUM(QUERY(A:B,"select B where A matches 'ID-100'"))

1 个答案:

答案 0 :(得分:1)

如果“使用的项目”列始终使用逗号空间分隔格式的项目列表,则以下内容将起作用。

=query(Cost!A:B, "select sum(B) where A = '" & join("' or A = '", split(B9, ", ")) & "' label sum(B) ''")

此处,split将使用的项目列表拆分为单个项目ID。然后通过将' or A = '置于其间来加入它们,例如:

ID-101' or A = 'ID-101

有前缀和附加位以形成查询字符串,例如

select sum(B) where A = 'ID-101' or A = 'ID-101' label sum(B) ''

完成这项工作。标签部分是获得单个单元格输出所必需的,而不会妨碍“Sum(Cost)”标题。

有关拆分的详细信息:如上所述,split(B9, ", ") 逗号或空格拆分(忽略输出中的空字符串)。所以它甚至可以用ID-1,ID-2, ID-3 ID-4工作。另一方面,如果您的ID包含空格,则可能会出现问题。更严格的拆分模式是split(B9, ", ", False),它要求整个字符串“,”用作分隔符。