Application.worksheetfunctuon.sumproduct(this workbook.sheets(“Balance”.range(“A1:A100”)=“an”),(“B1:B100”))
时间: 2023-10-06 22:11:42 浏览: 131
这是一个VBA语句,其作用是计算“Balance”工作表中第一列(A列)等于“an”的单元格对应的第二列(B列)的数值之和。具体来说,该语句中使用了Excel函数SUMPRODUCT,同时使用了VBA代码中的ThisWorkbook对象来引用当前工作簿,以及Sheets对象和Range对象来引用“Balance”工作表的特定单元格范围。该语句中的括号可能有一些语法错误,正确的语法应该是:
```
Application.WorksheetFunction.SumProduct((ThisWorkbook.Sheets("Balance").Range("A1:A100") = "an") * (ThisWorkbook.Sheets("Balance").Range("B1:B100")))
```
其中,等号“=”返回一个True/False数组,表示对应单元格是否等于“an”,乘以第二列的数值数组后再求和,即得到答案。
相关问题
=SUMPRODUCT((现期!$C:$C=B11)*(现期!$G:$G=1)*(现期!$H:$H=1)*(现期!$I:$I=0)*(现期!$F:$F=1)) 把这个公式换成判断怎么写
这个公式是一个带条件的求和公式,可以理解为在“现期”表格中找到符合一系列条件的单元格,并将它们的值相加。
如果要将其转换为判断,可以这样写:
判断在“现期”表格中,是否满足以下条件:
- 列C中的值等于B11
- 列G中的值等于1
- 列H中的值等于1
- 列I中的值等于0
- 列F中的值等于1
如果上述条件都满足,则返回相应单元格的值,并将它们相加,得到最终结果。
=SUMPRODUCT((MOD(ROW(J12:J31),2)=1)*K12:K31, (MOD(ROW(J12:J31),2)=0)*K12:K31)求的结果是0,怎么调整让公式计算结果正确
这个Excel公式看起来是用来对一列数据进行条件求和的,它使用了SUMPRODUCT函数结合数组公式和MOD函数。`SUMPRODUCT`通常用于同时考虑两个条件下的乘积求和。
你的公式可能是在尝试将奇数行和偶数行的值分别相加,但是当前结果为0,这可能是由于以下原因:
1. **条件判断错误**:`MOD(ROW(J12:J31),2)`检查的是行号除以2的余数,等于1表示奇数,等于0表示偶数。如果所有行都是偶数或者都是奇数,那么两个条件都会返回相同的值,导致最终乘积全部为0。
2. **数值范围问题**:确认`K12:K31`中的数据是否都为0,如果所有单元格的值都为0,无论条件如何,结果自然就是0。
3. **数组公式输入问题**:当作为数组公式输入时,需要按下Ctrl + Shift + Enter键而不是Enter,如果你只按了Enter可能会导致公式没有正常应用条件。
为了修复这个问题,你可以检查一下:
- 确保`ROW(J12:J31)`返回了正确的奇偶行,检查是否有遗漏或重复的数据。
- 检查`K12:K31`数据,如果有非零值,应该能得到非零结果。
- 确保公式是以数组形式输入的。
如果以上都没有问题,可以尝试稍微调整下公式结构,比如分开计算奇数行和偶数行再做求和,例如:
```excel
=SUMIFS(K12:K31, J12:J31, "偶数") + SUMIFS(K12:K31, J12:J31, "奇数")
```
这里假设“偶数”、“奇数”是对`MOD(ROW(J12:J31),2)`结果的理解。
阅读全文