Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不知道如何在excel中启动多个搜索条件_Excel_Vba - Fatal编程技术网

不知道如何在excel中启动多个搜索条件

不知道如何在excel中启动多个搜索条件,excel,vba,Excel,Vba,我有一个excel表格,我试图根据多个搜索条件进行一些计算,但不知道从哪里开始。我希望vba的第一部分提取行值,以便从那里开始。我看过其他线程,但不知道如何应用它们 excel工作表看起来像这样 Date | Name | Location | Components | Composition 1/2/19 T1 S1 Hexane 5% 1/2/19 T1 S1 Water 20% 1/2

我有一个excel表格,我试图根据多个搜索条件进行一些计算,但不知道从哪里开始。我希望vba的第一部分提取行值,以便从那里开始。我看过其他线程,但不知道如何应用它们

excel工作表看起来像这样

 Date  | Name | Location | Components | Composition

1/2/19    T1       S1       Hexane           5%
1/2/19    T1       S1       Water           20%
1/2/19    T1       S1       Benzene         75%
1/2/19    T2       S1       Water           100% 
.
.
.  

因此,我正在尝试编写一个代码,该代码将返回日期、名称和位置列匹配的所有行,以便我可以创建一个列,说明它们的组成是否为100%,然后运行一些计算。大约有2000行,所以任何自动化它的方法都会很棒

那么,您可以使用一个简单的函数来实现这一点。创建另一个表,其中包含要查看的特定日期、名称和位置值,并为total composition再创建一列

在total composition列中,您可以编写这样的SUMIFs语句

=SUMIFS(YourCompositionColumnRange, YourDateColumnRange,"=" & YourDateValue, YourNameColumnRange,"=" & YourNameValue, YourLocationColumnRange,"=" & YourLocationValue)
其中,列范围是表示数据列的命名范围,值范围是表示要求和的值的命名范围

如果您不太熟悉VBA,这将是最快的解决方案


让我知道这是否有效。

Application.WorksheetFunction.SumifsI不知道所有的值,因为它们有2000多个。我有一些Python和Matlab的编程经验,所以我希望vba中有某种逻辑可以做到这一点。然后,您需要将数据范围拉入一个数组,并在其中循环,以创建第二个数组,在其中加载唯一的日期、名称、位置对,并对合成进行求和。这很简单,如果你使用过matlab,那么你应该非常熟悉这种数据处理,虽然matlab确实有比VBA更好的数组函数,如果我记得的话。