如何筛选多值?将Clientnumber1值从Clientnumber列筛选至第三工作表求助
嘿,我来给你分享几个实用的方法,帮你搞定这个筛选需求~
方法1:用Excel函数公式实现
适合数据量不大、不想折腾复杂操作的场景:
- 打开你的Excel文件,切换到第三张工作表(可以先给它改个好记的名字,比如「筛选结果」)
- 在A1单元格输入表头
Clientnumber,B1输入销售额 - 在A2单元格输入这个数组公式(Excel 365/2021版本直接回车就行,旧版本需要按
Ctrl+Shift+Enter确认):
注意:=IFERROR(INDEX(Sheet1!$A:$A,SMALL(IF(COUNTIF(Sheet2!$A:$A,Sheet1!$A:$A)>0,ROW(Sheet1!$A:$A),""),ROW(A1))),"")Sheet1是存原始Clientnumber和销售额的工作表,Sheet2是存Clientnumber1的工作表,A列对应各自的Clientnumber列,记得根据你的实际表名修改哦~ - 接着在B2单元格输入公式,关联对应销售额:
=IF(A2<>"",VLOOKUP(A2,Sheet1!$A:$B,2,FALSE),"") - 最后把A2和B2的公式往下拉,直到出现空值,就能得到你要的筛选结果了
方法2:用Power Query高效批量处理
如果数据量比较大,或者以后需要频繁更新数据,Power Query会更省心:
- 选中第一张工作表(有Clientnumber和销售额)的数据区域,点击「数据」选项卡 → 「从表格/区域」,把数据导入Power Query编辑器
- 用同样的方法,把第二张工作表的Clientnumber1数据也导入Power Query
- 在第一个查询里,点击「合并查询」→ 「合并为新查询」,选择「内部连接」,用两张表的Clientnumber列做匹配
- 合并完成后,展开销售额列,删掉多余的列,然后点击「关闭并上载」,选择上载到第三张工作表就搞定了
- 以后数据更新时,右键点击结果表,选「刷新」就能自动同步最新的筛选结果
方法3:用VBA代码一键生成
要是你经常需要做这类筛选操作,可以写个小脚本一键执行:
- 按
Alt+F11打开VBA编辑器,插入一个新模块 - 粘贴下面的代码,记得修改表名和列名匹配你的实际情况:
Sub FilterClientNumbers() Dim wsSource As Worksheet, wsList As Worksheet, wsResult As Worksheet Dim lastRowSource As Long, lastRowList As Long, lastRowResult As Long Dim i As Long, j As Long ' 定义工作表,根据你的实际名称修改 Set wsSource = ThisWorkbook.Worksheets("Sheet1") ' 存Clientnumber和销售额的表 Set wsList = ThisWorkbook.Worksheets("Sheet2") ' 存Clientnumber1的表 Set wsResult = ThisWorkbook.Worksheets("Sheet3") ' 结果表 ' 清空结果表原有数据(保留表头) wsResult.Range("A2:B" & wsResult.Cells(Rows.Count, 1).End(xlUp).Row).ClearContents lastRowSource = wsSource.Cells(Rows.Count, 1).End(xlUp).Row lastRowList = wsList.Cells(Rows.Count, 1).End(xlUp).Row lastRowResult = 1 ' 遍历源表数据,匹配列表中的Clientnumber For i = 2 To lastRowSource For j = 2 To lastRowList If wsSource.Cells(i, 1).Value = wsList.Cells(j, 1).Value Then lastRowResult = lastRowResult + 1 wsResult.Cells(lastRowResult, 1).Value = wsSource.Cells(i, 1).Value wsResult.Cells(lastRowResult, 2).Value = wsSource.Cells(i, 2).Value Exit For End If Next j Next i MsgBox "筛选完成!结果已保存到Sheet3", vbInformation End Sub - 回到Excel,按
Alt+F8运行这个宏,就能自动生成筛选结果啦
内容的提问来源于stack exchange,提问作者user1548544
相关产品推荐
相关产品推荐

