如何用单个公式按「最低成本→最大周→最大库存」规则筛选价格表?
单个公式实现多优先级的供应商价格表筛选
假设你的数据表头在A1:G1,数据区域为A2:G,可以用以下单个公式实现需求:
={A1:G1; SORTN(SORT(A2:G, 6, 1, VALUE(REGEXEXTRACT(A2:A, "\d+")), 0, 7, 0), 9^9, 2, 4, 1)}
公式逻辑拆解:
- 内层SORT函数:按优先级对数据排序
- 第1排序键:第6列(COST),升序(
1)——优先取最低成本 - 第2排序键:将WEEK提取数字后转数值(
VALUE(REGEXEXTRACT(A2:A, "\d+"))),降序(0)——同成本时取最新周 - 第3排序键:第7列(STOCK),降序(
0)——前两项相同时取库存最多的行
- 第1排序键:第6列(COST),升序(
- 外层SORTN函数:按PRODUCT_CODE分组取每组第一行
9^9:取足够多的行(覆盖所有数据)2:启用分组模式4:按第4列(PRODUCT_CODE)分组1:每组保留1行(即排序后的第一行,也就是符合优先级的最优行)
注意事项:
- 若数据区域有变化,需对应调整公式中的单元格范围(比如
A2:G改为你的实际数据范围) REGEXEXTRACT用于提取WEEK中的数字,确保WK01-WK52能正确按数值大小比较(避免文本排序时WK9比WK52大的问题)
内容的提问来源于stack exchange,提问作者user20777937
相关产品推荐
相关产品推荐

