在Excel中将数据从一个工作表过滤到另一个工作表

时间:2015-08-05 15:09:02

标签: excel vba excel-vba

我需要将数据存储在一张纸上,就像数据库一样,然后在另一张纸上显示的数据基于产品进行过滤。我根本不熟悉visual basic,但是我的老板让我负责这个项目。

基本上我们有一个变量名,变量类型和与之关联的产品。将来很可能会添加新名称,类型甚至产品。我似乎无法在网上找到一个解决方案,允许我在从另一个页面提取数据的同时过滤一页。

这就是数据表目前的样子。这是我们考虑未来扩展数据表的最佳方式,因为多个产品将与一个新变量相关联。

Option1 =>Hard coded option  
Option2 => Dynamic options  
Option3 => ""  
Option4 => ""  
Option5  => ""  
.......  
.......  

我希望这是有道理的,如果有人能提供帮助那就太棒了。下面是我们在网上找到的一些代码,并试图将其修改为没有运气。

Name | Type | Product | Product | Product...|
test | var  | Product |         | Product   |
test2| txt  | Product |         |           |
test3| char |         | Product | Product   |

1 个答案:

答案 0 :(得分:0)

我使用的最接近的实际上是一个有点笨重的等式:


Hidden_​​Sheet:隐藏表
B5978:产品过滤器
$ A $ 2:$ A $ 5997:隐藏式桌子全系列,“产品过滤器”外观。我认为你不能只用$ a:$ a。
$ E $ 2:$ E $ 5997:您想要返回的价值
$ A $ 2:这需要更改最后一页的每一行(即“$ A $ 2,$ A $ 3”等)。

=IF(B5978=0,"",IFERROR(INDEX(Hidden_Sheet!$E$2:$E$5997,SMALL(INDEX((B5978=Hidden_Sheet!$A$2:$A$5997)*(MATCH(ROW(Hidden_Sheet!$A$2:$A$5997),ROW(Hidden_Sheet!$A$2:$A$5997)))+(B5978<>Hidden_Sheet!$A$2:$A$5997)*1048577,0,0),ROW(Hidden_Sheet!$A$2))),""))