针对「查找一行数据中第一个大于0的数值并返回对应表头」的需求,可通过以下公式实现:
excel
=INDEX(表头范围, MATCH(TRUE, 数据行>0, 0))
### 公式解析
1. **数据条件判断**
`数据行>0` 生成布尔值数组(`TRUE`/`FALSE`)
2. **定位第一个匹配项**
`MATCH(TRUE, ..., 0)` 返回第一个 `TRUE` 的位置
3. **返回对应表头**
`INDEX` 根据位置从表头范围提取值
### 示例场景
假设表头在 `B1:F1`,数据行在 `B2:F2`:
excel
=INDEX(B1:F1, MATCH(TRUE, B2:F2>0, 0))
### 增强容错性
添加错误处理避免无匹配值时崩溃:
excel
=IFERROR(INDEX(B1:F1, MATCH(TRUE, B2:F2>0, 0)), "无匹配项")
### 关键点
- 需按 `Ctrl+Shift+Enter` 作为数组公式执行(旧版 Excel)
- 匹配方向需与数据行方向一致
- `MATCH` 第三个参数必须为 `0`(精确匹配)
此方案兼容 Excel 和 WPS,能高效处理横向数据匹配场景。