Google Sheets多条件自动匹配表格数据生成报价分组需求
解决方案
基础匹配(按供应商指定的分组优先级)
假设你的A1:D9表格结构如下(可根据实际列位置调整):
- A列:分组名称(A-H)
- B列:宽度最小值(W_min)
- C列:宽度最大值(W_max)
- D列:高度最小值(H_min)
- E列:高度最大值(H_max)(若你的高度范围仅存于D列,需拆分或调整公式条件)
在G4单元格输入以下公式,即可自动匹配符合宽高范围的首个优先级分组(如你示例中7/1.5匹配B而非D/E,因为B在列表中优先级更高):
=INDEX(FILTER(A2:A9, (G2 >= B2:B9) * (G2 <= C2:C9) * (G3 >= D2:D9) * (G3 <= E2:E9)), 1)
FILTER:筛选出所有满足宽高在对应分组范围内的行INDEX(...,1):取筛选结果的第一行(即优先级最高的分组)- 用
*替代AND,适配数组运算的逻辑与要求
处理超出范围的情况
若输入的宽高超出所有分组范围,公式会返回错误,可通过IFERROR添加兜底处理:
=IFERROR(INDEX(FILTER(A2:A9, (G2 >= B2:B9) * (G2 <= C2:C9) * (G3 >= D2:D9) * (G3 <= E2:E9)), 1), "超出分组范围")
你也可根据供应商规则自定义兜底值,比如返回最大尺寸分组:IFERROR(..., "H")
按成本效益选择分组
新增一列(比如F列),输入每个分组的成本排名(数字越小代表成本越低),然后用以下公式自动选择符合条件的最划算分组:
=INDEX(SORT(FILTER(A2:F9, (G2 >= B2:B9) * (G2 <= C2:C9) * (G3 >= D2:D9) * (G3 <= E2:E9)), 6, TRUE), 1, 1)
SORT(...,6,TRUE):将筛选结果按第6列(成本排名列)升序排列,最划算的分组排在首位INDEX(...,1,1):取排序后的第一行第一列,即目标分组
内容的提问来源于stack exchange,提问作者Tbows
相关产品推荐
相关产品推荐

