excelSheet2A1输入的数值筛选出Sheet1所有关联的数据?

如题所述

用VBA吧,方便快捷。

第一步,把你的表另存为“.xlsm格式,即启用宏的工作簿”。

第二步,按Alt+F11打开VB编辑器。

第三步,在左侧点你要添加此功能的表名(除了Sheet1,这个表用来存放原始数据)

第四步,在右侧粘贴这段代码。

第五步,粘贴完毕后,关闭VB编辑器,即可。

附加一步说明:如果你嫌每次打开文件时都会提示启用宏太麻烦的话,可以在宏安全性中设置为启用所有宏。

代码如下(代码中单引号开头的绿字是注释文字,如不需要可以去掉):

Private Sub Worksheet_Change(ByVal Target As Range)

    If ActiveSheet.Name = Sheet1.Name Then Exit Sub '如果是Sheet1表那么直接退出程序。

    If Target.Address = "$A$1" And Range("A1") <> "" Then '如果变更的单元格是A1并且A1单元格不是空值,那么:

        Dim irow&

        irow = Range("A" & Rows.Count).End(3).Row '赋值irow等于该表A列最末数据所在的行号

        If irow > 1 Then Rows("2:" & irow).Delete shift:=xlUp '如果irow>1那么删除第2行至第irow行,下方行上移。

        irow = Sheet1.Range("B" & Rows.Count).End(3).Row '重新赋值irow等于Sheet1表B列最末数据所在的行号

        Sheet1.Rows("2:" & irow).AutoFilter Field:=2, Criteria1:=Array(Range("A1").Text), Operator:=xlFilterValues '在Sheet1表B列的第2行至第irow行筛选A1的文本值

        irow = Sheet1.Range("B" & Rows.Count).End(3).Row '重新赋值irow等于Sheet1表B列最末数据(可见数据,有可能原来最末数据被筛选时隐藏掉了)所在的行号

        Sheet1.Rows("2:" & irow).Copy Rows(2) '复制Sheet1表中的可见数据行,粘贴到该表第2行。

        Sheet1.Cells.AutoFilter 'Sheet1表退出筛选

    End If

End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-15
Sheet2表的A3单元格输入公式=IFERROR(INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$B$3:$B$1000=$A$1,ROW($3:$1000)),ROW(A1))),"")
数组公式,输入完按ctrl+shift+回车键结束公式,使公式前后产生大括号{}后,右拉再下拉公式。(结果出来后,记得将表2的A列单元格格式设置成日期格式)本回答被提问者采纳
第2个回答  2020-11-15
那你直接在表1筛选就可以了,何必跑到表2去多此一举呢?
如果表1为总表,插个透视表,做一个车号列的插片器,就可以动态的获取到你需要的信息了。
如需帮助,请追问!
若有幸帮到你,请采纳。追问

谢谢,但我主要的目前是要把车号分散出来,后面的很多表的A1是不同的号码

第3个回答  2020-11-15

用VBA处理参考下面

Excel怎样输入数据后对数据表筛选出结果

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网