这是我的工作表设置:
item ref
引用。从那里我想vlookup
或其他东西,来获取"成本"列表中的所有这些项目,并将它们合并。实施例
我只能为1个项目做到这一点,但我希望公式能够在"列表" B9中的项目。
我甚至尝试过这个查询公式,我只是不知道怎么说"匹配列表中的任何项目",这将是另一个单元格中的字符串:
=SUM(QUERY(A:B,"select B where A matches 'ID-100'"))
答案 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)
,它要求整个字符串“,”用作分隔符。