【发布时间】:2021-11-27 22:31:40
【问题描述】:
我有一个大约 7,000 种产品的列表,我正在尝试在其中创建一个数组公式,该数组公式将根据另一个表中提供的几个标准查找每个产品的回收费和押金金额。我能够创建下面发布的所需公式,但是我无法找到适用于数组公式的解决方案,以便更新每一行(产品)。
https://docs.google.com/spreadsheets/d/1YgBG6ANGHXNUGqemxS9Gklon4bMtD1GCGqlQRKCPvUU/edit#gid=0
[示例图片] https://drive.google.com/file/d/1sSX6dakHR9fbuNByQmEyDOoUOOQl39Ot/view?usp=sharing
详细信息 在价格表(查找表)中,您将找到基于容器类型和大小的存款类型列表。由于存款费率是基于容器类型和大小的,您会发现容器类型列有重复。例如,有一排用于小于 1 升的玻璃瓶,另一排用于存放大于 1 升的玻璃瓶。每行包含容器类型 (ColA)、最小尺寸 (ColB) 和最大尺寸 (ColC),并且有一列提供非酒精产品 (ColD) 的值,另一列提供含有酒精的产品 (ColE)。
在产品列表中,每个产品(行)都有容器类型(ColB),是否包含酒精(ColC)和尺寸(ColD 中的命名范围值)。为了确定正确的值,我需要在价格表(ColA)中查询产品的容器类型(ColA),这将返回多个匹配项,因为不同的匹配项将针对不同的产品尺寸。然后我需要过滤该列表以确保我的产品尺寸(ColD)适合最小尺寸(>=ColB)和最大尺寸(
虽然通常可以使用 VLOOKUP(A1:A&B1:B,A1:A&B1:B,2,FALSE) 来解决多标准 vlookup,但这种方法不适用于我的问题,因为标准字段之一是基于产品的最大尺寸,另一个字段基于最小尺寸。
有效的公式;
FILTER('Price Table'!A:G,D2*1>='Price Table'!B:B*1,D2*1<='Price Table'!C:C*10,B2='Price Table'!A:A)
,IF(C2="ALCOHOL",5,4),FALSE)```
【问题讨论】:
-
您在哪个工作表/单元格中需要该数组公式?
-
对于在产品列表页面上的 ColF 和 ColG 中给出的示例,它在我使用的实际工作表上会有所不同。
标签: google-sheets google-sheets-formula vlookup array-formulas