【发布时间】:2020-06-12 18:17:01
【问题描述】:
我正在尝试根据产品名称数组在 Google 电子表格中求和。产品名称(单个产品和组合产品)通过这样的查询水平动态地列出。组合的产品标题用管道“|”分隔。
=TRANSPOSE(QUERY(Product_Range;"select A where "&SUBSTITUTE(ADDRESS(1;MATCH(B1;Customer_Range;0);4);1;"")&" > 0"))
我可以为分隔的产品标题(例如“产品 1|附加组件 1|附加组件 3”)创建一个静态公式,并对相关列进行汇总,但标题/产品名称的顺序可能会在编辑时发生变化。例如,列标题“Addon-on 1”将来可能是“Product 2”。所以我想动态地制作。
https://docs.google.com/spreadsheets/d/1gJAZHLst707rnfcDTDYWwoLneSwhGgezYaCYpLKOtLI/edit?usp=sharing
单个产品的价格是通过这个公式获取的:
=SUM(
(VLOOKUP($A2 ;Products_Range ;MATCH( C$4; Products_Price_Range ;0);FALSE)) *
(VLOOKUP(C$4; Factor_Range; MATCH( Customer_Name;Customers_Range ;0);FALSE)) )
我需要某种循环来为每个嵌套在分隔产品标头中的产品项使用此公式。
我在 Google Script 中创建了一个自定义函数来执行此操作,但由于行数和连接表的数量,性能确实很慢。
所以我希望使用原生公式快速完成这项工作。
您能否建议如何对每个项目(单个产品列和/或基于数组的产品列)使用我的求和公式?
我希望这可能吗?
【问题讨论】:
-
请使用上面的 Gsheet-link。
-
例如 B3。如果公式在此单元格中有效。然后我们可以将其扩展为 B3:F
标签: for-loop google-sheets sum vlookup