Excel多工作表数据提取:基于V标记筛选Process name的公式问询
Excel分表提取匹配数据的公式实现
适用于Excel 365/2021(支持动态数组)
直接用FILTER函数一键提取,操作如下:
- 打开Service1工作表,在A2单元格输入公式:
公式说明:=FILTER('Sheet A'!$A$2:$A$5,'Sheet A'!$B$2:$B$5="V")'Sheet A'!$A$2:$A$5是要提取的Process name范围,'Sheet A'!$B$2:$B$5="V"是筛选条件——只取service1列为"V"的行。输入后公式会自动溢出填充所有匹配结果,无需手动下拉。 - 同理,Service2工作表A2单元格用:
=FILTER('Sheet A'!$A$2:$A$5,'Sheet A'!$C$2:$C$5="V") - Service3工作表A2单元格用:
=FILTER('Sheet A'!$A$2:$A$5,'Sheet A'!$D$2:$D$5="V")
适用于旧版Excel(无动态数组支持)
用INDEX+SMALL+IF组合数组公式实现,操作如下:
- 打开Service1工作表,在A2单元格输入公式:
输入完成后按Ctrl+Shift+Enter组合键确认(数组公式要求),然后下拉填充单元格直到出现空值。=IFERROR(INDEX('Sheet A'!$A$2:$A$5,SMALL(IF('Sheet A'!$B$2:$B$5="V",ROW('Sheet A'!$B$2:$B$5)-ROW('Sheet A'!$B$2)+1),ROW(A1))),"") - Service2工作表A2单元格替换列引用:
=IFERROR(INDEX('Sheet A'!$A$2:$A$5,SMALL(IF('Sheet A'!$C$2:$C$5="V",ROW('Sheet A'!$C$2:$C$5)-ROW('Sheet A'!$C$2)+1),ROW(A1))),"") - Service3工作表A2单元格用:
公式说明:通过=IFERROR(INDEX('Sheet A'!$A$2:$A$5,SMALL(IF('Sheet A'!$D$2:$D$5="V",ROW('Sheet A'!$D$2:$D$5)-ROW('Sheet A'!$D$2)+1),ROW(A1))),"")IF筛选符合条件的行号,SMALL按顺序提取行号,INDEX对应取出Process name,IFERROR处理无匹配结果时显示空值。
注意事项
- 若数据行数不止4行,需把公式里的
$A$2:$A$5、$B$2:$B$5这类范围改成实际数据源范围(比如$A$2:$A$100)。 - 如需表头,可在各Service工作表的A1单元格手动输入
Process name,公式从A2开始输入。
内容的提问来源于stack exchange,提问作者Arien
相关产品推荐
相关产品推荐

