求Google Sheet函数:匹配A1端口并提取B列对应配置至exit
Google Sheets 提取指定路由器端口配置块
需求
- 路由器端口配置存于
B10:B100区域 - 待查找的目标端口写在
A1单元格 - 禁止对B列排序,否则会破坏配置结构导致输出错误
- 需要从
C1开始,输出B列中匹配到的目标端口行,以及该行下方所有内容,直到遇到exit为止
示例表格
| A(查找值) | B(数据列) | C(输出列) |
|---|---|---|
| port 1/1/2 | port 1/1/1 | port 1/1/2 |
| description test-port | shutdown | |
| speed 100 | exit | |
| autonegotiate | ||
| exit | ||
| no shutdown | ||
| port 1/1/2 | ||
| shutdown | ||
| exit | ||
| port 1/1/3 | ||
| description my-laptop | ||
| speed 1000 | ||
| no auto negotiate | ||
| hold-down 50 | ||
| no shutdown | ||
| exit |
解决方案
在C1单元格输入以下公式,即可自动提取目标端口的完整配置块:
=ARRAYFORMULA(IFERROR(INDEX(B:B, MATCH(A1, B:B, 0)):INDEX(B:B, MATCH("exit", OFFSET(B:B, MATCH(A1, B:B, 0), 0), 0)+MATCH(A1, B:B, 0)-1)))
公式逻辑说明
MATCH(A1, B:B, 0):定位目标端口在B列中首次出现的行号OFFSET(B:B, MATCH(A1, B:B, 0), 0):从目标端口行开始,生成向下延伸的区域MATCH("exit", ..., 0):在上述区域内找到第一个exit的相对行号INDEX(B:B, ...):INDEX(B:B, ...):提取从目标端口行到对应exit行之间的所有内容ARRAYFORMULA:让公式自动填充到下方单元格,无需手动下拉IFERROR:处理找不到目标端口或对应exit的情况,避免显示错误值
注意事项
- 确保每个端口配置块的结尾都是
exit,否则会提取到下一个exit甚至超出范围 - 如果B列存在多个相同的端口条目,公式只会提取第一个匹配的配置块
内容的提问来源于stack exchange,提问作者cyberjax21
相关产品推荐
相关产品推荐

