当然可以!`=INDEX(SMALL(IF..., ROW), ...)` 是一种在Excel中常用的数组公式,用于从满足特定条件的单元格中提取最小值。让我们逐步解析这个公式: 1. **IF函数**: `IF(condition, value_if_true, value_if_false)` 是一个逻辑函数,根据条件返回不同的值。 2. **ROW函数**: `ROW()` 返回当前行的行号。 3. **SMALL函数**: `SMALL(array, k)` 返回数组中的第k个最小值。 4. **INDEX函数**: `INDEX(array, row_num, [column_num])` 返回数组中指定位置的值。 ### 示例 假设我们有一个数据范围A1:A10,并且我们希望找到这些单元格中大于5的最小值。 #### 步骤1: 使用IF函数和ROW函数生成一个数组 ```excel =IF(A1:A10 > 5, A1:A10, "") ``` 这将返回一个数组,其中大于5的值保持不变,其他值变为空字符串。 #### 步骤2: 使用SMALL函数找到最小的非空值 ```excel =SMALL(IF(A1:A10 > 5, A1:A10, ""), 1) ``` 这将返回数组中第一个最小值(即最小的非空值)。 #### 步骤3: 使用INDEX函数获取该值的位置 ```excel =INDEX(A1:A10, MATCH(SMALL(IF(A1:A10 > 5, A1:A10, ""), 1), A1:A10, 0)) ``` `MATCH` 函数用于找到最小值在原始数组中的位置,然后 `INDEX` 函数返回该位置的值。 ### 注意事项 - 由于这是一个数组公式,输入完公式后需要按 `Ctrl+Shift+Enter` 而不是普通的 `Enter`。 - 确保你的Excel版本支持动态数组公式(Excel 365或Excel 2019及更高版本)。 希望这能帮到你理解如何使用 `=INDEX(SMALL(IF..., ROW), ...)` 公式!