arrays - Sumproduct公式返回#VALUE!当最后一个数组引用每行中都有公式的列时发生错误。 MS Excel 2010

标签 arrays error-handling excel-formula excel-2010 array-formulas

我试图找到一种简便的方法来计算工作簿中多个工作表上的销售佣金。每个月,我只需要查找指定月份内售出的商品的总净利润。

我当前使用的公式是:

=SUMPRODUCT((TEXT('Sheet Name'!$P$3:P24,"MY")=TEXT($G$4,"MY"))*'Sheet Name'!$M$3:M24)
  • 列P显示出售日期
  • 列M中的每一行都包含一个公式来计算净利润,
  • 单元格G4中,我将输入当前正在使用的月份和年份。

  • 我得出的结论是,它只给我#VALUE!错误,因为M列的每一行中都有公式(例如:=IF(OR(F15=0,G15=0)," ",(F15-L15)))。

    当我引用不包含公式的另一列(代替M列)时,它可以正常工作(例如:=SUMPRODUCT((TEXT('Sheet Name'!$P$3:P24,"MY")=TEXT($G$4,"MY"))*'Sheet Name'!$G$3:G24))。同样,将astrisk更改为逗号会导致公式计算错误,并添加(--(TEXT double negative不能解决问题。

    如何在不删除M列公式的情况下获得此数组进行计算?

    感谢您的关注。

    最佳答案

    我认为它给您#VALUE错误,因为您的公式会导致文本(空格),并且在尝试将空格乘以数字(也就是True或False)时会出错。我认为将M列公式更改为=IF(OR(F15=0,G15=0),0,(F15-L15))会更好。您是否有特定原因不对0求值?另外,您是否有理由将其转换为文本以进行月/年检查?

    试试这样的东西:=SUMPRODUCT(--(MONTH('Sheet Name'!$P$3:P24)=MONTH($G$4)),--(YEAR('Sheet Name'!$P$3:P24)=YEAR($G$4)),'Sheet Name'!$M$3:M24)。当然,这取决于输入日期作为实际日期。 --用于将逻辑/ bool(boolean) 值(真/假)更改为1或0。它对文本没有任何帮助。例如,它也应作为=SUMPRODUCT((MONTH('Sheet Name'!$P$3:P24)=MONTH($G$4))*(YEAR('Sheet Name'!$P$3:P24)=YEAR($G$4))*'Sheet Name'!$M$3:M24)使用,因为乘法会将真实陈述转换为数字。诀窍是确保在其他所有评估结果中,您都有=sumproduct(numbers,numbers,numbers)。您的实例是=sumproduct(numbers/text)的一个数组。

    关于arrays - Sumproduct公式返回#VALUE!当最后一个数组引用每行中都有公式的列时发生错误。 MS Excel 2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15214510/

    相关文章:

    arrays - 使用泛型类型定义的函数

    javascript - JS : name/val pairs to array

    perl - 在Try::Tiny catch block 中使用next处理错误

    string - Excel 匹配函数与具有 R1C1 引用样式的列

    excel - 如何引用另一个工作表中的数据表列?

    arrays - 如何将变量的值设置为字典键值中的数组?

    php - bash awk - 需要来自 php 脚本的关联数组输出

    python - 愚蠢的例子但类型错误?

    xcode - 为什么会出现Apple Mach-O Linker(ID)错误?

    excel - 如果单元格值更改,则仅将单元格值更改的列复制到另一个工作表,但针对两个工作表中的公共(public)值