如何在Excel中查找多个单位多个日期对应价格中某家产品的最新价格?

请提供一个数组公式,该公式能够从给定的数据集中查找特定产品的最新价格。数据集包括单位、日期和对应的价格信息。

2 个回答

renoir
# Excel查找多个单位最新价格的解决方案 ## 数据示例 | 单位 | 产品 | 日期 | 价格 | |--------|--------|------------|-------| | A公司 | 手机 | 2023-01-05 | 2500 | | B公司 | 手机 | 2023-02-12 | 2450 | | A公司 | 手机 | 2023-03-20 | 2380 | | C公司 | 手机 | 2023-04-01 | 2550 | ## 方法1:MAXIFS+XLOOKUP组合 excel =XLOOKUP( MAXIFS(C:C, A:A, "目标单位", B:B, "目标产品"), C:C, D:D, "无数据", 0, 1 ) **参数说明**: - `MAXIFS`定位最新日期 - `XLOOKUP`精确查找对应价格 - 适用于Office 365或Excel 2021+ ## 方法2:SORT+FILTER组合 excel =TAKE( SORT( FILTER(D:D, (A:A="目标单位")*(B:B="目标产品")), FILTER(C:C, (A:A="目标单位")*(B:B="目标产品")), -1 ), 1 ) **特点**: - 自动排序后取最新记录 - 支持动态数组 - 需要Office 365 ## 方法3:传统INDEX+MATCH excel =INDEX(D:D, MATCH(1, (A:A="目标单位")* (B:B="目标产品")* (C:C=MAXIFS(C:C,A:A,"目标单位",B:B,"目标产品")), 0) ) **注意**: - 需按Ctrl+Shift+Enter输入数组公式 - 兼容旧版Excel ## 验证方法 建议: 1. 检查日期列格式是否为规范日期格式 2. 确认单位/产品名称完全匹配 3. 处理空值时使用IFERROR函数 ## 性能优化 - 避免整列引用(如A:A改为A2:A100) - 使用Excel表格结构化引用 - 对大数据量建议使用Power Query处理
xbzhan0228
假设数据在A1:C7单元格区域,其中A列是单位,B列是日期,C列是对应的价格。要在D列找到每家产品的最新价格,可以使用以下数组公式: ``` =INDEX($C$1:$C$7, MATCH(MAX(IF($A$1:$A$7=$E$1, $B$1:$B$7)), $B$1:$B$7, 0)) ``` 解释: - `IF($A$1:$A$7=$E$1, $B$1:$B$7)` 返回一个数组,其中只有当A列的值等于E1单元格中的值时,对应的B列日期才会被包含在内。 - `MAX(IF(...))` 计算上述数组中的最大日期。 - `MATCH(..., $B$1:$B$7, 0)` 在B列中找到最大日期的位置。 - `INDEX($C$1:$C$7, ...)` 使用找到的位置索引C列,以获取对应的价格。 请注意,数组公式需要按Ctrl+Shift+Enter组合键输入,而不是仅按Enter键。