Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Vba 检查多列中的值,然后对其执行操作_Vba_Excel_Excel 2007 - Fatal编程技术网

Vba 检查多列中的值,然后对其执行操作

Vba 检查多列中的值,然后对其执行操作,vba,excel,excel-2007,Vba,Excel,Excel 2007,我有一张excel表格,数值范围为E10:1610,如果单元格J5等于“是”,我想使用vba检查整个列范围内是否有大于10的值。将所有这些值相加,得出总数的5%。 这里是棘手的部分…如果一个值大于20,那么我们将计算该值为20。因此,如果我遇到一个值,比如21或35,我会将该值等于20。例如,如果我找到11,13,17,29,23,我将计算11+13+17+20+20的5%。 任何帮助都将不胜感激……无需VBA =IF(J5="Yes",SUMPRODUCT((E10:E1610>=10)

我有一张excel表格,数值范围为E10:1610,如果单元格J5等于“是”,我想使用vba检查整个列范围内是否有大于10的值。将所有这些值相加,得出总数的5%。 这里是棘手的部分…如果一个值大于20,那么我们将计算该值为20。因此,如果我遇到一个值,比如21或35,我会将该值等于20。例如,如果我找到11,13,17,29,23,我将计算11+13+17+20+20的5%。 任何帮助都将不胜感激……

无需VBA

=IF(J5="Yes",SUMPRODUCT((E10:E1610>=10)*(E10:E1610<20),E10:E1610)*0.05+(COUNTIF(E10:E1610,">=20")),"")

=IF(J5=“Yes”,SUMPRODUCT((E10:E1610>=10)*(E10:E1610=10,所以我尝试了你的公式,但效果不太好。如果我在E10中输入100,结果将是1,而实际上它应该是20倍。05该公式适用于20以下的值,但应该等于20到20以上的所有值。我是这个网站的新手。我相信你应该将其标记为已解决。我想问你一些其他问题,你怎么可以我在单个单元格上执行操作。例如,我有一张工作表,我想将总计与文档上的某些总计进行比较。但是,文档在数字翻倍后对其进行汇总,然后分别进行四舍五入。但是在excel中,如果我将所有数字相加,然后将其翻倍,则会出现不匹配的情况。我想知道是否有方法可以n对单个单元格执行操作。以每个单元格为基础,对上述操作进行示例,然后在对它们进行合计之前对它们分别进行四舍五入。对上述公式还有一个问题。我如何考虑其他条件,如检查J5=“是”和A10:A610=“否”